forked from AuroraMiddleware/gtk
957dd49ef7
There are two possible interpretations of "expected failure": either the test *must* fail (exactly the inverse of an ordinary test, with success becoming failure and failure becoming success), or the test *may* fail (with success intended, but failure possible in some environments). Autotools had the second interpretation, which seems more useful in practice, but Meson has the first. Instead of using should_fail, we can put the tests in one of two new suites: "flaky" is intended for tests that succeed or fail unpredictably according to the test environment or chance, while "failing" is for tests that ought to succeed but currently never do as a result of a bug or missing functionality. With a sufficiently new version of Meson, the flaky and failing tests are not run by default, but can be requested by running a setup that does not exclude them, with a command like: meson test --setup=x11_unstable --suite=flaky --suite=failing As a bonus, now that we're setting up setups and their excluded suites programmatically, the gsk-compare-broadway tests are also excluded by default when running the test setup for a non-broadway backend. When running the tests in CI, --suite=gtk overrides the default exclude_suites, so we have to specify --no-suite=flaky and --no-suite=failing explicitly. This arrangement is inspired by GNOME/glib!2987, which was contributed by Marco Trevisan. Signed-off-by: Simon McVittie <smcv@debian.org>
65 lines
1.7 KiB
Meson
65 lines
1.7 KiB
Meson
gtk_libexecdir = join_paths(gtk_prefix, get_option('libexecdir'))
|
|
installed_test_bindir = join_paths(gtk_libexecdir, 'installed-tests', 'gtk-4.0')
|
|
installed_test_datadir = join_paths(gtk_datadir, 'installed-tests', 'gtk-4.0')
|
|
|
|
common_env = [
|
|
'GIO_USE_VOLUME_MONITOR=unix',
|
|
'GSETTINGS_BACKEND=memory',
|
|
'GTK_CSD=1',
|
|
'G_ENABLE_DIAGNOSTIC=0',
|
|
'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
|
|
'GDK_DEBUG=default-settings',
|
|
]
|
|
exclude_unstable = ['flaky', 'failing']
|
|
|
|
setups = [
|
|
{ 'backend': 'x11', 'if': x11_enabled, },
|
|
{ 'backend': 'wayland', 'if': wayland_enabled, 'is_default': true, },
|
|
{ 'name': 'waylandgles', 'backend': 'wayland', 'if': wayland_enabled,
|
|
'env': ['GDK_DEBUG=gl-gles,default-settings'], },
|
|
{ 'backend': 'win32', 'if': os_win32 },
|
|
{ 'backend': 'broadway', 'if': broadway_enabled, },
|
|
]
|
|
|
|
foreach setup : setups
|
|
if setup.get('if')
|
|
backend = setup.get('backend')
|
|
name = setup.get('name', backend)
|
|
exclude = []
|
|
|
|
if backend != 'broadway'
|
|
exclude += 'gsk-compare-broadway'
|
|
endif
|
|
|
|
env = common_env + [
|
|
'GDK_BACKEND=@0@'.format(backend),
|
|
] + setup.get('env', [])
|
|
|
|
add_test_setup(
|
|
name,
|
|
env: env + ['TEST_OUTPUT_SUBDIR=@0@'.format(name)],
|
|
exclude_suites: exclude_unstable + exclude,
|
|
is_default: setup.get('is_default', false),
|
|
)
|
|
|
|
add_test_setup(
|
|
'@0@_unstable'.format(name),
|
|
env: env + ['TEST_OUTPUT_SUBDIR=@0@_unstable'.format(name)],
|
|
exclude_suites: exclude,
|
|
)
|
|
endif
|
|
endforeach
|
|
|
|
subdir('performance')
|
|
subdir('gdk')
|
|
subdir('gsk')
|
|
subdir('gtk')
|
|
subdir('css')
|
|
subdir('a11y')
|
|
subdir('tools')
|
|
subdir('reftests')
|
|
|
|
if build_gir
|
|
subdir('introspection')
|
|
endif
|