mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 08:55:34 +00:00
155 lines
4 KiB
Meson
155 lines
4 KiB
Meson
test_files = [
|
|
'DbusTestHelper.cpp',
|
|
'EventSource.cpp',
|
|
'ibusimcontext.c',
|
|
'KeyHandling.cpp',
|
|
'testfixture.cpp',
|
|
'testmodule.c',
|
|
'../src/KeymanSystemServiceClient.cpp',
|
|
]
|
|
|
|
common_test_files = [ meson.global_source_root() / '../../common/include/test_color.cpp' ]
|
|
|
|
keymancore_tests_lib = c_compiler.find_library(
|
|
'keymancore-tests', # meson will prefix 'lib'
|
|
dirs: [ core_dir / 'build/arch' / get_option('buildtype') / 'tests/kmx_test_source' ]
|
|
)
|
|
|
|
test_deps = [gtk, ibus, icu, json_glib, keymancore_lib, keymancore_tests_lib, systemd]
|
|
dbus_deps = [gtk, systemd]
|
|
|
|
test_env = [
|
|
'G_TEST_SRCDIR=' + meson.current_source_dir(),
|
|
'G_TEST_BUILDDIR=' + meson.current_build_dir(),
|
|
]
|
|
|
|
test_include_dirs = [
|
|
core_include_dirs,
|
|
linux_include_dirs,
|
|
include_directories('../../../core/tests/kmx_test_source'),
|
|
include_directories('../src'),
|
|
include_directories('..'),
|
|
]
|
|
|
|
test_exe = executable(
|
|
'ibus-keyman-tests',
|
|
test_files, util_files, common_test_files,
|
|
dependencies: test_deps,
|
|
include_directories: test_include_dirs,
|
|
)
|
|
|
|
subdir('dbus-test-server')
|
|
|
|
env_file = '/tmp/env.txt'
|
|
cleanup_file = '/tmp/ibus-keyman-test-cleanup'
|
|
pid_file = '/tmp/ibus-keyman-test-pids.pids'
|
|
|
|
setup_tests = find_program('setup-tests.sh', dirs: [meson.current_source_dir() / 'scripts'])
|
|
teardown_tests = find_program('teardown-tests.sh', dirs: [meson.current_source_dir() / 'scripts'])
|
|
run_test = find_program('run-single-test.sh', dirs: [meson.current_source_dir() / 'scripts'])
|
|
find_tests = find_program('find-tests.sh', dirs: [meson.current_source_dir() / 'scripts'])
|
|
|
|
# Mutter 40.x added the --headless option wich we need in order to be able to run the Wayland tests
|
|
mutter = find_program('mutter', required: false, version: '>=40')
|
|
can_build_wayland = mutter.found()
|
|
|
|
test(
|
|
'setup-x11',
|
|
setup_tests,
|
|
args: ['--x11', env_file, cleanup_file, pid_file],
|
|
env: test_env,
|
|
priority: -10,
|
|
is_parallel: false,
|
|
protocol: 'exitcode'
|
|
)
|
|
|
|
test(
|
|
'teardown-x11',
|
|
teardown_tests,
|
|
args: [cleanup_file, '--x11'],
|
|
priority: -19,
|
|
is_parallel: false,
|
|
protocol: 'exitcode'
|
|
)
|
|
|
|
if can_build_wayland
|
|
test(
|
|
'setup-wayland',
|
|
setup_tests,
|
|
args: ['--wayland', env_file, cleanup_file, pid_file],
|
|
env: test_env,
|
|
priority: -20,
|
|
is_parallel: false,
|
|
protocol: 'exitcode'
|
|
)
|
|
|
|
test(
|
|
'teardown-wayland',
|
|
teardown_tests,
|
|
args: [cleanup_file, '--wayland'],
|
|
priority: -29,
|
|
is_parallel: false,
|
|
protocol: 'exitcode'
|
|
)
|
|
endif
|
|
|
|
kmxtest_files = run_command(
|
|
find_tests,
|
|
[ common_dir / 'test/keyboards/baseline' ],
|
|
check: true,
|
|
).stdout().split('\n')
|
|
|
|
foreach kmx: kmxtest_files
|
|
filename = kmx.split('\t')
|
|
if filename[0] == ''
|
|
continue
|
|
endif
|
|
testname = filename[1].split('.kmx')[0]
|
|
test_args = [ '--tap', '-k', '--env', env_file, '--cleanup', cleanup_file, '--check', pid_file, '--', filename]
|
|
test(
|
|
'X11-' + testname + '__surrounding-text',
|
|
run_test,
|
|
args: [ '--testname', testname, '--x11', '--surrounding-text', test_args],
|
|
env: test_env,
|
|
depends: [test_exe],
|
|
priority: -11,
|
|
is_parallel: false,
|
|
timeout: 120,
|
|
protocol: 'tap',
|
|
)
|
|
test(
|
|
'X11-' + testname + '__no-surrounding-text',
|
|
run_test,
|
|
args: [ '--testname', testname, '--x11', '--no-surrounding-text', test_args],
|
|
env: test_env,
|
|
depends: [test_exe],
|
|
priority: -12,
|
|
is_parallel: false,
|
|
timeout: 120,
|
|
protocol: 'tap',
|
|
)
|
|
if can_build_wayland
|
|
test(
|
|
'Wayland-' + testname + '__surrounding-text',
|
|
run_test,
|
|
args: [ '--testname', testname, '--wayland', '--surrounding-text', test_args],
|
|
env: test_env,
|
|
depends: [test_exe],
|
|
priority: -21,
|
|
is_parallel: false,
|
|
timeout: 120,
|
|
protocol: 'tap',
|
|
)
|
|
test(
|
|
'Wayland-' + testname + '__no-surrounding-text',
|
|
run_test,
|
|
args: [ '--testname', testname, '--wayland', '--no-surrounding-text', test_args],
|
|
env: test_env,
|
|
depends: [test_exe],
|
|
priority: -22,
|
|
is_parallel: false,
|
|
timeout: 120,
|
|
protocol: 'tap',
|
|
)
|
|
endif
|
|
endforeach
|