skip atoms that portage denies for having duplicate usedeps

This commit is contained in:
John Turner
2025-11-18 02:46:59 +00:00
parent 2d0a91eb18
commit 920ec36141

View File

@@ -68,19 +68,30 @@ pub unsafe extern "C" fn LLVMFuzzerTestOneInput(input: *const u8, len: usize) ->
result => panic!("got unexpected result from python: {result}"),
};
let gentoo_utils_result = Atom::parser().check_finished(InputIter::new(atom)).is_ok();
let gentoo_utils_result = Atom::parser().parse_finished(InputIter::new(atom));
match (portage_result, gentoo_utils_result) {
(true, true) => {
(true, Ok(_)) => {
eprintln!("agreement that {atom} is valid");
}
(false, false) => {
(false, Err(_)) => {
eprintln!("agreement that {atom} is invalid");
}
(true, false) => {
(true, Err(_)) => {
panic!("rejected valid atom: {atom}");
}
(false, true) => {
(false, Ok(atom))
if atom.usedeps().iter().any(|usedep| {
atom.usedeps()
.iter()
.filter(|u| usedep.flag() == u.flag())
.count()
> 1
}) =>
{
eprintln!("disagreement due to duplicates in usedeps");
}
(false, Ok(_)) => {
panic!("accpeted invalid atom: {atom}")
}
}