Stop using xvfb-run in tests
Except the X11 backend test, it still needs an X server. Eventually we can replace it with the equivalent that uses Xwayland, but that needs a "scaled down" mutter that runs as the host compositor for Xwayland, that doesn't expose anything on the session bus. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3812>
This commit is contained in:
parent
cb5b2dbaa7
commit
16efcd4f9a
5 changed files with 37 additions and 32 deletions
|
@ -516,18 +516,18 @@ build-wayland-only@x86_64:
|
||||||
- .test-mutter-base
|
- .test-mutter-base
|
||||||
script:
|
script:
|
||||||
- glib-compile-schemas $GSETTINGS_SCHEMA_DIR
|
- glib-compile-schemas $GSETTINGS_SCHEMA_DIR
|
||||||
- xvfb-run -a -s "$XVFB_SERVER_ARGS"
|
- mkdir -m 1777 /tmp/.X11-unix
|
||||||
./src/tests/meta-dbus-runner.py
|
- ./src/tests/meta-dbus-runner.py
|
||||||
--launch=pipewire
|
--launch=pipewire
|
||||||
--launch=wireplumber
|
--launch=wireplumber
|
||||||
--
|
--
|
||||||
meson test
|
meson test
|
||||||
-C build
|
-C build
|
||||||
--setup plain
|
--setup plain
|
||||||
--no-suite 'mutter/kvm'
|
--no-suite 'mutter/kvm'
|
||||||
--no-rebuild
|
--no-rebuild
|
||||||
--timeout-multiplier 10
|
--timeout-multiplier 10
|
||||||
--print-errorlogs
|
--print-errorlogs
|
||||||
artifacts:
|
artifacts:
|
||||||
reports:
|
reports:
|
||||||
junit: "build/meson-logs/testlog-plain.junit.xml"
|
junit: "build/meson-logs/testlog-plain.junit.xml"
|
||||||
|
@ -614,7 +614,8 @@ can-run-gnome-shell@x86_64:
|
||||||
- .gitlab-ci/checkout-gnome-shell.sh
|
- .gitlab-ci/checkout-gnome-shell.sh
|
||||||
- meson setup gnome-shell gnome-shell/build --prefix /usr -Dbuildtype=debugoptimized -Dman=false --werror --fatal-meson-warnings
|
- meson setup gnome-shell gnome-shell/build --prefix /usr -Dbuildtype=debugoptimized -Dman=false --werror --fatal-meson-warnings
|
||||||
- sudo meson install -C gnome-shell/build
|
- sudo meson install -C gnome-shell/build
|
||||||
- dbus-run-session -- xvfb-run meson test -C gnome-shell/build --no-rebuild --timeout-multiplier 5
|
- mkdir -m 1777 /tmp/.X11-unix
|
||||||
|
- dbus-run-session -- meson test -C gnome-shell/build --no-rebuild --timeout-multiplier 5
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 7 day
|
expire_in: 7 day
|
||||||
name: "mutter-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
name: "mutter-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||||
|
@ -685,12 +686,12 @@ dist-mutter:
|
||||||
- meson setup . build --werror --prefix /usr
|
- meson setup . build --werror --prefix /usr
|
||||||
-Dbuildtype=debugoptimized
|
-Dbuildtype=debugoptimized
|
||||||
- glib-compile-schemas $GSETTINGS_SCHEMA_DIR
|
- glib-compile-schemas $GSETTINGS_SCHEMA_DIR
|
||||||
- xvfb-run -a -s "$XVFB_SERVER_ARGS"
|
- mkdir -m 1777 /tmp/.X11-unix
|
||||||
./src/tests/meta-dbus-runner.py
|
- ./src/tests/meta-dbus-runner.py
|
||||||
--launch=pipewire
|
--launch=pipewire
|
||||||
--launch=wireplumber
|
--launch=wireplumber
|
||||||
--
|
--
|
||||||
meson dist -C build
|
meson dist -C build
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 7 day
|
expire_in: 7 day
|
||||||
name: "mutter-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
name: "mutter-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||||
|
|
|
@ -92,11 +92,9 @@ Renderdoc is usually the better tool to debug something with, but it's also hard
|
||||||
```sh
|
```sh
|
||||||
export XDG_RUNTIME_DIR=$PWD/runtime-dir
|
export XDG_RUNTIME_DIR=$PWD/runtime-dir
|
||||||
mkdir -p $XDG_RUNTIME_DIR
|
mkdir -p $XDG_RUNTIME_DIR
|
||||||
./src/tests/meta-dbus-runner.py xvfb-run meson test -C build --setup plain --gdb failing-test-case
|
./src/tests/meta-dbus-runner.py meson test -C build --setup plain --gdb failing-test-case
|
||||||
```
|
```
|
||||||
|
|
||||||
The need for `xvfb-run` depends on whether the test case uses the nested backend or the headless backend.
|
|
||||||
|
|
||||||
If it involves screen casting, it becomes a bit more complicated:
|
If it involves screen casting, it becomes a bit more complicated:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|
16
meson.build
16
meson.build
|
@ -351,6 +351,7 @@ have_native_tests = false
|
||||||
have_kvm_tests = false
|
have_kvm_tests = false
|
||||||
have_tty_tests = false
|
have_tty_tests = false
|
||||||
have_installed_tests = false
|
have_installed_tests = false
|
||||||
|
have_x11_tests = false
|
||||||
|
|
||||||
if have_tests
|
if have_tests
|
||||||
gtk3_dep = dependency('gtk+-3.0', version: gtk3_req)
|
gtk3_dep = dependency('gtk+-3.0', version: gtk3_req)
|
||||||
|
@ -417,13 +418,12 @@ if have_tests
|
||||||
|
|
||||||
add_test_setup('plain')
|
add_test_setup('plain')
|
||||||
|
|
||||||
xvfb = find_program('xvfb-run')
|
if have_x11
|
||||||
xvfb_args = [
|
xvfb = find_program('xvfb-run', required: false)
|
||||||
'-a',
|
if xvfb.found()
|
||||||
'-s',
|
have_x11_tests = true
|
||||||
'+iglx -noreset',
|
endif
|
||||||
]
|
endif
|
||||||
xvfb_command = [xvfb] + xvfb_args
|
|
||||||
|
|
||||||
add_test_setup('CI',
|
add_test_setup('CI',
|
||||||
env: [
|
env: [
|
||||||
|
@ -431,7 +431,6 @@ if have_tests
|
||||||
],
|
],
|
||||||
exe_wrapper: [
|
exe_wrapper: [
|
||||||
default_test_wrappers,
|
default_test_wrappers,
|
||||||
xvfb_command,
|
|
||||||
],
|
],
|
||||||
timeout_multiplier: 10,
|
timeout_multiplier: 10,
|
||||||
)
|
)
|
||||||
|
@ -759,5 +758,6 @@ summary('Core tests', have_core_tests, section: 'Tests')
|
||||||
summary('Cogl tests', have_cogl_tests, section: 'Tests')
|
summary('Cogl tests', have_cogl_tests, section: 'Tests')
|
||||||
summary('Clutter tests', have_clutter_tests, section: 'Tests')
|
summary('Clutter tests', have_clutter_tests, section: 'Tests')
|
||||||
summary('KVM tests', get_option('kvm_tests'), section: 'Tests')
|
summary('KVM tests', get_option('kvm_tests'), section: 'Tests')
|
||||||
|
summary('X11 backend', have_x11_tests, section: 'Tests')
|
||||||
summary('Installed tests', have_installed_tests, section: 'Tests')
|
summary('Installed tests', have_installed_tests, section: 'Tests')
|
||||||
summary('Coverage', get_option('b_coverage'), section: 'Tests')
|
summary('Coverage', get_option('b_coverage'), section: 'Tests')
|
||||||
|
|
|
@ -828,7 +828,13 @@ if have_kvm_tests or have_tty_tests
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if have_x11
|
if have_x11_tests
|
||||||
|
xvfb_args = [
|
||||||
|
'-a',
|
||||||
|
'-s',
|
||||||
|
'+iglx -noreset',
|
||||||
|
]
|
||||||
|
|
||||||
foreach mode: ['', 'sync']
|
foreach mode: ['', 'sync']
|
||||||
x11_env = test_env
|
x11_env = test_env
|
||||||
if mode == 'sync'
|
if mode == 'sync'
|
||||||
|
|
|
@ -4,6 +4,6 @@ Description=Mutter stacking test: @stacking_test@
|
||||||
# a solution for
|
# a solution for
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-desktop-testing/-/issues/1,
|
# https://gitlab.gnome.org/GNOME/gnome-desktop-testing/-/issues/1,
|
||||||
# and anyway that wouldn't be sufficient to handle XDG_RUNTIME_DIR
|
# and anyway that wouldn't be sufficient to handle XDG_RUNTIME_DIR
|
||||||
Exec=sh -ec 'env GSETTINGS_BACKEND=memory XDG_CURRENT_DESKTOP= XDG_RUNTIME_DIR="$(mktemp -d -t mutter-@apiversion@-@stacking_test@-XXXXXX)" @libexecdir@/installed-tests/mutter-@apiversion@/mutter-installed-dbus-session.py xvfb-run -a -s "+iglx -noreset" -- @libexecdir@/installed-tests/mutter-@apiversion@/mutter-test-runner @tests_datadir@/stacking/@stacking_test@.metatest'
|
Exec=sh -ec 'env GSETTINGS_BACKEND=memory XDG_CURRENT_DESKTOP= XDG_RUNTIME_DIR="$(mktemp -d -t mutter-@apiversion@-@stacking_test@-XXXXXX)" @libexecdir@/installed-tests/mutter-@apiversion@/mutter-installed-dbus-session.py -- @libexecdir@/installed-tests/mutter-@apiversion@/mutter-test-runner @tests_datadir@/stacking/@stacking_test@.metatest'
|
||||||
Type=session
|
Type=session
|
||||||
Output=TAP
|
Output=TAP
|
||||||
|
|
Loading…
Reference in a new issue