tests: Add test running basic perf test

This test runs all of GNOME Shell using the headless backend inside a
mocked D-Bus environment. The basic test tests, well, basic things, like
the panel menu, the overview, showing the app grid view, as well as
going back to the session view.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1349>
This commit is contained in:
Jonas Ådahl 2022-08-17 16:43:13 +02:00
parent 4c10608451
commit bcc4d15fdf
5 changed files with 42 additions and 10 deletions

View File

@ -209,6 +209,7 @@ test:
NO_AT_BRIDGE: "1"
before_script:
- meson install -C mutter/build
- mkdir -m 700 $XDG_RUNTIME_DIR
script:
- dbus-run-session -- xvfb-run meson test -C build --no-rebuild
artifacts:

View File

@ -1,3 +1,5 @@
data_builddir = meson.current_build_dir()
desktop_files = [
'org.gnome.Shell.desktop',
'org.gnome.Shell.Extensions.desktop',
@ -134,5 +136,5 @@ endif
custom_target('compile-schemas',
input: schema,
output: 'gschemas.compiled',
command: [find_program('glib-compile-schemas'), meson.current_build_dir()],
command: [find_program('glib-compile-schemas'), data_builddir],
build_by_default: true)

View File

@ -77,7 +77,7 @@ function _getPerfHelper() {
}
function _spawnPerfHelper() {
let path = Config.LIBEXECDIR;
let path = GLib.getenv('GNOME_SHELL_BUILDDIR') || Config.LIBEXECDIR;
let command = `${path}/gnome-shell-perf-helper`;
Util.trySpawnCommandLine(command);
}

View File

@ -1,3 +1,5 @@
src_builddir = meson.current_build_dir()
service_data = configuration_data()
service_data.set('libexecdir', libexecdir)
@ -16,20 +18,21 @@ script_data.set('pkglibdir', pkglibdir)
script_data.set('PYTHON', python.full_path())
script_data.set('VERSION', meson.project_version())
script_tools = ['gnome-shell-perf-tool']
if get_option('extensions_tool')
script_tools += 'gnome-shell-extension-tool'
endif
foreach tool : script_tools
configure_file(
input: tool + '.in',
output: tool,
perf_tool = configure_file(
input: 'gnome-shell-perf-tool.in',
output: 'gnome-shell-perf-tool',
configuration: script_data,
install_dir: bindir
)
endforeach
if get_option('extensions_tool')
configure_file(
input: 'gnome-shell-extension-tool.in',
output: 'gnome-shell-extension-tool',
configuration: script_data,
install_dir: bindir
)
endif
install_data('gnome-shell-extension-prefs',
install_dir: bindir

View File

@ -38,3 +38,29 @@ foreach test : tests
env: testenv,
workdir: meson.current_source_dir())
endforeach
perf_tests = [
'basic',
]
gvc_typelib_path = fs.parent(libgvc.get_variable('libgvc_gir')[1].full_path())
libgvc_path = fs.parent(libgvc.get_variable('libgvc').full_path())
perf_testenv = testenv
perf_testenv.set('G_DEBUG', 'fatal-criticals')
perf_testenv.set('G_MESSAGES_DEBUG', 'GNOME Shell')
perf_testenv.set('GNOME_SHELL_DATADIR', data_builddir)
perf_testenv.set('GNOME_SHELL_BUILDDIR', src_builddir)
perf_testenv.append('GI_TYPELIB_PATH', gvc_typelib_path, separator: ':')
perf_testenv.append('LD_LIBRARY_PATH', libgvc_path, separator: ':')
foreach perf_test : perf_tests
test('perf-' + perf_test, dbus_runner,
args: [
perf_tool,
'--headless',
'--perf=@0@'.format(perf_test),
],
env: perf_testenv,
)
endforeach