Skip to content

Commit b34f4ed

Browse files
feat(update_expected)!: ignore SKIPs when reported with other outcomes
1 parent ace3850 commit b34f4ed

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

moz-webgpu-cts/src/main.rs

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ fn run(cli: Cli) -> ExitCode {
587587
entry:
588588
Entry {
589589
meta_props: properties,
590-
reported: test_reported,
590+
reported: mut test_reported,
591591
},
592592
subtests: subtest_entries,
593593
} = test_entry;
@@ -611,6 +611,41 @@ fn run(cli: Cli) -> ExitCode {
611611

612612
let mut properties = properties.unwrap_or_default();
613613

614+
for (platform, build_profile, reported) in
615+
test_reported.iter_mut().flat_map(|(p, by_bp)| {
616+
by_bp
617+
.iter_mut()
618+
.map(move |(bp, reported)| (p, bp, reported))
619+
})
620+
{
621+
let skip = TestOutcome::Skip;
622+
// Ignore `SKIP` outcomes if we have non-`SKIP` outcomes here.
623+
//
624+
// Do this so that test runs whose coverage _in aggregate_ includes actual
625+
// runs on this test are viable for processing. Otherwise, we'd have `SKIP`
626+
// outcomes be included that aren't actually wanted.
627+
if *reported != skip {
628+
let skip = skip.into();
629+
if reported.inner().is_superset(skip) {
630+
log::debug!(
631+
concat!(
632+
"encountered `{}` among other outcomes ",
633+
"in aggregation of reported test outcomes ",
634+
"for {:?} with platform {:?} and build profile {:?}, ",
635+
" removing with the assumption that ",
636+
"this is an artifact of disjoint test runs"
637+
),
638+
skip,
639+
test_path,
640+
platform,
641+
build_profile,
642+
);
643+
*reported = Expected::new(reported.inner() & !skip)
644+
.expect("internal error: empty non-`SKIP` superset");
645+
}
646+
}
647+
}
648+
614649
reconcile(&mut properties, test_reported, preset);
615650

616651
let mut subtests = BTreeMap::new();

0 commit comments

Comments
 (0)