Files
gentoo-utils-gitea/tests/profile/read_mock_profile.rs
John Turner f279e07367
All checks were successful
Gentoo Utils / build-oci-image (pull_request) Successful in 5s
Gentoo Utils / build (pull_request) Successful in 1m35s
add package.mask entry to mock repo
2025-12-13 03:01:07 +00:00

68 lines
1.6 KiB
Rust

use std::env;
use gentoo_utils::{atom::Atom, repo::Repo, useflag::UseFlag};
use itertools::Itertools;
fn main() {
let repo_path = env::args().nth(1).expect("expected path to mock repo");
let repo = Repo::new(&repo_path).expect("failed to open repo");
let profile = repo
.evaluate_profile("features/emacs/gui")
.expect("failed to evaluate profile");
assert_eq!(
profile.make_defaults()["USE"]
.split_ascii_whitespace()
.sorted()
.collect::<Vec<_>>(),
vec!["base", "emacs"]
);
assert_eq!(
profile
.packages()
.iter()
.map(Atom::to_string)
.collect::<Vec<_>>(),
vec!["app-editors/emacs"]
);
assert_eq!(
profile
.package_mask()
.iter()
.map(Atom::to_string)
.collect::<Vec<_>>(),
vec!["app-editors/vim"]
);
let emacs_package_use = profile
.package_use()
.iter()
.find_map(|(atom, flags)| {
if atom.clone().into_cp().to_string() == "app-editors/emacs" {
Some(flags)
} else {
None
}
})
.expect("failed to read package.use settings for app-editors/emacs");
assert_eq!(
emacs_package_use
.iter()
.map(UseFlag::to_string)
.collect::<Vec<_>>(),
vec!["default", "gui"]
);
assert_eq!(
profile
.use_force()
.iter()
.map(UseFlag::to_string)
.collect::<Vec<_>>(),
vec!["default", "gui"]
);
}