chiark / gitweb /
run geckodriver
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Dec 2020 00:06:35 +0000 (00:06 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Dec 2020 00:06:35 +0000 (00:06 +0000)
But we leak it

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
wdriver.rs

index 10233c75a63c1ad60e6969223dea606404738691..3e723b96bc2df84d30dc470a64e5f6511da9b910 100644 (file)
@@ -166,6 +166,20 @@ fn prepare_xserver() {
   Box::leak(Box::new(xconn));
 }
 
+#[throws(AE)]
+fn prepare_geckodriver() {
+  const EXPECTED : &str = "Listening on 127.0.0.1:4444";
+  let cmd = Command::new("geckodriver");
+  let l = fork_something_which_prints(cmd).context("geckodriver")?;
+  let fields : Vec<_> = l.split('\t').skip(2).take(2).collect();
+  let expected = ["INFO", EXPECTED];
+  if fields != expected {
+    throw!(anyhow!("geckodriver did not report as expected \
+                    - got {:?}, expected {:?}",
+                   fields, &expected));
+  }
+}
+
 #[throws(AE)]
 pub fn setup() -> Setup {
   let current_exe : String = env::current_exe()
@@ -183,6 +197,7 @@ pub fn setup() -> Setup {
   let tmp = prepare_tmpdir(&opts, &current_exe)?;
 
   prepare_xserver().context("setup X server")?;
+  prepare_geckodriver().context("setup webdriver serverr")?;
 
   Setup {
     tmp,