diff options
Diffstat (limited to 'libc/ci/runtest-android.rs')
-rw-r--r-- | libc/ci/runtest-android.rs | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/libc/ci/runtest-android.rs b/libc/ci/runtest-android.rs index a8f8db8..b8030c4 100644 --- a/libc/ci/runtest-android.rs +++ b/libc/ci/runtest-android.rs @@ -3,14 +3,18 @@ use std::process::Command; use std::path::{Path, PathBuf}; fn main() { - assert_eq!(env::args_os().len(), 2); - let test = PathBuf::from(env::args_os().nth(1).unwrap()); + 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 rumprun-bake"); + .expect("failed to run: adb wait-for-device"); assert!(status.success()); let status = Command::new("adb") @@ -18,14 +22,14 @@ fn main() { .arg(&test) .arg(&dst) .status() - .expect("failed to run rumprun-bake"); + .expect("failed to run: adb pushr"); assert!(status.success()); let output = Command::new("adb") .arg("shell") .arg(&dst) .output() - .expect("failed to run rumprun-bake"); + .expect("failed to run: adb shell"); assert!(status.success()); println!("status: {}\nstdout ---\n{}\nstderr ---\n{}", @@ -34,8 +38,10 @@ fn main() { String::from_utf8_lossy(&output.stderr)); let stdout = String::from_utf8_lossy(&output.stdout); - let mut lines = stdout.lines().filter(|l| l.starts_with("PASSED ")); - if !lines.any(|l| l.contains(" tests")) { + stdout.lines().find(|l| + (l.starts_with("PASSED ") && l.contains(" tests")) || + l.starts_with("test result: ok") + ).unwrap_or_else(|| { panic!("failed to find successful test run"); - } + }); } |