gnome-shell/tests/meson.build
Florian Müllner 1fcdc60ca0 tests: Drop wrapper script for unit test runner
We build a small run-js-test executable so tests run in a
similar environment as gnome-shell, and then wrap it with
a generated script that provides environment variables like
GI_TYPELIB_PATH.

This is more complicated than it needs to be, we can just as
well set up the typelib search path from the runner and pass
in the environment via meson.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
2024-05-21 13:42:28 +00:00

87 lines
2.4 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 = [
'highlighter',
'injectionManager',
'insertSorted',
'jsParse',
'markup',
'params',
'signalTracker',
'url',
'versionCompare',
]
foreach test : unit_tests
test(test, run_test,
args: 'unit/@0@.js'.format(test),
suite: 'unit',
env: unit_testenv,
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