mirror of
https://github.com/brl/mutter.git
synced 2025-06-13 16:59:30 +00:00
tests: Add basic X11 WM test
This launches Xvfb, using xvfb-run, and inside tests the following: 1. Launching 'mutter --x11' works 2. Launching a couple of X11 clients works (doesn't crash or result in warnings) 3. Launching 'mutter --x11 --replace' works 4. Terminating works It does this using a simple shell script. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2434>
This commit is contained in:
@ -409,3 +409,18 @@ if have_kvm_tests or have_tty_tests
|
||||
endforeach
|
||||
endif
|
||||
endif
|
||||
|
||||
if have_x11
|
||||
test('x11', xvfb,
|
||||
args: [
|
||||
xvfb_args,
|
||||
find_program('x11-test.sh').full_path(),
|
||||
mutter.full_path(),
|
||||
],
|
||||
depends: [mutter],
|
||||
suite: ['core', 'mutter/x11'],
|
||||
env: test_env,
|
||||
is_parallel: false,
|
||||
timeout: 60,
|
||||
)
|
||||
endif
|
||||
|
47
src/tests/x11-test.sh
Executable file
47
src/tests/x11-test.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
MUTTER="$1"
|
||||
|
||||
if [ -z "$MUTTER" ]; then
|
||||
echo Usage: $0 PATH-TO-MUTTER > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export GDK_BACKEND=x11
|
||||
export G_DEBUG=fatal-warnings
|
||||
|
||||
echo \# Launching mutter > /dev/stderr
|
||||
$MUTTER --x11 --mutter-plugin="$MUTTER_TEST_PLUGIN_PATH" &
|
||||
MUTTER1_PID=$!
|
||||
gdbus wait --session org.gnome.Mutter.IdleMonitor
|
||||
echo \# Launched with pid $MUTTER1_PID
|
||||
|
||||
sleep 2
|
||||
|
||||
echo Launching a couple of X11 clients > /dev/stderr
|
||||
zenity --warning &
|
||||
ZENITY1_PID=$!
|
||||
sleep 2
|
||||
zenity --info &
|
||||
ZENITY2_PID=$!
|
||||
sleep 4
|
||||
|
||||
echo \# Replacing existing mutter with a new instance > /dev/stderr
|
||||
$MUTTER --x11 --replace --mutter-plugin="$MUTTER_TEST_PLUGIN_PATH" &
|
||||
echo \# Launched with pid $MUTTER2_PID
|
||||
MUTTER2_PID=$!
|
||||
wait $MUTTER1_PID
|
||||
|
||||
sleep 2
|
||||
|
||||
echo \# Terminating clients > /dev/stderr
|
||||
kill $ZENITY1_PID
|
||||
sleep 1
|
||||
kill $ZENITY2_PID
|
||||
sleep 1
|
||||
|
||||
echo \# Terminating mutter > /dev/stderr
|
||||
kill $MUTTER2_PID
|
||||
wait $MUTTER2_PID
|
Reference in New Issue
Block a user