2017-10-10 04:18:21 +00:00
|
|
|
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')
|
2017-04-30 21:13:47 +00:00
|
|
|
|
2020-05-15 16:57:49 +00:00
|
|
|
common_env = [
|
|
|
|
'GIO_USE_VOLUME_MONITOR=unix',
|
2023-06-09 00:26:18 +00:00
|
|
|
'GIO_USE_VFS=local',
|
2020-05-15 16:57:49 +00:00
|
|
|
'GSETTINGS_BACKEND=memory',
|
|
|
|
'GTK_CSD=1',
|
|
|
|
'G_ENABLE_DIAGNOSTIC=0',
|
|
|
|
'GSETTINGS_SCHEMA_DIR=@0@'.format(gtk_schema_build_dir),
|
2021-11-04 00:39:33 +00:00
|
|
|
'GDK_DEBUG=default-settings',
|
2020-05-15 16:57:49 +00:00
|
|
|
]
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
exclude_unstable = ['flaky', 'failing']
|
2020-05-15 16:57:49 +00:00
|
|
|
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
setups = [
|
|
|
|
{ 'backend': 'x11', 'if': x11_enabled, },
|
|
|
|
{ 'backend': 'wayland', 'if': wayland_enabled, 'is_default': true, },
|
2023-11-18 14:30:56 +00:00
|
|
|
{ 'name': 'wayland_gles2',
|
2023-03-19 14:08:01 +00:00
|
|
|
'backend': 'wayland', 'if': wayland_enabled,
|
2023-11-18 14:30:56 +00:00
|
|
|
'env': ['GDK_DEBUG=default-settings',
|
2023-04-15 15:53:54 +00:00
|
|
|
'MESA_GLES_VERSION_OVERRIDE=2.0',
|
2023-05-04 18:56:51 +00:00
|
|
|
'GSK_MAX_TEXTURE_SIZE=1024',
|
2023-04-15 15:53:54 +00:00
|
|
|
], },
|
2023-11-18 14:30:56 +00:00
|
|
|
{ 'name': 'wayland_gl',
|
|
|
|
'backend': 'wayland', 'if': wayland_enabled,
|
|
|
|
'env': ['GDK_DEBUG=gl-prefer-gl,default-settings',
|
|
|
|
], },
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
{ 'backend': 'win32', 'if': os_win32 },
|
|
|
|
{ 'backend': 'broadway', 'if': broadway_enabled, },
|
2023-03-19 14:08:01 +00:00
|
|
|
{ 'backend': 'win32', 'if': os_win32 },
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
]
|
2020-08-03 08:14:36 +00:00
|
|
|
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
foreach setup : setups
|
|
|
|
if setup.get('if')
|
|
|
|
backend = setup.get('backend')
|
|
|
|
name = setup.get('name', backend)
|
|
|
|
exclude = []
|
2020-08-03 08:14:36 +00:00
|
|
|
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
if backend != 'broadway'
|
|
|
|
exclude += 'gsk-compare-broadway'
|
|
|
|
endif
|
2021-10-08 16:38:51 +00:00
|
|
|
|
2023-11-18 14:30:56 +00:00
|
|
|
if name == 'wayland_gles2'
|
|
|
|
# exclude tests that are failing with the small texture size in this setup
|
|
|
|
exclude += 'wayland_gles2_failing'
|
2023-05-01 20:00:24 +00:00
|
|
|
endif
|
|
|
|
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
env = common_env + [
|
|
|
|
'GDK_BACKEND=@0@'.format(backend),
|
|
|
|
] + setup.get('env', [])
|
2020-08-03 08:14:36 +00:00
|
|
|
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
add_test_setup(
|
|
|
|
name,
|
|
|
|
env: env + ['TEST_OUTPUT_SUBDIR=@0@'.format(name)],
|
|
|
|
exclude_suites: exclude_unstable + exclude,
|
|
|
|
is_default: setup.get('is_default', false),
|
|
|
|
)
|
2020-08-03 08:14:36 +00:00
|
|
|
|
testsuite: Use separate setups for unstable tests instead of should_fail
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>
2022-11-23 19:13:32 +00:00
|
|
|
add_test_setup(
|
|
|
|
'@0@_unstable'.format(name),
|
|
|
|
env: env + ['TEST_OUTPUT_SUBDIR=@0@_unstable'.format(name)],
|
|
|
|
exclude_suites: exclude,
|
|
|
|
)
|
|
|
|
endif
|
|
|
|
endforeach
|
2020-05-15 13:23:25 +00:00
|
|
|
|
2017-10-12 00:33:43 +00:00
|
|
|
subdir('gdk')
|
2017-10-02 04:18:08 +00:00
|
|
|
subdir('gsk')
|
2016-08-21 16:01:14 +00:00
|
|
|
subdir('gtk')
|
|
|
|
subdir('css')
|
2020-07-22 15:31:44 +00:00
|
|
|
subdir('a11y')
|
2017-10-12 00:33:43 +00:00
|
|
|
subdir('tools')
|
2019-03-26 16:35:26 +00:00
|
|
|
subdir('reftests')
|
2021-05-05 00:39:52 +00:00
|
|
|
if build_gir
|
|
|
|
subdir('introspection')
|
2023-07-24 00:30:30 +00:00
|
|
|
|
|
|
|
if wayland_enabled
|
|
|
|
subdir('headless')
|
|
|
|
endif
|
2021-05-05 00:39:52 +00:00
|
|
|
endif
|
2023-07-24 00:30:30 +00:00
|
|
|
|