From ad69f9c86b950cc84ca103e65824b9c9129d3999 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Mon, 31 Jan 2022 18:06:13 +0100 Subject: add support for testing with other browsers (especially Abrowser and Librewolf) There are still some spurious failures when running under those newer browsers. Those will be systematically investigated and fixed. --- configure | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 62 insertions(+), 11 deletions(-) (limited to 'configure') diff --git a/configure b/configure index 06a43eb..bd7800f 100755 --- a/configure +++ b/configure @@ -18,16 +18,29 @@ set -e BROWSERPATH='' SRCDIR='' TARGET='' +BROWSER_BINARY='' +CLEAN_PROFILE='' +DRIVER='' +PYTEST='' # Parse command line options while [ "x$1" != x ]; do case "$1" in - --srcdir=*) SRCDIR="$(echo "$1" | cut -c 10-)";; - --srcdir) SRCDIR="$2"; shift;; - "DESTDIR"=*) DESTDIR="$(echo "$1" | cut -c 9-)";; - "UPDATE_URL"=*) UPDATE_URL="$(echo "$1" | cut -c 12-)";; - --host=*) TARGET="$(echo "$1" | cut -c 8-)";; - --host) TARGET="$2"; shift;; + --srcdir=*) SRCDIR="$(printf %s "$1" | cut -c 10-)";; + --srcdir) SRCDIR="$2"; shift;; + --browser-binary=*) BROWSER_BINARY="$(printf %s "$1" | cut -c 18-)";; + --browser-binary) BROWSER_BINARY="$2"; shift;; + --clean-profile=*) CLEAN_PROFILE="$(printf %s "$1" | cut -c 17-)";; + --clean-profile) CLEAN_PROFILE="$2"; shift;; + --driver=*) DRIVER="$(printf %s "$1" | cut -c 10-)";; + --driver) DRIVER="$2"; shift;; + --pytest=*) PYTEST="$(printf %s "$1" | cut -c 10-)";; + --pytest) PYTEST="$2"; shift;; + --srcdir) SRCDIR="$2"; shift;; + "DESTDIR"=*) DESTDIR="$(printf %s "$1" | cut -c 9-)";; + "UPDATE_URL"=*) UPDATE_URL="$(printf %s "$1" | cut -c 12-)";; + --host=*) TARGET="$(printf %s "$1" | cut -c 8-)";; + --host) TARGET="$2"; shift;; # browsers chromium | chrome | google-chrome | mozilla |\ @@ -70,6 +83,20 @@ else BROWSERPATH="$(realpath "$(which $TARGET)")" fi +# Autodetect browser binary (needed for Selenium) +if [ "x$BROWSER_BINARY" = x ]; then + if [ "x$TARGET" = xabrowser ]; then + # Trisquel's path to Abrowser + BROWSER_BINARY=/usr/lib/abrowser/abrowser + if [ "x$TARGET" = xabrowser ]; then + # Debian's path to Librewolf + BROWSER_BINARY=/usr/share/librewolf/librewolf + elif [ "x$TARGET" = xicecat ]; then + # Parabola's path to IceCat + BROWSER_BINARY=/usr/lib/icecat/icecat + fi +fi + # Check and standardize target case "$TARGET" in mozilla | firefox | abrowser | icecat | iceweasel-uxp |\ @@ -79,6 +106,27 @@ case "$TARGET" in *) echo Invalid target "'$TARGET'" >&2; exit 2;; esac +# Autodetect Selenium driver +if [ "x$DRIVER" = x ]; then + if [ "x$TARGET" = mozilla ]; then + DRIVER=geckodriver + fi +fi + +# Autodetect clean profile directory for use in selenium tests +if [ "x$CLEAN_PROFILE" = x ]; then + if [ "x$TARGET" = mozilla ]; then + CLEAN_PROFILE="$SRCDIR"/test/default_profile/icecat_empty + fi +fi + +# Autodetect pytest +for PYTEST_GUESS in pytest pytest-3 pytest3; do + if [ "x$PYTEST" = x ]; then + PYTEST="$(which $PYTEST_GUESS || true)" + fi +done + # Autodetect DESTDIR (no check needed) if [ "x$DESTDIR" = x ]; then echo Guessing installation directory. @@ -95,11 +143,14 @@ if [ "x$DESTDIR" = x ]; then fi # Write record.conf (LEAVE SRCDIR FIRST) -echo srcdir = "$SRCDIR" > record.conf -echo default_target = "$TARGET" >> record.conf -echo DESTDIR = "$DESTDIR" >> record.conf -echo UPDATE_URL = "$UPDATE_URL" >> record.conf - +printf '%s\n' "srcdir = $SRCDIR" > record.conf +printf '%s\n' "default_target = $TARGET" >> record.conf +printf '%s\n' "DESTDIR = $DESTDIR" >> record.conf +printf '%s\n' "UPDATE_URL = $UPDATE_URL" >> record.conf +printf '%s\n' "DRIVER = $DRIVER" >> record.conf +printf '%s\n' "BROWSER_BINARY = $BROWSER_BINARY" >> record.conf +printf '%s\n' "CLEAN_PROFILE = $CLEAN_PROFILE" >> record.conf +printf '%s\n' "PYTEST = $PYTEST" >> record.conf # Prepare and run write_makefile.sh (as config.status) if [ ! -e config.status ]; then -- cgit v1.2.3