Skip to content

Commit

Permalink
Make remote-test-client work as cargo runner again
Browse files Browse the repository at this point in the history
Since cargo appends executable/args, the support_lib count
parameter has to come first.
  • Loading branch information
seritools committed May 31, 2020
1 parent 0199fdc commit 036da3a
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/bootstrap/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1762,7 +1762,7 @@ impl Step for Crate {
} else if builder.remote_tested(target) {
cargo.env(
format!("CARGO_TARGET_{}_RUNNER", envify(&target)),
format!("{} run", builder.tool_exe(Tool::RemoteTestClient).display()),
format!("{} run 0", builder.tool_exe(Tool::RemoteTestClient).display()),
);
}

Expand Down
3 changes: 1 addition & 2 deletions src/tools/compiletest/src/runtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1608,8 +1608,7 @@ impl<'test> TestCx<'test> {
let mut test_client =
Command::new(self.config.remote_test_client.as_ref().unwrap());
test_client
.args(&["run", &prog])
.arg(support_libs.len().to_string())
.args(&["run", &support_libs.len().to_string(), &prog])
.args(support_libs)
.args(args)
.envs(env.clone());
Expand Down
8 changes: 5 additions & 3 deletions src/tools/remote-test-client/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,10 @@ fn main() {
),
"push" => push(Path::new(&args.next().unwrap())),
"run" => run(
args.next().unwrap(),
args.next().and_then(|count| count.parse().ok()).unwrap(),
// the last required parameter must remain the executable
// path so that the client works as a cargo runner
args.next().unwrap(),
args.collect(),
),
"help" | "-h" | "--help" => help(),
Expand Down Expand Up @@ -201,7 +203,7 @@ fn push(path: &Path) {
println!("done pushing {:?}", path);
}

fn run(exe: String, support_lib_count: usize, all_args: Vec<String>) {
fn run(support_lib_count: usize, exe: String, all_args: Vec<String>) {
let device_address = env::var(REMOTE_ADDR_ENV).unwrap_or(DEFAULT_ADDR.to_string());
let client = t!(TcpStream::connect(device_address));
let mut client = BufWriter::new(client);
Expand Down Expand Up @@ -306,7 +308,7 @@ Usage: {0} <command> [<args>]
Sub-commands:
spawn-emulator <target> <server> <tmpdir> [rootfs] See below
push <path> Copy <path> to emulator
run <file> <support_lib_count> [support_libs...] [args...]
run <support_lib_count> <file> [support_libs...] [args...]
Run program on emulator
help Display help message
Expand Down

0 comments on commit 036da3a

Please sign in to comment.