mirror of
https://github.com/brl/mutter.git
synced 2025-04-14 14:19:40 +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:
parent
16af2e407b
commit
57d3b5225e
10
meson.build
10
meson.build
@ -362,13 +362,21 @@ if have_tests
|
|||||||
|
|
||||||
add_test_setup('plain')
|
add_test_setup('plain')
|
||||||
|
|
||||||
|
xvfb = find_program('xvfb-run')
|
||||||
|
xvfb_args = [
|
||||||
|
'-a',
|
||||||
|
'-s',
|
||||||
|
'+iglx -noreset',
|
||||||
|
]
|
||||||
|
xvfb_command = [xvfb] + xvfb_args
|
||||||
|
|
||||||
add_test_setup('CI',
|
add_test_setup('CI',
|
||||||
env: [
|
env: [
|
||||||
'MUTTER_DEBUG_DUMMY_MODE_SPECS=800x600@10.0',
|
'MUTTER_DEBUG_DUMMY_MODE_SPECS=800x600@10.0',
|
||||||
],
|
],
|
||||||
exe_wrapper: [
|
exe_wrapper: [
|
||||||
default_test_wrappers,
|
default_test_wrappers,
|
||||||
find_program('xvfb-run'), '-a', '-s', '+iglx -noreset',
|
xvfb_command,
|
||||||
],
|
],
|
||||||
timeout_multiplier: 10,
|
timeout_multiplier: 10,
|
||||||
)
|
)
|
||||||
|
@ -1050,7 +1050,7 @@ libmutter_dep = declare_dependency(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
executable('mutter',
|
mutter = executable('mutter',
|
||||||
sources: [
|
sources: [
|
||||||
files('core/mutter.c'),
|
files('core/mutter.c'),
|
||||||
],
|
],
|
||||||
|
@ -409,3 +409,18 @@ if have_kvm_tests or have_tty_tests
|
|||||||
endforeach
|
endforeach
|
||||||
endif
|
endif
|
||||||
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
|
Loading…
x
Reference in New Issue
Block a user