Tests fail with `-Dsound_player=false`
When testing mutter-43 in Gentoo, I noticed the tests failed. After bisecting, I identified commit 7902fa3f which added sound_player
as a meson option. Disabling sound_player
leads to unit test failures like:
1/195 mutter:cogl+cogl/conform / cogl-test-atlas-migration-gl FAIL 1.28s (exit status 251 or signal 123 SIGinvalid)
13:52:26 COGL_DRIVER=gl MUTTER_TEST_PLUGIN_PATH=/home/mattst88/projects/GNOME/mutter/build/src/compositor/plugins/libdefault.so MALLOC_PERTURB_=112 G_TEST_SRCDIR=/home/mattst88/projects/GNOME/mutter/src/tests/cogl/conform G_ENABLE_DIAGNOSTIC=0 G_TEST_BUILDDIR=/home/mattst88/projects/GNOME/mutter/build/src/tests/cogl/conform /home/mattst88/projects/GNOME/mutter/src/tests/meta-dbus-runner.py -- /home/mattst88/projects/GNOME/mutter/build/src/tests/cogl/conform/cogl-test-atlas-migration
----------------------------------- output -----------------------------------
stdout:
# random seed: R02S9b3776aaa5d23a8410123ca52302260a
# libmutter-MESSAGE: Running Mutter Test (using mutter 43.beta) as a Wayland display server
# libmutter-MESSAGE: Added device '/dev/dri/renderD128' (i915) using no mode setting.
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation memory (GMemorySettingsBackend) for ‘gsettings-backend’
# GLib-GIO-DEBUG: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
# libmutter-MESSAGE: Created gbm renderer for '/dev/dri/renderD128'
# libmutter-MESSAGE: Boot VGA GPU /dev/dri/renderD128 selected as primary
# GVFS-DEBUG: org.gtk.vfs.MountTracker.listMountableInfo call failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gtk.vfs.Daemon was not provided by any .service files (g-dbus-error-quark, 2)
#
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’
# libmutter-MESSAGE: Using Wayland display name 'mutter-test-display'
1..1
ok 1 /atlas-migration
Bail out! GLib-GObject-FATAL-CRITICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
stderr:
Starting D-Bus daemons (session & system)...
Starting mocked services...
Running test case...
libmutter-Message: 09:52:27.670: Running Mutter Test (using mutter 43.beta) as a Wayland display server
libmutter-Message: 09:52:27.673: Added device '/dev/dri/renderD128' (i915) using no mode setting.
libmutter-Message: 09:52:27.692: Created gbm renderer for '/dev/dri/renderD128'
libmutter-Message: 09:52:27.692: Boot VGA GPU /dev/dri/renderD128 selected as primary
libmutter-Message: 09:52:27.703: Using Wayland display name 'mutter-test-display'
Window manager warning: Failed to set environment variable WAYLAND_DISPLAY for gnome-session: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.SessionManager" does not exist
(/home/mattst88/projects/GNOME/mutter/build/src/tests/cogl/conform/cogl-test-atlas-migration:1119548): GLib-GObject-CRITICAL **: 09:52:27.803: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
------------------------------------------------------------------------------
whereas with -Dsound_player=true
the test passes:
1/195 mutter:cogl+cogl/conform / cogl-test-atlas-migration-gl OK 1.03s
13:56:39 G_TEST_BUILDDIR=/home/mattst88/projects/GNOME/mutter/build/src/tests/cogl/conform MALLOC_PERTURB_=209 G_ENABLE_DIAGNOSTIC=0 G_TEST
_SRCDIR=/home/mattst88/projects/GNOME/mutter/src/tests/cogl/conform MUTTER_TEST_PLUGIN_PATH=/home/mattst88/projects/GNOME/mutter/build/src/
compositor/plugins/libdefault.so COGL_DRIVER=gl /home/mattst88/projects/GNOME/mutter/src/tests/meta-dbus-runner.py -- /home/mattst88/projec
ts/GNOME/mutter/build/src/tests/cogl/conform/cogl-test-atlas-migration
----------------------------------- output -----------------------------------
stdout:
# random seed: R02S8acfb9ecb333cd185efcd42153d7bafe
# libmutter-MESSAGE: Running Mutter Test (using mutter 43.beta) as a Wayland display server
# libmutter-MESSAGE: Added device '/dev/dri/renderD128' (i915) using no mode setting.
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation memory (GMemorySettingsBackend) for ‘gsettings-backend’
# GLib-GIO-DEBUG: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
# libmutter-MESSAGE: Created gbm renderer for '/dev/dri/renderD128'
# libmutter-MESSAGE: Boot VGA GPU /dev/dri/renderD128 selected as primary
# GVFS-DEBUG: org.gtk.vfs.MountTracker.listMountableInfo call failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gtk.vfs.Daemon was not provided by any .service files (g-dbus-error-quark, 2)
#
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’
# libmutter-MESSAGE: Using Wayland display name 'mutter-test-display'
1..1
ok 1 /atlas-migration
stderr:
Starting D-Bus daemons (session & system)...
Starting mocked services...
Running test case...
libmutter-Message: 09:56:39.758: Running Mutter Test (using mutter 43.beta) as a Wayland display server
libmutter-Message: 09:56:39.761: Added device '/dev/dri/renderD128' (i915) using no mode setting.
libmutter-Message: 09:56:39.781: Created gbm renderer for '/dev/dri/renderD128'
libmutter-Message: 09:56:39.781: Boot VGA GPU /dev/dri/renderD128 selected as primary
libmutter-Message: 09:56:39.791: Using Wayland display name 'mutter-test-display'
Window manager warning: Failed to set environment variable WAYLAND_DISPLAY for gnome-session: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.SessionManager" does not exist
------------------------------------------------------------------------------
I'm building with
$ meson --libdir lib64 --localstatedir /var/lib --prefix /usr --sysconfdir /etc --wrap-mode nodownload -Db_pch=false -Dwerror=false --buildtype plain -Dopengl=true -Dgles2=true -Degl=true -Dglx=true -Dwayland=true -Dsystemd=true -Dnative_backend=true -Dremote_desktop=true -Dlibgnome_desktop=true -Dudev=true -Dudev_dir=/lib/udev -Dlibwacom=false -Dpango_ft2=true -Dstartup_notification=true -Dsm=true -Dintrospection=true -Ddocs=false -Dcogl_tests=true -Dcore_tests=true -Dnative_tests=false -Dclutter_tests=true -Dtests=true -Dkvm_tests=false -Dtty_tests=false -Dprofiler=false -Dinstalled_tests=false -Degl_device=false -Dwayland_eglstream=false -Dsound_player=true build
$ ninja -C build && glib-compile-schemas build/data
$ GSETTINGS_SCHEMA_DIR=$(pwd)/build/data meson test -C build
Cc: @bilelmoussaoui