MCPcopy Create free account
hub / github.com/archlinux/alpm / test_files

Function test_files

dev-scripts/src/commands.rs:34–126  ·  view source on GitHub ↗

Entry point for testing file handling binaries for official ArchLinux packages, source repositories and databases. This function relegates to functions that: - Download packages. - Test file parsers on all files. - Clean up downloaded files.

(cmd: TestFilesCmd, cache_dir: CacheDir)

Source from the content-addressed store, hash-verified

32/// - Test file parsers on all files.
33/// - Clean up downloaded files.
34pub(crate) fn test_files(cmd: TestFilesCmd, cache_dir: CacheDir) -> Result<(), Error> {
35 match cmd {
36 TestFilesCmd::Test {
37 repositories,
38 file_type,
39 } => {
40 let repositories = PackageRepositories::iter()
41 .filter(|v| repositories.clone().is_none_or(|r| r.contains(v)))
42 .collect();
43 let runner = TestRunner {
44 cache_dir,
45 file_type,
46 repositories,
47 };
48 runner.run_tests()?;
49 }
50 TestFilesCmd::Download {
51 repositories,
52 source,
53 } => {
54 let repositories = PackageRepositories::iter()
55 .filter(|v| repositories.clone().is_none_or(|r| r.contains(v)))
56 .collect();
57
58 match source {
59 DownloadCmd::PkgSrcRepositories {} => {
60 let downloader = PkgSrcDownloader { cache_dir };
61 downloader.download_package_source_repositories()?;
62 }
63 DownloadCmd::Aur {} => {
64 let downloader = AurDownloader { cache_dir };
65 downloader.download_packages()?;
66 }
67 DownloadCmd::Databases {
68 mirror,
69 force_extract,
70 } => {
71 let downloader = MirrorDownloader {
72 cache_dir,
73 mirror,
74 repositories,
75 extract_all: force_extract,
76 };
77 warn!(
78 "Beginning database retrieval\nIf the process is unexpectedly halted, rerun with `--force-extract` flag"
79 );
80 downloader.sync_remote_databases()?;
81 }
82 DownloadCmd::Packages {
83 mirror,
84 force_extract,
85 } => {
86 let downloader = MirrorDownloader {
87 cache_dir,
88 mirror,
89 repositories,
90 extract_all: force_extract,
91 };

Callers 1

run_commandFunction · 0.85

Calls 8

containsMethod · 0.80
run_testsMethod · 0.80
sync_remote_databasesMethod · 0.80
sync_remote_packagesMethod · 0.80
download_packagesMethod · 0.45
joinMethod · 0.45
as_refMethod · 0.45

Tested by

no test coverage detected