@@ -176,39 +176,41 @@ fn verify_toolchains(config: &Experiment, tcs: &[Toolchain]) -> Result<()> {
176
176
Ok ( ( ) )
177
177
}
178
178
179
- fn test_build_and_test (
180
- ex : & Experiment ,
181
- source_path : & Path ,
182
- toolchain : & Toolchain ,
183
- ) -> Result < TestResult > {
184
- let build_r = toolchain. run_cargo (
185
- & ex. name ,
186
- source_path,
187
- & [ "build" , "--frozen" ] ,
188
- CargoState :: Locked ,
189
- ) ;
190
- let mut test_r;
191
-
192
- if build_r. is_ok ( ) {
193
- // First build, with --no-run
194
- test_r = Some ( toolchain. run_cargo (
179
+ fn build ( ex : & Experiment , source_path : & Path , toolchain : & Toolchain ) -> Result < ( ) > {
180
+ toolchain
181
+ . run_cargo (
195
182
& ex. name ,
196
183
source_path,
197
- & [ "test " , "--frozen" , "--no-run "] ,
184
+ & [ "build " , "--frozen" ] ,
198
185
CargoState :: Locked ,
199
- ) ) ;
200
- // Then run
201
- test_r = test_r. map ( |_| {
186
+ )
187
+ . map ( |_| {
202
188
toolchain. run_cargo (
203
189
& ex. name ,
204
190
source_path,
205
- & [ "test" , "--frozen" ] ,
191
+ & [ "test" , "--frozen" , "--no-run" ] ,
206
192
CargoState :: Locked ,
207
193
)
208
- } ) ;
194
+ } )
195
+ . map ( |_| ( ) )
196
+ }
197
+
198
+ fn test_build_and_test (
199
+ ex : & Experiment ,
200
+ source_path : & Path ,
201
+ toolchain : & Toolchain ,
202
+ ) -> Result < TestResult > {
203
+ let build_r = build ( ex, source_path, toolchain) ;
204
+ let test_r = if build_r. is_ok ( ) {
205
+ Some ( toolchain. run_cargo (
206
+ & ex. name ,
207
+ source_path,
208
+ & [ "test" , "--frozen" ] ,
209
+ CargoState :: Locked ,
210
+ ) )
209
211
} else {
210
- test_r = None ;
211
- }
212
+ None
213
+ } ;
212
214
213
215
Ok ( match ( build_r, test_r) {
214
216
( Err ( _) , None ) => TestResult :: BuildFail ,
@@ -223,13 +225,7 @@ fn test_build_only(
223
225
source_path : & Path ,
224
226
toolchain : & Toolchain ,
225
227
) -> Result < TestResult > {
226
- let r = toolchain. run_cargo (
227
- & ex. name ,
228
- source_path,
229
- & [ "build" , "--frozen" ] ,
230
- CargoState :: Locked ,
231
- ) ;
232
-
228
+ let r = build ( ex, source_path, toolchain) ;
233
229
if r. is_ok ( ) {
234
230
Ok ( TestResult :: TestPass )
235
231
} else {
0 commit comments