
Make the mechanism more general, so that other tests can now specify overrides for various defaults, if needed. This replicates what GLib does: https://gitlab.gnome.org/GNOME/glib/-/blob/main/glib/tests/meson.build#L475. It introduces no functional changes in how the current set of tests run. Signed-off-by: Philip Withnall <pwithnall@gnome.org> Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3605>
107 lines
2.9 KiB
Meson
107 lines
2.9 KiB
Meson
mutter_tests_datadir = mutter_test_dep.get_variable('tests_datadir')
|
|
dbusrunnerconf = configuration_data()
|
|
dbusrunnerconf.set('MUTTER_TEST_PKGDATADIR', mutter_tests_datadir)
|
|
dbusrunnerconf.set('SRCDIR', meson.current_source_dir())
|
|
|
|
dbus_runner = configure_file(
|
|
input: 'gnome-shell-dbus-runner.py.in',
|
|
output: 'gnome-shell-dbus-runner.py',
|
|
configuration: dbusrunnerconf,
|
|
)
|
|
|
|
gvc_typelib_path = fs.parent(libgvc.get_variable('libgvc_gir')[1].full_path())
|
|
shell_typelib_path = fs.parent(libshell_gir[1].full_path())
|
|
st_typelib_path = fs.parent(libst_gir[1].full_path())
|
|
|
|
unit_testenv = environment()
|
|
unit_testenv.set('GNOME_SHELL_DATADIR', data_builddir)
|
|
unit_testenv.append('GI_TYPELIB_PATH', gvc_typelib_path, separator: ':')
|
|
unit_testenv.append('GI_TYPELIB_PATH', shell_typelib_path, separator: ':')
|
|
unit_testenv.append('GI_TYPELIB_PATH', st_typelib_path, separator: ':')
|
|
|
|
unit_tests = {
|
|
'breakManager': {},
|
|
'extensionUtils': {},
|
|
'highlighter': {},
|
|
'injectionManager': {},
|
|
'insertSorted': {},
|
|
'jsParse': {},
|
|
'markup': {},
|
|
'params': {},
|
|
'signalTracker': {},
|
|
'timeLimitsManager': {
|
|
# The time limits tests hard-code UTC to keep the code brief, so must be
|
|
# run in UTC
|
|
'env': { 'TZ': 'UTC' },
|
|
},
|
|
'url': {},
|
|
'versionCompare': {},
|
|
}
|
|
|
|
foreach test, extra_args : unit_tests
|
|
local_test_env = unit_testenv
|
|
foreach var, value : extra_args.get('env', {})
|
|
local_test_env.append(var, value)
|
|
endforeach
|
|
|
|
test(test, jasmine,
|
|
args: [
|
|
'--module',
|
|
'--tap',
|
|
'--no-config',
|
|
'--interpreter', run_test,
|
|
'unit/@0@.js'.format(test),
|
|
],
|
|
suite: 'unit',
|
|
env: local_test_env,
|
|
protocol: 'tap',
|
|
workdir: meson.current_source_dir())
|
|
endforeach
|
|
|
|
shell_tests = [
|
|
{
|
|
'name': 'basic',
|
|
},
|
|
{
|
|
'name': 'closeWithActiveWindows',
|
|
},
|
|
{
|
|
'name': 'headlessStart',
|
|
'options': ['--hotplug'],
|
|
},
|
|
{
|
|
'name': 'fittsy',
|
|
},
|
|
]
|
|
|
|
libgvc_path = fs.parent(libgvc.get_variable('libgvc').full_path())
|
|
|
|
background_file = join_paths(meson.current_source_dir(), 'data', 'background.png')
|
|
|
|
shell_testenv = environment()
|
|
shell_testenv.set('G_DEBUG', 'fatal-warnings')
|
|
shell_testenv.set('G_MESSAGES_DEBUG', 'GNOME Shell')
|
|
shell_testenv.set('GNOME_SHELL_DATADIR', data_builddir)
|
|
shell_testenv.set('GNOME_SHELL_BUILDDIR', src_builddir)
|
|
shell_testenv.set('GNOME_SHELL_SESSION_MODE', 'user')
|
|
shell_testenv.set('SHELL_BACKGROUND_IMAGE', '@0@'.format(background_file))
|
|
shell_testenv.append('GI_TYPELIB_PATH', gvc_typelib_path, separator: ':')
|
|
shell_testenv.append('LD_LIBRARY_PATH', libgvc_path, separator: ':')
|
|
|
|
foreach shell_test : shell_tests
|
|
test_name = shell_test['name']
|
|
options = shell_test.get('options', [])
|
|
|
|
test(test_name, dbus_runner,
|
|
suite: 'shell',
|
|
args: [
|
|
test_tool,
|
|
'--headless',
|
|
options,
|
|
'@0@/shell/@1@.js'.format(meson.current_source_dir(), test_name),
|
|
],
|
|
is_parallel: false,
|
|
env: shell_testenv,
|
|
)
|
|
endforeach
|