ci: Read test output from stderr

Signed-off-by: Yuki Okushi <jtitor@2k36.org>
This commit is contained in:
Yuki Okushi 2022-11-19 15:16:44 +09:00
parent bbf929d2c8
commit 89d7013676
No known key found for this signature in database

View file

@ -22,7 +22,7 @@ fn main() {
.arg(&test) .arg(&test)
.arg(&dst) .arg(&dst)
.status() .status()
.expect("failed to run: adb pushr"); .expect("failed to run: adb push");
assert!(status.success()); assert!(status.success());
let output = Command::new("adb") let output = Command::new("adb")
@ -33,16 +33,17 @@ fn main() {
.expect("failed to run: adb shell"); .expect("failed to run: adb shell");
assert!(status.success()); assert!(status.success());
let stdout = String::from_utf8_lossy(&output.stdout);
let stderr = String::from_utf8_lossy(&output.stderr);
println!("status: {}\nstdout ---\n{}\nstderr ---\n{}", println!("status: {}\nstdout ---\n{}\nstderr ---\n{}",
output.status, output.status,
String::from_utf8_lossy(&output.stdout), stdout,
String::from_utf8_lossy(&output.stderr)); stderr);
let stdout = String::from_utf8_lossy(&output.stdout); if !stderr.lines().any(|l| (l.starts_with("PASSED ") && l.contains(" tests")) || l.starts_with("test result: ok"))
stdout.lines().find(|l| && !stdout.lines().any(|l| (l.starts_with("PASSED ") && l.contains(" tests")) || l.starts_with("test result: ok"))
(l.starts_with("PASSED ") && l.contains(" tests")) || {
l.starts_with("test result: ok")
).unwrap_or_else(|| {
panic!("failed to find successful test run"); panic!("failed to find successful test run");
}); };
} }