From 026dec29f39c19237d1440f772ffee501723ff93 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 22 Dec 2020 23:09:53 +0000 Subject: [PATCH] can run Xvfb Signed-off-by: Ian Jackson --- wdriver.rs | 12 ++++++------ wdriver/wdt-simple.rs | 6 ++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/wdriver.rs b/wdriver.rs index fce57e2c..ceaf9d03 100644 --- a/wdriver.rs +++ b/wdriver.rs @@ -30,7 +30,6 @@ struct Opts { #[derive(Debug,Clone)] pub struct Setup { tmp: String, - display: String, } #[throws(AE)] @@ -105,7 +104,7 @@ fn prepare_tmpdir(opts: &Opts, current_exe: &str) -> String { } #[throws(AE)] -fn prepare_xserver1() -> impl FnOnce() -> Result { +fn prepare_xserver1() -> impl FnOnce() -> Result<(), AE> { const DISPLAY : &str = "12"; let mut xcmd = Command::new("Xvfb"); @@ -129,7 +128,7 @@ fn prepare_xserver1() -> impl FnOnce() -> Result { throw!(anyhow!("Xvfb failed to start: wait status = {}", &e)); } - let l = match l { + match l { Some(Ok(l)) if l == DISPLAY => { l }, Some(Ok(l)) => throw!(anyhow!( "Xfvb said {:?}, expected {:?}", @@ -139,7 +138,9 @@ fn prepare_xserver1() -> impl FnOnce() -> Result { Some(Err(e)) => throw!(AE::from(e).context("failed to read from Xfvb")), }; - Ok(l) + env::set_var("DISPLAY", format!("[::1]:{}", DISPLAY)); + + Ok(()) } } @@ -161,10 +162,9 @@ pub fn setup() -> Setup { let xserver1 = prepare_xserver1().context("setup X server")?; - let display = xserver1().context("wait for X server")?; + xserver1().context("wait for X server")?; Setup { tmp, - display, } } diff --git a/wdriver/wdt-simple.rs b/wdriver/wdt-simple.rs index 76eda428..8c663e10 100644 --- a/wdriver/wdt-simple.rs +++ b/wdriver/wdt-simple.rs @@ -9,4 +9,10 @@ fn main(){ let s = setup()?; println!("hi! {:#?}", &s); + + let mut c = Command::new("xdpyinfo"); + let s = c + .spawn().context("spawn")? + .wait().context("wait")?; + println!("s = {:?}", &s); } -- 2.30.2