From: Francis Dupont Date: Thu, 6 Feb 2025 12:30:30 +0000 (+0100) Subject: [#3729] Checkpoint: hook tests X-Git-Tag: Kea-2.7.7~255 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=ac77336a11492afe0be3575d02e079f39d20c0b3;p=thirdparty%2Fkea.git [#3729] Checkpoint: hook tests --- diff --git a/src/hooks/dhcp/bootp/meson.build b/src/hooks/dhcp/bootp/meson.build index dc0ad00171..09b70a364c 100644 --- a/src/hooks/dhcp/bootp/meson.build +++ b/src/hooks/dhcp/bootp/meson.build @@ -16,5 +16,5 @@ dhcp_bootp_archive = static_library( objects: dhcp_bootp_lib.extract_all_objects(recursive: false), link_with: LIBS_BUILT_SO_FAR, ) -subdir('tests') subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/flex_option/libloadtests/meson.build b/src/hooks/dhcp/flex_option/libloadtests/meson.build new file mode 100644 index 0000000000..7bc401ffe1 --- /dev/null +++ b/src/hooks/dhcp/flex_option/libloadtests/meson.build @@ -0,0 +1,22 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_flex_option_libload_tests = executable( + 'dhcp-flex-option-libload-tests', + 'callout_unittests.cc', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DFLEX_OPTION_LIB_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/flex_option/libdhcp_flex_option.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test( + 'dhcp_flex_option_libload_tests', + dhcp_flex_option_libload_tests, + protocol: 'gtest', +) diff --git a/src/hooks/dhcp/flex_option/meson.build b/src/hooks/dhcp/flex_option/meson.build index 6c0903aea9..73513bbdb5 100644 --- a/src/hooks/dhcp/flex_option/meson.build +++ b/src/hooks/dhcp/flex_option/meson.build @@ -1,4 +1,4 @@ -dhcp_flex_option_lib = library( +dhcp_flex_option_lib = shared_library( 'dhcp_flex_option', 'flex_option.cc', 'flex_option_callouts.cc', @@ -12,3 +12,10 @@ dhcp_flex_option_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_flex_option_archive = static_library( + 'dhcp_flex_option', + objects: dhcp_flex_option_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/flex_option/tests/meson.build b/src/hooks/dhcp/flex_option/tests/meson.build new file mode 100644 index 0000000000..a3d297eed2 --- /dev/null +++ b/src/hooks/dhcp/flex_option/tests/meson.build @@ -0,0 +1,18 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_flex_option_lib_tests = executable( + 'dhcp-flex-option-lib-tests', + 'flex_option_unittests.cc', + 'run_unittests.cc', + 'sub_option_unittests.cc', + cpp_args: [ + f'-DFLEX_OPTION_LIB_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/flex_option/libdhcp_flex_option.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_flex_option_archive] + LIBS_BUILT_SO_FAR, +) +test('dhcp_flex_option_lib_tests', dhcp_flex_option_lib_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/high_availability/libloadtests/meson.build b/src/hooks/dhcp/high_availability/libloadtests/meson.build new file mode 100644 index 0000000000..5407f08d07 --- /dev/null +++ b/src/hooks/dhcp/high_availability/libloadtests/meson.build @@ -0,0 +1,18 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_ha_libload_tests = executable( + 'dhcp-ha-libload-tests', + 'close_unittests.cc', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBDHCP_HA_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/high_availability/libdhcp_ha.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test('dhcp_ha_libload_tests', dhcp_ha_libload_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/high_availability/meson.build b/src/hooks/dhcp/high_availability/meson.build index 6f64bfa279..d95fbe895d 100644 --- a/src/hooks/dhcp/high_availability/meson.build +++ b/src/hooks/dhcp/high_availability/meson.build @@ -1,5 +1,5 @@ -dhcp_high_availability_lib = library( - 'dhcp_high_availability', +dhcp_ha_lib = shared_library( + 'dhcp_ha', 'command_creator.cc', 'communication_state.cc', 'ha_callouts.cc', @@ -21,3 +21,10 @@ dhcp_high_availability_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_ha_archive = static_library( + 'dhcp_ha', + objects: dhcp_ha_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/high_availability/tests/meson.build b/src/hooks/dhcp/high_availability/tests/meson.build new file mode 100644 index 0000000000..03e598b56a --- /dev/null +++ b/src/hooks/dhcp/high_availability/tests/meson.build @@ -0,0 +1,34 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_ha_lib_tests = executable( + 'dhcp-ha-lib-tests', + 'command_creator_unittest.cc', + 'communication_state_unittest.cc', + 'ha_config_unittest.cc', + 'ha_impl_unittest.cc', + 'ha_mt_unittest.cc', + 'ha_relationship_mapper_unittest.cc', + 'ha_service_unittest.cc', + 'ha_test.cc', + 'lease_sync_filter_unittest.cc', + 'lease_update_backlog_unittest.cc', + 'query_filter_unittest.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBDHCP_HA_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/high_availability/libdhcp_ha.so"', + f'-DTEST_CA_DIR="@TEST_CA_DIR@"', + f'-DTEST_HTTP_DIR="@TOP_SOURCE_DIR@/src/lib/http/tests/testdata"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_ha_archive] + [kea_testutils_lib] + LIBS_BUILT_SO_FAR, +) +test( + 'dhcp_ha_lib_tests', + dhcp_ha_lib_tests, + protocol: 'gtest', + is_parallel: false, +) diff --git a/src/hooks/dhcp/lease_cmds/libloadtests/meson.build b/src/hooks/dhcp/lease_cmds/libloadtests/meson.build new file mode 100644 index 0000000000..8b85851091 --- /dev/null +++ b/src/hooks/dhcp/lease_cmds/libloadtests/meson.build @@ -0,0 +1,21 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_lease_cmds_libload_tests = executable( + 'dhcp-lease-cmds-libload-tests', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBDHCP_LEASE_CMDS_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/lease_cmds/libdhcp_lease_cmds.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test( + 'dhcp_lease_cmds_libload_tests', + dhcp_lease_cmds_libload_tests, + protocol: 'gtest', +) diff --git a/src/hooks/dhcp/lease_cmds/meson.build b/src/hooks/dhcp/lease_cmds/meson.build index 4c72e45b5d..2a8a2f4250 100644 --- a/src/hooks/dhcp/lease_cmds/meson.build +++ b/src/hooks/dhcp/lease_cmds/meson.build @@ -1,4 +1,4 @@ -dhcp_lease_cmds_lib = library( +dhcp_lease_cmds_lib = shared_library( 'dhcp_lease_cmds', 'lease_cmds.cc', 'lease_cmds_callouts.cc', @@ -13,3 +13,10 @@ dhcp_lease_cmds_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_lease_cmds_archive = static_library( + 'dhcp_lease_cmds', + objects: dhcp_lease_cmds_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/lease_cmds/tests/meson.build b/src/hooks/dhcp/lease_cmds/tests/meson.build new file mode 100644 index 0000000000..8e82d68b34 --- /dev/null +++ b/src/hooks/dhcp/lease_cmds/tests/meson.build @@ -0,0 +1,19 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_lease_cmds_lib_tests = executable( + 'dhcp-lease-cmds-lib-tests', + 'lease_cmds4_unittest.cc', + 'lease_cmds6_unittest.cc', + 'lease_cmds_unittest.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLEASE_CMDS_LIB_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/lease_cmds/libdhcp_lease_cmds.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_lease_cmds_archive] + LIBS_BUILT_SO_FAR, +) +test('dhcp_lease_cmds_lib_tests', dhcp_lease_cmds_lib_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/mysql/libloadtests/meson.build b/src/hooks/dhcp/mysql/libloadtests/meson.build new file mode 100644 index 0000000000..ce7ae11a5a --- /dev/null +++ b/src/hooks/dhcp/mysql/libloadtests/meson.build @@ -0,0 +1,17 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_mysql_libload_tests = executable( + 'dhcp-mysql-libload-tests', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBDHCP_MYSQL_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/mysql/libdhcp_mysql.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test('dhcp_mysql_libload_tests', dhcp_mysql_libload_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/mysql/meson.build b/src/hooks/dhcp/mysql/meson.build index 96550fe9c1..fb994a2cdb 100644 --- a/src/hooks/dhcp/mysql/meson.build +++ b/src/hooks/dhcp/mysql/meson.build @@ -2,7 +2,7 @@ if not mysql.found() subdir_done() endif -dhcp_mysql_lib = library( +dhcp_mysql_lib = shared_library( 'dhcp_mysql', 'mysql_callouts.cc', 'mysql_cb_dhcp4.cc', @@ -24,3 +24,10 @@ dhcp_mysql_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_mysql_archive = static_library( + 'dhcp_mysql', + objects: dhcp_mysql_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/mysql/tests/meson.build b/src/hooks/dhcp/mysql/tests/meson.build new file mode 100644 index 0000000000..29e01ed87d --- /dev/null +++ b/src/hooks/dhcp/mysql/tests/meson.build @@ -0,0 +1,28 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +libs_testutils = [kea_dhcpsrv_testutils_lib, kea_mysql_testutils_lib] +dhcp_mysql_lib_tests = executable( + 'dhcp-mysql-lib-tests', + 'mysql_bootp_unittest.cc', + 'mysql_cb_dhcp4_mgr_unittest.cc', + 'mysql_cb_dhcp4_unittest.cc', + 'mysql_cb_dhcp6_mgr_unittest.cc', + 'mysql_cb_dhcp6_unittest.cc', + 'mysql_cb_impl_unittest.cc', + 'mysql_host_data_source_unittest.cc', + 'mysql_lease_extended_info_unittest.cc', + 'mysql_lease_mgr_unittest.cc', + 'run_unittests.cc', + dependencies: [gtest, crypto, mysql], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_mysql_archive] + libs_testutils + LIBS_BUILT_SO_FAR, +) +test( + 'dhcp_mysql_lib_tests', + dhcp_mysql_lib_tests, + protocol: 'gtest', + is_parallel: false, +) diff --git a/src/hooks/dhcp/perfmon/libloadtests/meson.build b/src/hooks/dhcp/perfmon/libloadtests/meson.build new file mode 100644 index 0000000000..70c60332e1 --- /dev/null +++ b/src/hooks/dhcp/perfmon/libloadtests/meson.build @@ -0,0 +1,17 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_perfmon_libload_tests = executable( + 'dhcp-perfmon-libload-tests', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBDHCP_PERFMON_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/perfmon/libdhcp_perfmon.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test('dhcp_perfmon_libload_tests', dhcp_perfmon_libload_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/perfmon/meson.build b/src/hooks/dhcp/perfmon/meson.build index 2a88bb15a3..255a208db6 100644 --- a/src/hooks/dhcp/perfmon/meson.build +++ b/src/hooks/dhcp/perfmon/meson.build @@ -1,4 +1,4 @@ -dhcp_perfmon_lib = library( +dhcp_perfmon_lib = shared_library( 'dhcp_perfmon', 'alarm.cc', 'alarm_store.cc', @@ -17,3 +17,10 @@ dhcp_perfmon_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_perfmon_archive = static_library( + 'dhcp_perfmon', + objects: dhcp_perfmon_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/perfmon/tests/meson.build b/src/hooks/dhcp/perfmon/tests/meson.build new file mode 100644 index 0000000000..4b89583dd1 --- /dev/null +++ b/src/hooks/dhcp/perfmon/tests/meson.build @@ -0,0 +1,23 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_perfmon_lib_tests = executable( + 'dhcp-perfmon-lib-tests', + 'alarm_parser_unittests.cc', + 'alarm_unittests.cc', + 'duration_key_parser_unittests.cc', + 'monitored_duration_unittests.cc', + 'perfmon_cmds_unittests.cc', + 'perfmon_config_unittests.cc', + 'perfmon_mgr_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DPERFMON_LIB_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/perfmon/libdhcp_perfmon.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_perfmon_archive] + [kea_testutils_lib] + LIBS_BUILT_SO_FAR, +) +test('dhcp_perfmon_lib_tests', dhcp_perfmon_lib_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/pgsql/libloadtests/meson.build b/src/hooks/dhcp/pgsql/libloadtests/meson.build new file mode 100644 index 0000000000..060bbe3eae --- /dev/null +++ b/src/hooks/dhcp/pgsql/libloadtests/meson.build @@ -0,0 +1,17 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_pgsql_libload_tests = executable( + 'dhcp-pgsql-libload-tests', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBDHCP_PGSQL_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/pgsql/libdhcp_pgsql.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test('dhcp_pgsql_libload_tests', dhcp_pgsql_libload_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/pgsql/meson.build b/src/hooks/dhcp/pgsql/meson.build index 4a37c10aa6..2d040a9ab7 100644 --- a/src/hooks/dhcp/pgsql/meson.build +++ b/src/hooks/dhcp/pgsql/meson.build @@ -2,7 +2,7 @@ if not postgresql.found() subdir_done() endif -dhcp_pgsql_lib = library( +dhcp_pgsql_lib = shared_library( 'dhcp_pgsql', 'pgsql_callouts.cc', 'pgsql_cb_dhcp4.cc', @@ -24,3 +24,10 @@ dhcp_pgsql_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_pgsql_archive = static_library( + 'dhcp_pgsql', + objects: dhcp_pgsql_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/pgsql/tests/meson.build b/src/hooks/dhcp/pgsql/tests/meson.build new file mode 100644 index 0000000000..835823b6a8 --- /dev/null +++ b/src/hooks/dhcp/pgsql/tests/meson.build @@ -0,0 +1,28 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +libs_testutils = [kea_dhcpsrv_testutils_lib, kea_pgsql_testutils_lib] +dhcp_pgsql_lib_tests = executable( + 'dhcp-pgsql-lib-tests', + 'pgsql_bootp_unittest.cc', + 'pgsql_cb_dhcp4_mgr_unittest.cc', + 'pgsql_cb_dhcp4_unittest.cc', + 'pgsql_cb_dhcp6_mgr_unittest.cc', + 'pgsql_cb_dhcp6_unittest.cc', + 'pgsql_cb_impl_unittest.cc', + 'pgsql_host_data_source_unittest.cc', + 'pgsql_lease_extended_info_unittest.cc', + 'pgsql_lease_mgr_unittest.cc', + 'run_unittests.cc', + dependencies: [gtest, crypto, postgresql], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_pgsql_archive] + libs_testutils + LIBS_BUILT_SO_FAR, +) +test( + 'dhcp_pgsql_lib_tests', + dhcp_pgsql_lib_tests, + protocol: 'gtest', + is_parallel: false, +) diff --git a/src/hooks/dhcp/run_script/libloadtests/meson.build b/src/hooks/dhcp/run_script/libloadtests/meson.build new file mode 100644 index 0000000000..e4061e72a1 --- /dev/null +++ b/src/hooks/dhcp/run_script/libloadtests/meson.build @@ -0,0 +1,22 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_run_script_libload_tests = executable( + 'dhcp-run-script-libload-tests', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBRUN_SCRIPT_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/run_script/libdhcp_run_script.so"', + f'-DRUN_SCRIPT_TEST_SH="@TOP_BUILD_DIR@/src/hooks/dhcp/run_script/tests/run_script_test.sh"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test( + 'dhcp_run_script_libload_tests', + dhcp_run_script_libload_tests, + protocol: 'gtest', +) diff --git a/src/hooks/dhcp/run_script/meson.build b/src/hooks/dhcp/run_script/meson.build index 9d23d27d09..defb19cc6f 100644 --- a/src/hooks/dhcp/run_script/meson.build +++ b/src/hooks/dhcp/run_script/meson.build @@ -1,4 +1,4 @@ -dhcp_run_script_lib = library( +dhcp_run_script_lib = shared_library( 'dhcp_run_script', 'run_script.cc', 'run_script_callouts.cc', @@ -12,3 +12,11 @@ dhcp_run_script_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_run_script_archive = static_library( + 'dhcp_run_script', + objects: dhcp_run_script_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +# Do tests first +subdir('tests') +subdir('libloadtests') diff --git a/src/hooks/dhcp/run_script/tests/meson.build b/src/hooks/dhcp/run_script/tests/meson.build new file mode 100644 index 0000000000..cc9daf67ff --- /dev/null +++ b/src/hooks/dhcp/run_script/tests/meson.build @@ -0,0 +1,28 @@ +if not gtest.found() + subdir_done() +endif + +run_script_test_conf_data = configuration_data() +run_script_test_conf_data.set('abs_top_builddir', TOP_BUILD_DIR) +configure_file( + input: 'run_script_test.sh.in', + output: 'run_script_test.sh', + configuration: run_script_test_conf_data, +) + +CURRENT_BUILD_DIR = meson.current_build_dir() +HOOK_INCLUDES = [include_directories('..')] +dhcp_run_script_lib_tests = executable( + 'dhcp-run-script-lib-tests', + 'run_script_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DRUN_SCRIPT_LIB_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/run_script/libdhcp_run_script.so"', + f'-DTEST_LOG_FILE="@CURRENT_BUILD_DIR@/test.log"', + f'-DRUN_SCRIPT_TEST_SH="@CURRENT_BUILD_DIR@/run_script_test.sh"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_run_script_archive] + LIBS_BUILT_SO_FAR, +) +test('dhcp_run_script_lib_tests', dhcp_run_script_lib_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/run_script/tests/run_script_test.sh.in b/src/hooks/dhcp/run_script/tests/run_script_test.sh.in old mode 100644 new mode 100755 diff --git a/src/hooks/dhcp/stat_cmds/libloadtests/meson.build b/src/hooks/dhcp/stat_cmds/libloadtests/meson.build new file mode 100644 index 0000000000..9f3b282217 --- /dev/null +++ b/src/hooks/dhcp/stat_cmds/libloadtests/meson.build @@ -0,0 +1,21 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_stat_cmds_libload_tests = executable( + 'dhcp-stat-cmds-libload-tests', + 'load_unload_unittests.cc', + 'run_unittests.cc', + cpp_args: [ + f'-DLIBDHCP_STAT_CMDS_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/stat_cmds/libdhcp_stat_cmds.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: LIBS_BUILT_SO_FAR, +) +test( + 'dhcp_stat_cmds_libload_tests', + dhcp_stat_cmds_libload_tests, + protocol: 'gtest', +) diff --git a/src/hooks/dhcp/stat_cmds/meson.build b/src/hooks/dhcp/stat_cmds/meson.build index fcada06574..1b61f5fc6b 100644 --- a/src/hooks/dhcp/stat_cmds/meson.build +++ b/src/hooks/dhcp/stat_cmds/meson.build @@ -1,4 +1,4 @@ -dhcp_stat_cmds_lib = library( +dhcp_stat_cmds_lib = shared_library( 'dhcp_stat_cmds', 'stat_cmds.cc', 'stat_cmds_callouts.cc', @@ -12,3 +12,10 @@ dhcp_stat_cmds_lib = library( link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_stat_cmds_archive = static_library( + 'dhcp_stat_cmds', + objects: dhcp_stat_cmds_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('libloadtests') +subdir('tests') diff --git a/src/hooks/dhcp/stat_cmds/tests/meson.build b/src/hooks/dhcp/stat_cmds/tests/meson.build new file mode 100644 index 0000000000..546471d7f8 --- /dev/null +++ b/src/hooks/dhcp/stat_cmds/tests/meson.build @@ -0,0 +1,17 @@ +if not gtest.found() + subdir_done() +endif + +HOOK_INCLUDES = [include_directories('..')] +dhcp_stat_cmds_lib_tests = executable( + 'dhcp-stat-cmds-lib-tests', + 'run_unittests.cc', + 'stat_cmds_unittest.cc', + cpp_args: [ + f'-DSTAT_CMDS_LIB_SO="@TOP_BUILD_DIR@/src/hooks/dhcp/stat_cmds/libdhcp_stat_cmds.so"', + ], + dependencies: [gtest, crypto], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_stat_cmds_archive] + LIBS_BUILT_SO_FAR, +) +test('dhcp_stat_cmds_lib_tests', dhcp_stat_cmds_lib_tests, protocol: 'gtest') diff --git a/src/hooks/dhcp/user_chk/meson.build b/src/hooks/dhcp/user_chk/meson.build index 60160b8f8e..a30f722ed3 100644 --- a/src/hooks/dhcp/user_chk/meson.build +++ b/src/hooks/dhcp/user_chk/meson.build @@ -1,4 +1,5 @@ -dhcp_user_chk_lib = library( +# Not install it +dhcp_user_chk_lib = shared_library( 'dhcp_user_chk', 'load_unload.cc', 'pkt_receive_co.cc', @@ -12,8 +13,14 @@ dhcp_user_chk_lib = library( 'version.cc', dependencies: [boost], include_directories: [include_directories('.')] + INCLUDES, - install: true, + install: false, install_dir: 'lib/kea/hooks', link_with: LIBS_BUILT_SO_FAR, name_suffix: 'so', ) +dhcp_user_chk_archive = static_library( + 'dhcp_user_chk', + objects: dhcp_user_chk_lib.extract_all_objects(recursive: false), + link_with: LIBS_BUILT_SO_FAR, +) +subdir('tests') diff --git a/src/hooks/dhcp/user_chk/tests/meson.build b/src/hooks/dhcp/user_chk/tests/meson.build new file mode 100644 index 0000000000..00fbf1d9be --- /dev/null +++ b/src/hooks/dhcp/user_chk/tests/meson.build @@ -0,0 +1,27 @@ +if not gtest.found() + subdir_done() +endif + +dhcp_user_chk_config_data = configuration_data() +dhcp_user_chk_config_data.set('abs_top_srcdir', TOP_SOURCE_DIR) +configure_file( + input: 'test_data_files_config.h.in', + output: 'test_data_files_config.h', + configuration: dhcp_user_chk_config_data, +) + +HOOK_INCLUDES = [include_directories('..')] +CURRENT_BUILD_DIR = meson.current_build_dir() +dhcp_user_chk_lib_tests = executable( + 'dhcp-user-chk-lib-tests', + 'run_unittests.cc', + 'user_file_unittests.cc', + 'user_registry_unittests.cc', + 'user_unittests.cc', + 'userid_unittests.cc', + cpp_args: [f'-DTEST_DATA_BUILDDIR="@CURRENT_SOURCE_DIR@"'], + dependencies: [gtest], + include_directories: [include_directories('.')] + INCLUDES + HOOK_INCLUDES, + link_with: [dhcp_user_chk_archive] + LIBS_BUILT_SO_FAR, +) +test('dhcp_user_chk_lib_tests', dhcp_user_chk_lib_tests, protocol: 'gtest')