Skip to content

Commit eb860bd

Browse files
committed
re-classify non-spurious build-fail to spurious test fail as non-spurious fixed
fixing the non-spurious build failure is a non-spurious fix even if we then spuriously fail the tests clean up the comparison logic a bit while at it
1 parent 645c708 commit eb860bd

File tree

1 file changed

+20
-30
lines changed

1 file changed

+20
-30
lines changed

src/report/mod.rs

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -486,45 +486,35 @@ fn compare(
486486
}
487487
(BuildFail(_), BuildFail(FailureReason::ICE)) => Comparison::Regressed,
488488

489+
// same
489490
(BuildFail(_), BuildFail(_)) => Comparison::SameBuildFail,
490491
(TestFail(_), TestFail(_)) => Comparison::SameTestFail,
491492
(TestSkipped, TestSkipped) => Comparison::SameTestSkipped,
492493
(TestPass, TestPass) => Comparison::SameTestPass,
493494

494-
(BuildFail(ref reason1), TestFail(ref reason2))
495-
if reason1.is_spurious() || reason2.is_spurious() =>
496-
{
497-
Comparison::SpuriousFixed
498-
}
499-
(BuildFail(ref reason), TestSkipped)
500-
| (BuildFail(ref reason), TestPass)
501-
| (TestFail(ref reason), TestPass)
502-
if reason.is_spurious() =>
503-
{
504-
Comparison::SpuriousFixed
505-
}
506-
(BuildFail(_), TestFail(_))
507-
| (BuildFail(_), TestSkipped)
508-
| (BuildFail(_), TestPass)
509-
| (TestFail(_), TestPass) => Comparison::Fixed,
510-
(TestFail(_), BuildFail(reason)) if !reason.is_spurious() => Comparison::Regressed,
511-
(TestFail(reason1), BuildFail(reason2))
512-
if reason1.is_spurious() || reason2.is_spurious() =>
513-
{
514-
Comparison::SpuriousRegressed
495+
// (spurious) fixed
496+
(BuildFail(reason), TestSkipped)
497+
| (BuildFail(reason), TestPass)
498+
| (TestFail(reason), TestPass)
499+
| (BuildFail(reason), TestFail(_)) => {
500+
if reason.is_spurious() {
501+
Comparison::SpuriousFixed
502+
} else {
503+
Comparison::Fixed
504+
}
515505
}
506+
507+
// (spurious) regressed
516508
(TestPass, TestFail(reason))
517509
| (TestPass, BuildFail(reason))
518510
| (TestSkipped, BuildFail(reason))
519-
| (TestFail(_), BuildFail(reason))
520-
if reason.is_spurious() =>
521-
{
522-
Comparison::SpuriousRegressed
511+
| (TestFail(_), BuildFail(reason)) => {
512+
if reason.is_spurious() {
513+
Comparison::SpuriousRegressed
514+
} else {
515+
Comparison::Regressed
516+
}
523517
}
524-
(TestPass, TestFail(_))
525-
| (TestPass, BuildFail(_))
526-
| (TestSkipped, BuildFail(_))
527-
| (TestFail(_), BuildFail(_)) => Comparison::Regressed,
528518

529519
(Error, _) | (_, Error) => Comparison::Error,
530520
(Skipped, _) | (_, Skipped) => Comparison::Skipped,
@@ -821,6 +811,7 @@ mod tests {
821811

822812
// Non-spurious fixes/regressions
823813
BuildFail(Unknown), TestFail(Unknown) => Fixed;
814+
BuildFail(Unknown), TestFail(OOM) => Fixed;
824815
BuildFail(Unknown), TestSkipped => Fixed;
825816
BuildFail(Unknown), TestPass => Fixed;
826817
TestFail(Unknown), TestPass => Fixed;
@@ -837,7 +828,6 @@ mod tests {
837828

838829
// Spurious fixes/regressions
839830
BuildFail(OOM), TestFail(Unknown) => SpuriousFixed;
840-
BuildFail(Unknown), TestFail(OOM) => SpuriousFixed;
841831
BuildFail(OOM), TestSkipped => SpuriousFixed;
842832
BuildFail(OOM), TestPass => SpuriousFixed;
843833
TestFail(OOM), TestPass => SpuriousFixed;

0 commit comments

Comments
 (0)