objects: dhcp_bootp_lib.extract_all_objects(recursive: false),
link_with: LIBS_BUILT_SO_FAR,
)
-subdir('tests')
subdir('libloadtests')
+subdir('tests')
--- /dev/null
+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',
+)
-dhcp_flex_option_lib = library(
+dhcp_flex_option_lib = shared_library(
'dhcp_flex_option',
'flex_option.cc',
'flex_option_callouts.cc',
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')
--- /dev/null
+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')
--- /dev/null
+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')
-dhcp_high_availability_lib = library(
- 'dhcp_high_availability',
+dhcp_ha_lib = shared_library(
+ 'dhcp_ha',
'command_creator.cc',
'communication_state.cc',
'ha_callouts.cc',
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')
--- /dev/null
+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,
+)
--- /dev/null
+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',
+)
-dhcp_lease_cmds_lib = library(
+dhcp_lease_cmds_lib = shared_library(
'dhcp_lease_cmds',
'lease_cmds.cc',
'lease_cmds_callouts.cc',
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')
--- /dev/null
+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')
--- /dev/null
+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')
subdir_done()
endif
-dhcp_mysql_lib = library(
+dhcp_mysql_lib = shared_library(
'dhcp_mysql',
'mysql_callouts.cc',
'mysql_cb_dhcp4.cc',
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')
--- /dev/null
+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,
+)
--- /dev/null
+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')
-dhcp_perfmon_lib = library(
+dhcp_perfmon_lib = shared_library(
'dhcp_perfmon',
'alarm.cc',
'alarm_store.cc',
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')
--- /dev/null
+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')
--- /dev/null
+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')
subdir_done()
endif
-dhcp_pgsql_lib = library(
+dhcp_pgsql_lib = shared_library(
'dhcp_pgsql',
'pgsql_callouts.cc',
'pgsql_cb_dhcp4.cc',
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')
--- /dev/null
+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,
+)
--- /dev/null
+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',
+)
-dhcp_run_script_lib = library(
+dhcp_run_script_lib = shared_library(
'dhcp_run_script',
'run_script.cc',
'run_script_callouts.cc',
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')
--- /dev/null
+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')
--- /dev/null
+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',
+)
-dhcp_stat_cmds_lib = library(
+dhcp_stat_cmds_lib = shared_library(
'dhcp_stat_cmds',
'stat_cmds.cc',
'stat_cmds_callouts.cc',
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')
--- /dev/null
+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')
-dhcp_user_chk_lib = library(
+# Not install it
+dhcp_user_chk_lib = shared_library(
'dhcp_user_chk',
'load_unload.cc',
'pkt_receive_co.cc',
'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')
--- /dev/null
+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')