mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-19 23:07:42 +00:00
Merge actions test data struct and some of the data for the actions API unit tests. actions_update_app_context_nfu.tests.cpp data has not been merged because the expected results are different, as it does not do normalization, unlike actions_get_api and actions_normalize. Merging of that data could be done, but would require adding extra fields to each test result, which would make the data considerably harder to read! Thus I have left it alone for now, just merged the struct, which is still a win. Fixes: #15913
69 lines
2.7 KiB
Meson
69 lines
2.7 KiB
Meson
#
|
|
# Keyman is copyright (C) SIL Global. MIT License.
|
|
#
|
|
# Created by Tim Eves (TSE) on 2018-10-19
|
|
#
|
|
# Cross platform build script to compile libkeymancore API unit tests.
|
|
#
|
|
|
|
# build .kmn test fixtures for various tests
|
|
|
|
keyboard_fixtures = [
|
|
'kmx_key_list', # used by key_list_tests
|
|
'kmx_imsample', # used by kmx_imx_tests
|
|
common_test_keyboards_baseline / 'k_0702___caps_always_off' # used by kmx_external_event_tests
|
|
]
|
|
|
|
keyboard_fixture_log = []
|
|
|
|
foreach keyboard_fixture : keyboard_fixtures
|
|
kbd_name = fs.name(keyboard_fixture)
|
|
kbd_src = files(keyboard_fixture + '.kmn')
|
|
kbd_obj = join_paths(meson.current_build_dir(), kbd_name) + '.kmx'
|
|
keyboard_fixture_log += custom_target((keyboard_fixture + '.kmx').underscorify(),
|
|
output: kbd_name + '.kmx',
|
|
input: kbd_src,
|
|
command: kmc_cmd + ['build', '--debug', '--no-compiler-version', '@INPUT@', '--out-file', kbd_obj]
|
|
)
|
|
endforeach
|
|
|
|
|
|
test_api_defns = ['-DKM_CORE_LIBRARY_STATIC']
|
|
tests = [
|
|
['action-api-tests', 'action_api.tests.cpp'],
|
|
['action-set-api-tests', 'action_set_api.tests.cpp'],
|
|
['context-api-tests', 'context_api.tests.cpp'],
|
|
['keyboard-api-tests', 'keyboard_api.tests.cpp'],
|
|
['options-api-tests', 'options_api.tests.cpp'],
|
|
['state-api-tests', 'state_api.tests.cpp'],
|
|
['state-context-api-tests', 'state_context_api.tests.cpp'],
|
|
['debug-api-tests', 'debug_api.tests.cpp'],
|
|
['kmx_xstring-tests', 'kmx_xstring.tests.cpp'],
|
|
['kmx_context-tests', 'kmx_context.tests.cpp'],
|
|
['actions_normalize-tests', ['actions_normalize.tests.cpp', 'actions_test_data.cpp']],
|
|
|
|
# renamed to avoid heuristic that causes "update" in a filename to require
|
|
# elevation on Windows! this could also be avoided by adding a manifest
|
|
# resource to each executable (e.g. with mt.exe)
|
|
# https://learn.microsoft.com/en-us/windows/security/application-security/application-control/user-account-control/architecture#installer-detection-technology
|
|
['actions_updatx_app_context_nfu-tests', ['actions_update_app_context_nfu.tests.cpp', 'actions_test_data.cpp']],
|
|
|
|
['actions_get_api-tests', ['actions_get_api.tests.cpp', 'actions_test_data.cpp']],
|
|
['km_core_keyboard_api-tests', 'km_core_keyboard_api.tests.cpp'],
|
|
['km_core_process_event-tests', 'km_core_process_event.tests.cpp'],
|
|
['key_list-tests', 'kmx_key_list.tests.cpp'],
|
|
['kmx_imx-tests', 'kmx_imx.tests.cpp'],
|
|
['kmx_external_event-tests', 'kmx_external_event.tests.cpp'],
|
|
]
|
|
|
|
foreach t : tests
|
|
bin = executable(t[0], [t[1], common_test_files],
|
|
cpp_args: defns + test_api_defns + test_warns,
|
|
include_directories: test_includes,
|
|
link_args: links + test_link_args,
|
|
dependencies: test_dependencies,
|
|
objects: lib.extract_all_objects(recursive: false))
|
|
|
|
test(t[0], bin, depends: keyboard_fixture_log, suite: 'api', protocol: 'gtest')
|
|
endforeach
|
|
|