diff --git a/gravel-test-utils/src/xvfb.rs b/gravel-test-utils/src/xvfb.rs index 930fd0e..a23ed52 100644 --- a/gravel-test-utils/src/xvfb.rs +++ b/gravel-test-utils/src/xvfb.rs @@ -11,8 +11,8 @@ impl Xvfb { /// Start new Xvfb server with sequential display number. #[cfg(unix)] pub fn new() -> Result { - use std::process::Command; use std::sync::atomic::{AtomicUsize, Ordering}; + use std::{process::Command, thread, time::Duration}; static DISPLAY_COUNTER: AtomicUsize = AtomicUsize::new(42); @@ -20,6 +20,9 @@ impl Xvfb { let process = Command::new("Xvfb").arg(&display).arg("-ac").spawn()?; + // TODO implement polling/signaling + thread::sleep(Duration::from_millis(1000)); + Ok(Self { process: Some(process), display, diff --git a/gravel/tests/smoke_test.rs b/gravel/tests/smoke_test.rs index de03771..bdea161 100644 --- a/gravel/tests/smoke_test.rs +++ b/gravel/tests/smoke_test.rs @@ -1,4 +1,4 @@ -#![allow(unused_crate_dependencies, clippy::missing_panics_doc)] +#![allow(unused_crate_dependencies, clippy::missing_panics_doc, clippy::print_stderr)] use gravel_test_utils::xvfb::Xvfb; use itertools::Itertools; @@ -27,10 +27,14 @@ pub fn run_gravel(mut bin: Command, xvfb: Xvfb) { .env("GRAVEL_CONFIG_PATH", "tests/config") .env("DISPLAY", xvfb.display()) .arg("--log-file=off") + .arg("-vv") .output() .expect("gravel broke"); - assert!(output.status.success()); + // TODO: capture *and* stream to console + eprintln!("{}", String::from_utf8_lossy(&output.stderr)); + + assert_eq!(Some(0), output.status.code()); let stderr_string = String::from_utf8(output.stderr).expect("application must output valid UTF-8");