44 lines
1.5 KiB
Bash
44 lines
1.5 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Wrapper script to use for the Meson test setup.
|
|
#
|
|
# Define the "UI_TEST" for all tests that should run headless
|
|
|
|
if [ -n "${UI_TEST}" ]; then
|
|
# Use Xvfb to simulate a graphical session; note that this needs
|
|
# a new enough version which has the -d option.
|
|
#
|
|
# Also use dbus-run-session to make sure parallel tests aren't failing
|
|
# as they simultaneously try to own the "technology.heckin.PIKA.UI" D-Bus name
|
|
|
|
# This is weird but basically on a Debian testing/bookworm, apparently
|
|
# the --auto-display (neither the short version -d) option does not
|
|
# exist and ends up in error:
|
|
# > xvfb-run: unrecognized option '--auto-display'
|
|
# There only --auto-servernum works fine.
|
|
#
|
|
# On a recent Fedora (33 in my case), the later exists but a few of
|
|
# the tests fail with some weirder:
|
|
# > /usr/bin/xvfb-run: line 186: kill: (53539) - No such process
|
|
# There using --auto-display instead (supposed to deprecate
|
|
# --auto-servernum) works instead, but only in its short form (-d).
|
|
# The long form --auto-display also results in the "unrecognized
|
|
# option" error even though the help output lists it.
|
|
# Yep it's a huge mess.
|
|
xvfb-run 2>&1|grep --quiet auto-display
|
|
HAS_AUTO_DISPLAY="$?"
|
|
if [ "$HAS_AUTO_DISPLAY" -eq 0 ]; then
|
|
OPT="-d"
|
|
else
|
|
OPT="--auto-servernum"
|
|
fi
|
|
xvfb-run $OPT --server-args="-screen 0 1280x1024x24" \
|
|
dbus-run-session -- "$@"
|
|
|
|
else
|
|
# Run the executable directly,
|
|
# i.e. no need to run Xvfb (which will have a timeout)
|
|
|
|
"$@"
|
|
fi
|