]> git.proxmox.com Git - rustc.git/blob - library/stdarch/ci/runtest-android.rs
New upstream version 1.47.0~beta.2+dfsg1
[rustc.git] / library / stdarch / ci / runtest-android.rs
1 use std::env;
2 use std::process::Command;
3 use std::path::{Path, PathBuf};
4
5 fn main() {
6 let args = env::args_os()
7 .skip(1)
8 .filter(|arg| arg != "--quiet")
9 .collect::<Vec<_>>();
10 assert_eq!(args.len(), 1);
11 let test = PathBuf::from(&args[0]);
12 let dst = Path::new("/data/local/tmp").join(test.file_name().unwrap());
13
14 let status = Command::new("adb")
15 .arg("wait-for-device")
16 .status()
17 .expect("failed to run: adb wait-for-device");
18 assert!(status.success());
19
20 let status = Command::new("adb")
21 .arg("push")
22 .arg(&test)
23 .arg(&dst)
24 .status()
25 .expect("failed to run: adb pushr");
26 assert!(status.success());
27
28 let output = Command::new("adb")
29 .arg("shell")
30 .arg(&dst)
31 .output()
32 .expect("failed to run: adb shell");
33 assert!(status.success());
34
35 println!("status: {}\nstdout ---\n{}\nstderr ---\n{}",
36 output.status,
37 String::from_utf8_lossy(&output.stdout),
38 String::from_utf8_lossy(&output.stderr));
39
40 let stdout = String::from_utf8_lossy(&output.stdout);
41 let mut lines = stdout.lines().filter(|l| l.starts_with("test result"));
42 if !lines.all(|l| l.contains("test result: ok") && l.contains("0 failed")) {
43 panic!("failed to find successful test run");
44 }
45 }