mutter/src/tests/meson.build

474 lines
12 KiB
Meson
Raw Normal View History

mutter_test_sources = [
'meta-backend-test.c',
'meta-backend-test.h',
'meta-context-test.c',
'meta-gpu-test.c',
'meta-gpu-test.h',
'meta-monitor-manager-test.c',
'meta-monitor-manager-test.h',
'meta-monitor-test-utils.c',
'meta-monitor-test-utils.h',
'meta-ref-test.c',
'meta-ref-test.h',
'meta-sensors-proxy-mock.c',
'meta-sensors-proxy-mock.h',
'meta-test-utils.c',
'meta-test-utils.h',
]
libmutter_test_name = 'mutter-test-' + libmutter_api_version
clutter_test_utils = files (
'clutter-test-utils.c',
'clutter-test-utils.h',
)
tests_includepath = include_directories('.')
tests_includes = mutter_includes
tests_c_args = mutter_c_args
tests_deps = [
mutter_deps,
libmutter_dep,
libmutter_cogl_dep,
libmutter_clutter_dep,
]
libmutter_test = shared_library(libmutter_test_name,
mutter_test_sources,
gnu_symbol_visibility: 'hidden',
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: tests_deps,
install_rpath: pkglibdir,
install_dir: libdir,
install: true,
)
libmutter_test_dep = declare_dependency(
link_with: libmutter_test,
include_directories: tests_includes,
dependencies: tests_deps,
)
pkg.generate(libmutter_test,
name: 'Meta (test framework)',
filebase: 'libmutter-test-' + libmutter_api_version,
description: 'Mutter test framework',
subdirs: pkgname,
requires: ['libmutter-' + libmutter_api_version],
version: meson.project_version(),
variables: [
'apiversion=' + libmutter_api_version,
],
install_dir: pcdir,
)
if have_clutter_tests
subdir('clutter')
endif
subdir('meta-test')
subdir('wayland-test-clients')
if have_installed_tests
stacking_files_datadir = join_paths(pkgdatadir, 'tests')
installed_tests_cdata = configuration_data()
installed_tests_cdata.set('libexecdir', libexecdir)
installed_tests_cdata.set('apiversion', libmutter_api_version)
configure_file(
input: 'mutter-all.test.in',
output: 'mutter-all.test',
configuration: installed_tests_cdata,
install: true,
install_dir: mutter_installed_tests_datadir,
)
install_subdir('stacking', install_dir: stacking_files_datadir)
endif
test_env = environment()
test_env.set('G_TEST_SRCDIR', join_paths(mutter_srcdir, 'src'))
test_env.set('G_TEST_BUILDDIR', mutter_builddir)
test_env.set('MUTTER_TEST_PLUGIN_PATH', '@0@'.format(default_plugin.full_path()))
test_client = executable('mutter-test-client',
sources: ['test-client.c'],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: [
gtk3_dep,
gio_unix_dep,
x11_dep,
xext_dep,
],
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
test_runner = executable('mutter-test-runner',
sources: [
'test-runner.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
meta_dbus_runner = find_program('meta-dbus-runner.py')
if have_installed_tests
install_data('meta-dbus-runner.py',
install_dir: mutter_installed_tests_libexecdir,
)
install_subdir('dbusmock-templates',
install_dir: mutter_installed_tests_libexecdir,
)
endif
unit_tests = executable('mutter-test-unit-tests',
sources: [
'unit-tests.c',
'boxes-tests.c',
'boxes-tests.h',
'monitor-config-migration-unit-tests.c',
'monitor-config-migration-unit-tests.h',
'monitor-store-unit-tests.c',
'monitor-store-unit-tests.h',
'monitor-transform-tests.c',
'monitor-transform-tests.h',
'orientation-manager-unit-tests.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
monitor_unit_tests = executable('mutter-monitor-unit-tests',
sources: [
'monitor-unit-tests.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
headless_start_test = executable('mutter-headless-start-test',
sources: [
'headless-start-test.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
stage_view_tests = executable('mutter-stage-view-tests',
sources: [
'stage-view-tests.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
anonymous_file_test = executable('anonymous-file-tests',
sources: [
'anonymous-file.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: [tests_deps],
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
if have_native_tests
native_kms_utils_tests = executable('mutter-native-kms-utils-tests',
sources: [
'kms-utils-unit-tests.c',
],
include_directories: tests_includepath,
c_args: tests_c_args,
dependencies: [tests_deps],
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
native_headless_tests = executable('mutter-native-headless-tests',
sources: [
'native-headless.c',
'native-screen-cast.c',
'native-screen-cast.h',
'native-virtual-monitor.c',
'native-virtual-monitor.h',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
pointer_constraints_tests = executable('mutter-native-pointer-constraints',
sources: [
'native-pointer-constraints.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
ref_test_sanity = executable('mutter-ref-test-sanity',
sources: [
'ref-test-sanity.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
screen_cast_client = executable('mutter-screen-cast-client',
sources: [
'screen-cast-client.c',
dbus_screen_cast_built_sources,
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: [
gio_dep,
libpipewire_dep,
],
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
native_persistent_virtual_monitor = executable(
'mutter-persistent-virtual-monitor',
sources: [
'native-persistent-virtual-monitor.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
wayland_tests = executable('mutter-wayland-tests',
sources: [
'meta-wayland-test-driver.c',
'meta-wayland-test-driver.h',
'meta-wayland-test-utils.c',
'meta-wayland-test-utils.h',
'wayland-unit-tests.c',
test_driver_server_header,
test_driver_protocol_code,
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
native_kms_render_tests = executable('mutter-native-kms-render',
sources: [
'native-kms-render.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
native_kms_device_tests = executable('mutter-native-kms-device',
sources: [
'meta-kms-test-utils.c',
'meta-kms-test-utils.h',
'native-kms-device.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
native_kms_update_tests = executable('mutter-native-kms-update-tests',
sources: [
'meta-kms-test-utils.c',
'meta-kms-test-utils.h',
'native-kms-updates.c',
],
include_directories: tests_includes,
c_args: tests_c_args,
dependencies: libmutter_test_dep,
install: have_installed_tests,
install_dir: mutter_installed_tests_libexecdir,
)
endif
stacking_tests = [
'basic-x11',
'basic-wayland',
'client-side-decorated',
'closed-transient',
'closed-transient-no-default-focus',
'closed-transient-no-input-no-take-focus-parent',
'closed-transient-no-input-no-take-focus-parents',
'closed-transient-no-input-parent',
'closed-transient-no-input-parent-delayed-focus-default-cancelled',
'closed-transient-no-input-parents',
'closed-transient-no-input-parents-queued-default-focus-destroyed',
'closed-transient-only-take-focus-parents',
'minimized',
'mixed-windows',
'set-parent',
'override-redirect',
'set-override-redirect-parent',
'set-parent-exported',
'restore-size',
'unmaximize-new-size',
'fullscreen-maximize',
'unfullscreen-strut-change',
'restore-position',
'default-size',
'modals',
'map-fixed-size',
'client-resize-respect-constraints',
]
foreach stacking_test: stacking_tests
test(stacking_test, test_runner,
suite: ['core', 'mutter/stacking'],
env: test_env,
args: [
files(join_paths('stacking', stacking_test + '.metatest')),
],
is_parallel: false,
timeout: 60,
)
endforeach
test('normal', unit_tests,
suite: ['core', 'mutter/unit'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('monitors', monitor_unit_tests,
suite: ['core', 'mutter/unit'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('headless-start', headless_start_test,
suite: ['core', 'mutter/unit'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('stage-view', stage_view_tests,
suite: ['core', 'mutter/unit'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('anonymous-file', anonymous_file_test,
suite: ['core', 'mutter/unit'],
env: test_env,
is_parallel: false,
timeout: 60,
)
if have_native_tests
test('native-kms-utils', native_kms_utils_tests,
suite: ['core', 'mutter/native/kms'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('native-headless', native_headless_tests,
suite: ['core', 'mutter/native/headless'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('native-pointer-constraints', pointer_constraints_tests,
suite: ['core', 'mutter/native/input'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('ref-test-sanity', ref_test_sanity,
suite: ['core', 'mutter/ref-test/sanity'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('native-persistent-virtual-monitor', native_persistent_virtual_monitor,
suite: ['core', 'mutter/native/persistent-virtual-monitor'],
env: test_env,
is_parallel: false,
timeout: 60,
)
test('wayland', wayland_tests,
suite: ['core', 'mutter/unit'],
env: test_env,
is_parallel: false,
timeout: 60,
)
endif
if have_kvm_tests or have_tty_tests
privileged_tests = [
[ 'kms-render', native_kms_render_tests ],
[ 'kms-device', native_kms_device_tests ],
[ 'kms-update', native_kms_update_tests ],
]
if have_kvm_tests
subdir('kvm')
endif
if have_tty_tests
foreach test: privileged_tests
test_name = test[0]
test_executable = test[1]
test('native-' + test_name, test_executable,
suite: ['core', 'mutter/native/tty'],
env: test_env,
is_parallel: false,
timeout: 60,
)
endforeach
endif
endif