@@ -71,6 +71,7 @@ string_enum!(pub enum Comparison {
71
71
Unknown => "unknown" ,
72
72
Error => "error" ,
73
73
Broken => "broken" ,
74
+ PrepareFail => "prepare-fail" ,
74
75
SameBuildFail => "build-fail" ,
75
76
SameTestFail => "test-fail" ,
76
77
SameTestSkipped => "test-skipped" ,
@@ -87,7 +88,8 @@ impl Comparison {
87
88
| Comparison :: Unknown
88
89
| Comparison :: Error
89
90
| Comparison :: SpuriousRegressed
90
- | Comparison :: SpuriousFixed => true ,
91
+ | Comparison :: SpuriousFixed
92
+ | Comparison :: PrepareFail => true ,
91
93
Comparison :: Skipped
92
94
| Comparison :: Broken
93
95
| Comparison :: SameBuildFail
@@ -107,6 +109,7 @@ impl Comparison {
107
109
| Comparison :: SpuriousFixed
108
110
| Comparison :: Skipped
109
111
| Comparison :: Broken
112
+ | Comparison :: PrepareFail
110
113
| Comparison :: SameBuildFail
111
114
| Comparison :: SameTestFail
112
115
| Comparison :: SameTestSkipped
@@ -406,7 +409,9 @@ fn gen_retry_list(res: &RawTestResults) -> String {
406
409
. crates
407
410
. iter ( )
408
411
. filter ( |crate_res| {
409
- crate_res. res == Comparison :: Regressed || crate_res. res == Comparison :: SpuriousRegressed
412
+ crate_res. res == Comparison :: Regressed
413
+ || crate_res. res == Comparison :: SpuriousRegressed
414
+ || crate_res. res == Comparison :: PrepareFail
410
415
} )
411
416
. map ( |crate_res| & crate_res. krate ) ;
412
417
@@ -486,53 +491,37 @@ fn compare(
486
491
}
487
492
( BuildFail ( _) , BuildFail ( FailureReason :: ICE ) ) => Comparison :: Regressed ,
488
493
494
+ // same
489
495
( BuildFail ( _) , BuildFail ( _) ) => Comparison :: SameBuildFail ,
490
- ( TestFail ( _) , TestFail ( _) ) => Comparison :: SameTestFail ,
491
496
( TestSkipped , TestSkipped ) => Comparison :: SameTestSkipped ,
497
+ ( TestFail ( _) , TestFail ( _) ) => Comparison :: SameTestFail ,
492
498
( TestPass , TestPass ) => Comparison :: SameTestPass ,
493
499
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
500
+ // (spurious) fixed
501
+ ( BuildFail ( reason) , TestSkipped | TestFail ( _) | TestPass )
502
+ | ( TestFail ( reason) , TestPass ) => {
503
+ if reason. is_spurious ( ) {
504
+ Comparison :: SpuriousFixed
505
+ } else {
506
+ Comparison :: Fixed
507
+ }
515
508
}
516
- ( TestPass , TestFail ( reason) )
517
- | ( TestPass , BuildFail ( reason) )
518
- | ( TestSkipped , BuildFail ( reason) )
519
- | ( TestFail ( _) , BuildFail ( reason) )
520
- if reason. is_spurious ( ) =>
521
- {
522
- Comparison :: SpuriousRegressed
509
+
510
+ // (spurious) regressed
511
+ ( TestSkipped | TestFail ( _) | TestPass , BuildFail ( reason) )
512
+ | ( TestPass , TestFail ( reason) ) => {
513
+ if reason. is_spurious ( ) {
514
+ Comparison :: SpuriousRegressed
515
+ } else {
516
+ Comparison :: Regressed
517
+ }
523
518
}
524
- ( TestPass , TestFail ( _) )
525
- | ( TestPass , BuildFail ( _) )
526
- | ( TestSkipped , BuildFail ( _) )
527
- | ( TestFail ( _) , BuildFail ( _) ) => Comparison :: Regressed ,
528
519
520
+ ( PrepareFail ( _) , _) | ( _, PrepareFail ( _) ) => Comparison :: PrepareFail ,
529
521
( Error , _) | ( _, Error ) => Comparison :: Error ,
530
522
( Skipped , _) | ( _, Skipped ) => Comparison :: Skipped ,
531
523
( BrokenCrate ( _) , _) | ( _, BrokenCrate ( _) ) => Comparison :: Broken ,
532
- ( TestFail ( _) , TestSkipped )
533
- | ( TestPass , TestSkipped )
534
- | ( TestSkipped , TestFail ( _) )
535
- | ( TestSkipped , TestPass ) => {
524
+ ( TestFail ( _) | TestPass , TestSkipped ) | ( TestSkipped , TestFail ( _) | TestPass ) => {
536
525
panic ! ( "can't compare {res1} and {res2}" ) ;
537
526
}
538
527
} ,
@@ -821,6 +810,7 @@ mod tests {
821
810
822
811
// Non-spurious fixes/regressions
823
812
BuildFail ( Unknown ) , TestFail ( Unknown ) => Fixed ;
813
+ BuildFail ( Unknown ) , TestFail ( OOM ) => Fixed ;
824
814
BuildFail ( Unknown ) , TestSkipped => Fixed ;
825
815
BuildFail ( Unknown ) , TestPass => Fixed ;
826
816
TestFail ( Unknown ) , TestPass => Fixed ;
@@ -837,7 +827,6 @@ mod tests {
837
827
838
828
// Spurious fixes/regressions
839
829
BuildFail ( OOM ) , TestFail ( Unknown ) => SpuriousFixed ;
840
- BuildFail ( Unknown ) , TestFail ( OOM ) => SpuriousFixed ;
841
830
BuildFail ( OOM ) , TestSkipped => SpuriousFixed ;
842
831
BuildFail ( OOM ) , TestPass => SpuriousFixed ;
843
832
TestFail ( OOM ) , TestPass => SpuriousFixed ;
@@ -846,6 +835,10 @@ mod tests {
846
835
TestSkipped , BuildFail ( OOM ) => SpuriousRegressed ;
847
836
TestFail ( Unknown ) , BuildFail ( OOM ) => SpuriousRegressed ;
848
837
838
+ // PrepareFail
839
+ PrepareFail ( Unknown ) , BuildFail ( Unknown ) => PrepareFail ;
840
+ BuildFail ( Unknown ) , PrepareFail ( Unknown ) => PrepareFail ;
841
+
849
842
// Errors
850
843
Error , TestPass => Error ;
851
844
Error , TestSkipped => Error ;
0 commit comments