chiark / gitweb /
can run Xvfb
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 22 Dec 2020 23:09:53 +0000 (23:09 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 22 Dec 2020 23:10:04 +0000 (23:10 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
wdriver.rs
wdriver/wdt-simple.rs

index fce57e2cf995409595e40a6fd0bd8c29828bcf17..ceaf9d0311f3792d5c0721cd6ad3701670e284ec 100644 (file)
@@ -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<String, AE> {
+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<String, AE> {
       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<String, AE> {
       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,
   }
 }
index 76eda428cb23c8fae8f5216dd2b621f701f0cded..8c663e102a02c4c5fc6fb917be418efc33c0d169 100644 (file)
@@ -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);
 }