chiark / gitweb /
wdriver: Introduce firefox-wrapper
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 9 Jul 2021 23:56:07 +0000 (00:56 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 10 Jul 2021 10:45:31 +0000 (11:45 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Makefile
wdriver/firefox-wrapper [new file with mode: 0755]
wdriver/wdriver.rs

index ced38ac4db2384fee6ee58dcb1fb97b9baf2e457..36f13aafb5eaae08b09cd145e3e4fa6bce154991 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -421,7 +421,7 @@ AT_DEPS =   $(filter-out templates/script.js, $(RUNTEST_DEPS)) \
                examples/big-bundle.zip \
                stamp/cargo-at.debug
 
-WDT_DEPS =     $(RUNTEST_DEPS) \
+WDT_DEPS =     $(RUNTEST_DEPS) wdriver/firefox-wrapper \
                stamp/cargo-wdt.debug
 
 AT_WDT_RUN = $(NAILING_CARGO_JUST_RUN) $(abspath $<)
diff --git a/wdriver/firefox-wrapper b/wdriver/firefox-wrapper
new file mode 100755 (executable)
index 0000000..5e0b293
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+set -e
+exec firefox "$@"
index 259e2efed061c177e54c45f0250ee46eaa979b4b..a46114691ee3b27d1a138ec34c44f92f82f1b9ec 100644 (file)
@@ -118,9 +118,11 @@ fn prepare_xserver(cln: &cleanup_notify::Handle, ds: &DirSubst) {
 }
 
 #[throws(AE)]
-fn prepare_geckodriver(opts: &Opts, cln: &cleanup_notify::Handle) {
+fn prepare_geckodriver(opts: &Opts, ds: &DirSubst,
+                       cln: &cleanup_notify::Handle) {
   const EXPECTED: &str = "Listening on 127.0.0.1:4444";
   let mut cmd = Command::new("geckodriver");
+  cmd.args(&["--binary", &ds.subst("@src@/wdriver/firefox-wrapper")?]);
   if opts.geckodriver_args != "" {
     cmd.args(opts.geckodriver_args.split(' '));
   }
@@ -825,7 +827,7 @@ pub fn setup(exe_module_path: &str) -> (Setup, Instance) {
 
   let final_hook = FinalInfoCollection;
 
-  prepare_geckodriver(&opts, &core.cln).did("setup webdriver server")?;
+  prepare_geckodriver(&opts, &core.ds, &core.cln).did("setup webdriverr")?;
   let (driver, screenshot_count, windows_squirreled) =
     prepare_thirtyfour(&core.ds).did("prepare web session")?;