This crate contains development integration for testing and interacting with Arch Linux Package Management. Currently supported features:
- Download current live data from an Arch Linux Mirror.
- Test existing parsers against downloaded data.
- https://alpm.archlinux.page/rustdoc/dev_scripts/ for development version of the crate
rsync
for package and database downloads.tar
to extract packages.git
- A registered Arch Linux GitLab account and a configured environment to pull from it via
ssh
. - Disk space (around ~100GB). Especially the package download is quite big:
packages
: ~90GBdatabases
: ~1GBpkg-src-repositories
: ~3GB
As an example, this is how you would test the .BUILDINFO
validation:
- Sync all current packages to a cache location.
This implicitly extracts their metadata for use in tests.
Successive calls sync the local cache directory with the remote state.
cargo run -- test-files download packages
- Validate the current metadata in the local cache:
cargo run -- test-files test build-info
You can use the --repository
flag for specifying repositories. The available package repositories are core
, extra
and multilib
.
The test-files
subcommand of the scripts
binary downloads live data from Arch mirrors and Arch's GitLab to test the parser binaries on them.
Providing test integration for all file types is in scope of this crate, as soon as components for them exist.
Currently the following file types are supported:
- ALPM-DB-DESC
- ALPM-DB-FILES
- ALPM-MTREE
- ALPM-REPO-DESC
- ALPM-REPO-FILES
- BUILDINFO
- PKGINFO
- SRCINFO
There are three different data sources, which can be downloaded individually:
Calling test-files download databases
downloads the current repository sync databases from a given mirror and extracts them.
The default destination is ~/.cache/alpm/testing/databases
. A dedicated folder will be created for each package repository.
Calling test-files download packages
downloads the current packages from a given mirror and extracts all metadata files from them.
The default destination is ~/.cache/alpm/testing/packages
. A dedicated folder will be created for each package repository.
Calling test-files download pkg-src-repositories
downloads the package source repositories for all active packages and extracts all package metadata files from them.
The default destination is ~/.cache/alpm/testing/pkgsrc
.
To run the parser tests for a specific file type run test-files test $FILE_TYPE
. For instance: test-files test build-info
.
Depending on which file type you want to test, you need to download the respective data first.
test-files download databases
will contain the following file types:
desc
files
test-files download packages
will contain the following file types:
.INSTALL
.BUILDINFO
.MTREE
.PKGINFO
test-files download pkg-src-repositories
will contain the following file type:
.SRCINFO