mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-03 02:40:40 +00:00

We historically have run single-threaded verbose tests because we were faulting all over the place due to bugs in rustc itself, primarily around calling conventions and passing values around. Those bugs have all since been fixed so we should be clear to run multithreaded tests quietly on CI nowadays! Closes #621
46 lines
1.3 KiB
Rust
46 lines
1.3 KiB
Rust
use std::env;
|
|
use std::process::Command;
|
|
use std::path::{Path, PathBuf};
|
|
|
|
fn main() {
|
|
let args = env::args_os()
|
|
.skip(1)
|
|
.filter(|arg| arg != "--quiet")
|
|
.collect::<Vec<_>>();
|
|
assert_eq!(args.len(), 1);
|
|
let test = PathBuf::from(&args[0]);
|
|
let dst = Path::new("/data/local/tmp").join(test.file_name().unwrap());
|
|
|
|
let status = Command::new("adb")
|
|
.arg("wait-for-device")
|
|
.status()
|
|
.expect("failed to run: adb wait-for-device");
|
|
assert!(status.success());
|
|
|
|
let status = Command::new("adb")
|
|
.arg("push")
|
|
.arg(&test)
|
|
.arg(&dst)
|
|
.status()
|
|
.expect("failed to run: adb pushr");
|
|
assert!(status.success());
|
|
|
|
let output = Command::new("adb")
|
|
.arg("shell")
|
|
.arg(&dst)
|
|
.output()
|
|
.expect("failed to run: adb shell");
|
|
assert!(status.success());
|
|
|
|
println!("status: {}\nstdout ---\n{}\nstderr ---\n{}",
|
|
output.status,
|
|
String::from_utf8_lossy(&output.stdout),
|
|
String::from_utf8_lossy(&output.stderr));
|
|
|
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
|
let mut lines = stdout.lines().filter(|l| l.starts_with("test result"));
|
|
if !lines.all(|l| l.contains("test result: ok") && l.contains("0 failed")) {
|
|
panic!("failed to find successful test run");
|
|
}
|
|
}
|