@@ -10,30 +10,13 @@ use crate::jobs::JobDatabase;
10
10
use crate :: metrics:: { JobMetrics , JobName , download_auto_job_metrics, get_test_suites} ;
11
11
use crate :: utils:: normalize_path_delimiters;
12
12
13
- pub struct TestInfo {
14
- name : String ,
15
- jobs : Vec < JobTestResult > ,
16
- }
17
-
18
- struct JobTestResult {
19
- job_name : String ,
20
- outcome : TestOutcome ,
21
- }
22
-
23
- #[ derive( Default ) ]
24
- struct TestSuiteInfo {
25
- name : String ,
26
- tests : BTreeMap < String , TestInfo > ,
27
- }
28
-
29
13
/// Generate a set of HTML files into a directory that contain a dashboard of test results.
30
14
pub fn generate_test_dashboard (
31
15
db : JobDatabase ,
32
16
current : & str ,
33
17
output_dir : & Path ,
34
18
) -> anyhow:: Result < ( ) > {
35
19
let metrics = download_auto_job_metrics ( & db, None , current) ?;
36
-
37
20
let suites = gather_test_suites ( & metrics) ;
38
21
39
22
std:: fs:: create_dir_all ( output_dir) ?;
@@ -52,27 +35,27 @@ fn write_page<T: Template>(dir: &Path, name: &str, template: &T) -> anyhow::Resu
52
35
53
36
fn gather_test_suites ( job_metrics : & HashMap < JobName , JobMetrics > ) -> TestSuites {
54
37
struct CoarseTestSuite < ' a > {
55
- kind : TestSuiteKind ,
56
38
tests : BTreeMap < String , Test < ' a > > ,
57
39
}
58
40
59
41
let mut suites: HashMap < String , CoarseTestSuite > = HashMap :: new ( ) ;
60
42
61
43
// First, gather tests from all jobs, stages and targets, and aggregate them per suite
44
+ // Only work with compiletest suites.
62
45
for ( job, metrics) in job_metrics {
63
46
let test_suites = get_test_suites ( & metrics. current ) ;
64
47
for suite in test_suites {
65
- let ( suite_name, stage, target, kind ) = match & suite. metadata {
66
- TestSuiteMetadata :: CargoPackage { crates , stage , target , .. } => {
67
- ( crates . join ( "," ) , * stage , target , TestSuiteKind :: Cargo )
48
+ let ( suite_name, stage, target) = match & suite. metadata {
49
+ TestSuiteMetadata :: CargoPackage { .. } => {
50
+ continue ;
68
51
}
69
52
TestSuiteMetadata :: Compiletest { suite, stage, target, .. } => {
70
- ( suite. clone ( ) , * stage, target, TestSuiteKind :: Compiletest )
53
+ ( suite. clone ( ) , * stage, target)
71
54
}
72
55
} ;
73
56
let suite_entry = suites
74
57
. entry ( suite_name. clone ( ) )
75
- . or_insert_with ( || CoarseTestSuite { kind , tests : Default :: default ( ) } ) ;
58
+ . or_insert_with ( || CoarseTestSuite { tests : Default :: default ( ) } ) ;
76
59
let test_metadata = TestMetadata { job, stage, target } ;
77
60
78
61
for test in & suite. tests {
@@ -98,29 +81,13 @@ fn gather_test_suites(job_metrics: &HashMap<JobName, JobMetrics>) -> TestSuites
98
81
99
82
// Then, split the suites per directory
100
83
let mut suites = suites. into_iter ( ) . collect :: < Vec < _ > > ( ) ;
101
- suites. sort_by ( |a, b| a. 1 . kind . cmp ( & b . 1 . kind ) . then_with ( || a . 0 . cmp ( & b. 0 ) ) ) ;
84
+ suites. sort_by ( |a, b| a. 0 . cmp ( & b. 0 ) ) ;
102
85
103
86
let mut target_suites = vec ! [ ] ;
104
87
for ( suite_name, suite) in suites {
105
- let suite = match suite. kind {
106
- TestSuiteKind :: Compiletest => TestSuite {
107
- name : suite_name. clone ( ) ,
108
- kind : TestSuiteKind :: Compiletest ,
109
- group : build_test_group ( & suite_name, suite. tests ) ,
110
- } ,
111
- TestSuiteKind :: Cargo => {
112
- let mut tests: Vec < _ > = suite. tests . into_iter ( ) . collect ( ) ;
113
- tests. sort_by ( |a, b| a. 0 . cmp ( & b. 0 ) ) ;
114
- TestSuite {
115
- name : format ! ( "[cargo] {}" , suite_name. clone( ) ) ,
116
- kind : TestSuiteKind :: Cargo ,
117
- group : TestGroup {
118
- name : suite_name,
119
- root_tests : tests. into_iter ( ) . map ( |t| t. 1 ) . collect ( ) ,
120
- groups : vec ! [ ] ,
121
- } ,
122
- }
123
- }
88
+ let suite = TestSuite {
89
+ name : suite_name. clone ( ) ,
90
+ group : build_test_group ( & suite_name, suite. tests ) ,
124
91
} ;
125
92
target_suites. push ( suite) ;
126
93
}
@@ -187,7 +154,6 @@ impl<'a> TestSuites<'a> {
187
154
#[ derive( serde:: Serialize ) ]
188
155
struct TestSuite < ' a > {
189
156
name : String ,
190
- kind : TestSuiteKind ,
191
157
group : TestGroup < ' a > ,
192
158
}
193
159
@@ -225,12 +191,6 @@ impl<'a> TestGroup<'a> {
225
191
}
226
192
}
227
193
228
- #[ derive( PartialEq , Eq , PartialOrd , Ord , serde:: Serialize ) ]
229
- enum TestSuiteKind {
230
- Compiletest ,
231
- Cargo ,
232
- }
233
-
234
194
#[ derive( Template ) ]
235
195
#[ template( path = "test_suites.askama" ) ]
236
196
struct TestSuitesPage < ' a > {
0 commit comments