File tree Expand file tree Collapse file tree 2 files changed +17
-19
lines changed Expand file tree Collapse file tree 2 files changed +17
-19
lines changed Original file line number Diff line number Diff line change @@ -447,26 +447,11 @@ impl<'a> TestRunner<'a> {
447
447
}
448
448
449
449
fn run_out_command ( & self , name : & str , args : & [ & str ] ) {
450
- let mut full_cmd = vec ! [ ] ;
450
+ let mut cmd = self
451
+ . target_compiler
452
+ . run_with_runner ( BUILD_EXAMPLE_OUT_DIR . to_path ( & self . dirs ) . join ( name) ) ;
451
453
452
- // Prepend the RUN_WRAPPER's
453
- if !self . target_compiler . runner . is_empty ( ) {
454
- full_cmd. extend ( self . target_compiler . runner . iter ( ) . cloned ( ) ) ;
455
- }
456
-
457
- full_cmd. push (
458
- BUILD_EXAMPLE_OUT_DIR . to_path ( & self . dirs ) . join ( name) . to_str ( ) . unwrap ( ) . to_string ( ) ,
459
- ) ;
460
-
461
- for arg in args {
462
- full_cmd. push ( arg. to_string ( ) ) ;
463
- }
464
-
465
- let mut cmd_iter = full_cmd. into_iter ( ) ;
466
- let first = cmd_iter. next ( ) . unwrap ( ) ;
467
-
468
- let mut cmd = Command :: new ( first) ;
469
- cmd. args ( cmd_iter) ;
454
+ cmd. args ( args) ;
470
455
471
456
spawn_and_wait ( cmd) ;
472
457
}
Original file line number Diff line number Diff line change
1
+ use std:: ffi:: OsStr ;
1
2
use std:: path:: { Path , PathBuf } ;
2
3
use std:: process:: { self , Command } ;
3
4
use std:: sync:: atomic:: { AtomicBool , Ordering } ;
@@ -59,6 +60,18 @@ impl Compiler {
59
60
}
60
61
}
61
62
}
63
+
64
+ pub ( crate ) fn run_with_runner ( & self , program : impl AsRef < OsStr > ) -> Command {
65
+ if self . runner . is_empty ( ) {
66
+ Command :: new ( program)
67
+ } else {
68
+ let mut runner_iter = self . runner . iter ( ) ;
69
+ let mut cmd = Command :: new ( runner_iter. next ( ) . unwrap ( ) ) ;
70
+ cmd. args ( runner_iter) ;
71
+ cmd. arg ( program) ;
72
+ cmd
73
+ }
74
+ }
62
75
}
63
76
64
77
pub ( crate ) struct CargoProject {
You can’t perform that action at this time.
0 commit comments