@@ -148,22 +148,24 @@ impl<'a, DB: WriteResults + Sync> Worker<'a, DB> {
148
148
149
149
info ! ( "{} processing crate {}" , self . name, krate) ;
150
150
151
- let mut tasks = Vec :: new ( ) ;
151
+ let mut did_prepare = false ;
152
+ for tc in & self . ex . toolchains {
153
+ let mut tasks = Vec :: new ( ) ;
152
154
153
- if !self . ex . ignore_blacklist && self . config . should_skip ( & krate) {
154
- for tc in & self . ex . toolchains {
155
+ if !self . ex . ignore_blacklist && self . config . should_skip ( & krate) {
155
156
tasks. push ( Task {
156
157
krate : krate. clone ( ) ,
157
158
step : TaskStep :: Skip { tc : tc. clone ( ) } ,
158
159
} ) ;
159
- }
160
- } else {
161
- tasks. push ( Task {
162
- krate : krate. clone ( ) ,
163
- step : TaskStep :: Prepare ,
164
- } ) ;
165
- let quiet = self . config . is_quiet ( & krate) ;
166
- for tc in & self . ex . toolchains {
160
+ } else {
161
+ if !did_prepare {
162
+ did_prepare = true ;
163
+ tasks. push ( Task {
164
+ krate : krate. clone ( ) ,
165
+ step : TaskStep :: Prepare ,
166
+ } ) ;
167
+ }
168
+ let quiet = self . config . is_quiet ( & krate) ;
167
169
tasks. push ( Task {
168
170
krate : krate. clone ( ) ,
169
171
step : match self . ex . mode {
@@ -200,19 +202,19 @@ impl<'a, DB: WriteResults + Sync> Worker<'a, DB> {
200
202
} ,
201
203
} ) ;
202
204
}
203
- }
204
205
205
- let mut result = Ok ( ( ) ) ;
206
- let storage = LogStorage :: from ( self . config ) ;
207
- for task in tasks {
208
- if result. is_ok ( ) {
209
- result = self . run_task ( & task, & storage) ;
210
- }
211
- if let Err ( ( err, test_result) ) = & result {
212
- if let Err ( e) =
213
- task. mark_as_failed ( self . ex , self . db , err, test_result, & storage)
214
- {
215
- crate :: utils:: report_failure ( & e) ;
206
+ let mut result = Ok ( ( ) ) ;
207
+ let storage = LogStorage :: from ( self . config ) ;
208
+ for task in tasks {
209
+ if result. is_ok ( ) {
210
+ result = self . run_task ( & task, & storage) ;
211
+ }
212
+ if let Err ( ( err, test_result) ) = & result {
213
+ if let Err ( e) =
214
+ task. mark_as_failed ( self . ex , self . db , err, test_result, & storage)
215
+ {
216
+ crate :: utils:: report_failure ( & e) ;
217
+ }
216
218
}
217
219
}
218
220
}
0 commit comments