RUN_STATE_DIR = get_option('localstatedir')
PREFIX = get_option('prefix')
DHCP_DATA_DIR = f'@PREFIX@/@RUN_STATE_DIR@/run/kea'
+DEFAULT_HOOKS_PATH = f'@PREFIX@/lib/kea/hooks'
# TODO: Control it via a build option.
FUZZING_IN_CI = false
link_with: LIBS_BUILT_SO_FAR,
)
LIBS_BUILT_SO_FAR = [kea_d2srv_lib] + LIBS_BUILT_SO_FAR
+subdir('testutils')
+subdir('tests')
kea_d2srv_headers = [
'd2_cfg_mgr.h',
'd2_config.h',
--- /dev/null
+if not gtest.found()
+ subdir_done()
+endif
+
+libs_testutils = [kea_d2srv_testutils_lib, kea_testutils_lib]
+kea_d2srv_tests = executable(
+ 'kea-d2srv-tests',
+ 'run_unittests.cc',
+ 'd2_tsig_key_unittest.cc',
+ 'd2_update_message_unittests.cc',
+ 'd2_zone_unittests.cc',
+ 'dns_client_unittests.cc',
+ 'nc_trans_unittests.cc',
+ dependencies: [boost, crypto, gtest],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: [kea_util_unittests_lib] + libs_testutils + LIBS_BUILT_SO_FAR,
+)
+test('kea_d2srv_tests', kea_d2srv_tests, protocol: 'gtest')
--- /dev/null
+if not gtest.found()
+ subdir_done()
+endif
+
+kea_d2srv_testutils_lib = static_library(
+ 'kea-d2srv-testutils',
+ 'nc_test_utils.cc',
+ 'stats_test_utils.cc',
+ dependencies: [boost],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: LIBS_BUILT_SO_FAR,
+)
f'-DDHCP_DATA_DIR="@DHCP_DATA_DIR@"',
f'-DKEA_LFC_EXECUTABLE="@KEA_LFC@"',
],
- dependencies: [crypto],
+ dependencies: [boost, crypto, threads],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
install_dir: 'lib',
link_with: LIBS_BUILT_SO_FAR,
)
LIBS_BUILT_SO_FAR = [kea_dhcpsrv_lib] + LIBS_BUILT_SO_FAR
+subdir('testutils')
+subdir('tests')
kea_dhcpsrv_headers = [
'alloc_engine.h',
'alloc_engine_log.h',
--- /dev/null
+if not gtest.found()
+ subdir_done()
+endif
+
+CURRENT_BUILD_DIR = meson.current_build_dir()
+libs_testutils = [
+ kea_dhcpsrv_testutils_lib,
+ kea_dhcp_testutils_lib,
+ kea_database_testutils_lib,
+ kea_testutils_lib,
+]
+configure_file(
+ input: 'test_kea_lfc_env.sh.in',
+ output: 'test_kea_lfc_env.sh',
+ copy: true,
+)
+kea_dhcpsrv_tests = executable(
+ 'kea-dhcpsrv-tests',
+ 'alloc_engine4_unittest.cc',
+ 'alloc_engine6_unittest.cc',
+ 'alloc_engine_expiration_unittest.cc',
+ 'alloc_engine_hooks_unittest.cc',
+ 'allocation_state_unittest.cc',
+ 'callout_handle_store_unittest.cc',
+ 'cb_ctl_dhcp_unittest.cc',
+ 'cfg_db_access_unittest.cc',
+ 'cfg_duid_unittest.cc',
+ 'cfg_expiration_unittest.cc',
+ 'cfg_host_operations_unittest.cc',
+ 'cfg_hosts_unittest.cc',
+ 'cfg_iface_unittest.cc',
+ 'cfg_mac_source_unittest.cc',
+ 'cfg_multi_threading_unittest.cc',
+ 'cfg_option_def_unittest.cc',
+ 'cfg_option_unittest.cc',
+ 'cfg_rsoo_unittest.cc',
+ 'cfg_shared_networks4_unittest.cc',
+ 'cfg_shared_networks6_unittest.cc',
+ 'cfg_subnets4_unittest.cc',
+ 'cfg_subnets6_unittest.cc',
+ 'cfgmgr_unittest.cc',
+ 'client_class_def_parser_unittest.cc',
+ 'client_class_def_unittest.cc',
+ 'csv_lease_file4_unittest.cc',
+ 'csv_lease_file6_unittest.cc',
+ 'd2_client_unittest.cc',
+ 'd2_udp_unittest.cc',
+ 'dhcp4o6_ipc_unittest.cc',
+ # 'dhcp_parsers_unittest.cc',
+ 'dhcp_queue_control_parser_unittest.cc',
+ 'duid_config_parser_unittest.cc',
+ 'expiration_config_parser_unittest.cc',
+ 'flq_allocation_state_unittest.cc',
+ 'flq_allocator_unittest.cc',
+ 'host_cache_unittest.cc',
+ 'host_data_source_factory_unittest.cc',
+ 'host_mgr_unittest.cc',
+ 'host_reservation_parser_unittest.cc',
+ 'host_reservations_list_parser_unittest.cc',
+ 'host_unittest.cc',
+ 'ifaces_config_parser_unittest.cc',
+ 'ip_range_permutation_unittest.cc',
+ 'ip_range_unittest.cc',
+ 'iterative_allocation_state_unittest.cc',
+ 'iterative_allocator_unittest.cc',
+ 'lease_file_loader_unittest.cc',
+ 'lease_mgr_factory_unittest.cc',
+ 'lease_mgr_unittest.cc',
+ 'lease_unittest.cc',
+ 'memfile_lease_extended_info_unittest.cc',
+ 'memfile_lease_limits_unittest.cc',
+ 'memfile_lease_mgr_unittest.cc',
+ 'multi_threading_config_parser_unittest.cc',
+ 'ncr_generator_unittest.cc',
+ 'network_state_unittest.cc',
+ 'network_unittest.cc',
+ 'pool_unittest.cc',
+ 'random_allocation_state_unittest.cc',
+ 'random_allocator_unittest.cc',
+ 'resource_handler_unittest.cc',
+ 'run_unittests.cc',
+ 'sanity_checks_unittest.cc',
+ 'shared_network_parser_unittest.cc',
+ 'shared_network_unittest.cc',
+ 'shared_networks_list_parser_unittest.cc',
+ 'srv_config_unittest.cc',
+ 'subnet_unittest.cc',
+ 'test_get_callout_handle.cc',
+ 'timer_mgr_unittest.cc',
+ 'tracking_lease_mgr_unittest.cc',
+ cpp_args: [
+ f'-DTEST_DATA_BUILDDIR="@CURRENT_BUILD_DIR@"',
+ f'-DDHCP_DATA_DIR="@CURRENT_BUILD_DIR@"',
+ f'-DKEA_LFC_BUILD_DIR="@TOP_BUILD_DIR@/src/bin/lfc"',
+ f'-DDEFAULT_HOOKS_PATH="@DEFAULT_HOOKS_PATH@"',
+ ],
+ dependencies: [boost, gtest],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: [kea_util_unittests_lib] + libs_testutils + LIBS_BUILT_SO_FAR,
+)
+test(
+ 'kea_dhcpsrv_tests',
+ kea_dhcpsrv_tests,
+ protocol: 'gtest',
+ is_parallel: false,
+)
--- /dev/null
+if not gtest.found()
+ subdir_done()
+endif
+
+sources = [
+ 'alloc_engine_utils.cc',
+ 'concrete_lease_mgr.cc',
+ 'config_result_check.cc',
+ 'dhcp4o6_test_ipc.cc',
+ 'generic_backend_unittest.cc',
+ 'generic_cb_dhcp4_unittest.cc',
+ 'generic_cb_dhcp6_unittest.cc',
+ 'generic_cb_recovery_unittest.cc',
+ 'generic_host_data_source_unittest.cc',
+ 'generic_lease_mgr_unittest.cc',
+ 'host_data_source_utils.cc',
+ 'lease_file_io.cc',
+ 'memory_host_data_source.cc',
+ 'test_config_backend_dhcp4.cc',
+ 'test_config_backend_dhcp6.cc',
+ 'test_utils.cc',
+]
+dependencies = [boost]
+if mysql.found()
+ sources += ['mysql_generic_backend_unittest.cc']
+ dependencies += [mysql]
+endif
+if postgresql.found()
+ sources += ['pgsql_generic_backend_unittest.cc']
+ dependencies += [postgresql]
+endif
+kea_dhcpsrv_testutils_lib = static_library(
+ 'kea-dhcpsrv-testutils',
+ sources,
+ cpp_args: [f'-DDATABASE_SCRIPTS_DIR="@DATABASE_SCRIPTS_DIR@"'],
+ dependencies: dependencies,
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: LIBS_BUILT_SO_FAR,
+)
'library_manager.cc',
'library_manager_collection.cc',
'server_hooks.cc',
- cpp_args: [f'-DDEFAULT_HOOKS_PATH="@TOP_BUILD_DIR@"'],
+ cpp_args: [f'-DDEFAULT_HOOKS_PATH="@DEFAULT_HOOKS_PATH@"'],
dependencies: [boost],
include_directories: [include_directories('.')] + INCLUDES,
install: true,
link_with: LIBS_BUILT_SO_FAR,
)
LIBS_BUILT_SO_FAR = [kea_cfgrpt_lib] + LIBS_BUILT_SO_FAR
+subdir('tests')
kea_cfgrpt_headers = ['config_report.h']
install_headers(
kea_cfgrpt_headers,
--- /dev/null
+if not gtest.found()
+ subdir_done()
+endif
+
+kea_process_cfgrpt_tests = executable(
+ 'kea-process-cfgrpt-tests',
+ # 'config_report_unittests.cc',
+ 'run_unittests.cc',
+ dependencies: [gtest],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: [kea_util_unittests_lib] + LIBS_BUILT_SO_FAR,
+)
+test('kea_process_cfgrpt_tests', kea_process_cfgrpt_tests, protocol: 'gtest')
link_with: LIBS_BUILT_SO_FAR,
)
LIBS_BUILT_SO_FAR = [kea_process_lib] + LIBS_BUILT_SO_FAR
+subdir('testutils')
+subdir('tests')
kea_process_headers = [
'cb_ctl_base.h',
'config_base.h',
--- /dev/null
+if not gtest.found()
+ subdir_done()
+endif
+
+CURRENT_BUILD_DIR = meson.current_build_dir()
+libs_testutils = [kea_process_testutils_lib, kea_testutils_lib]
+configure_file(
+ input: 'process_test.sh.in',
+ output: 'process_test.sh',
+ copy: true,
+)
+kea_process_tests = executable(
+ 'kea-process-tests',
+ 'cb_ctl_base_unittests.cc',
+ 'config_base_unittests.cc',
+ 'config_ctl_info_unittests.cc',
+ 'config_ctl_parser_unittests.cc',
+ 'd_cfg_mgr_unittests.cc',
+ 'd_controller_unittests.cc',
+ 'daemon_unittest.cc',
+ 'log_parser_unittests.cc',
+ 'logging_info_unittests.cc',
+ 'run_unittests.cc',
+ dependencies: [gtest],
+ cpp_args: [
+ f'-DTEST_DATA_BUILDDIR="@CURRENT_BUILD_DIR@"',
+ f'-DTEST_SCRIPT_SH="@CURRENT_BUILD_DIR@/process_test.sh"',
+ f'-DDATA_DIR="@DHCP_DATA_DIR@"',
+ ],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: [kea_util_unittests_lib] + libs_testutils + LIBS_BUILT_SO_FAR,
+)
+test('kea_process_tests', kea_process_tests, protocol: 'gtest')
--- /dev/null
+if not gtest.found()
+ subdir_done()
+endif
+
+kea_process_testutils_lib = static_library(
+ 'kea-process-testutils',
+ 'd_test_stubs.cc',
+ cpp_args: [f'-DDATABASE_SCRIPTS_DIR="@DATABASE_SCRIPTS_DIR@"'],
+ dependencies: [boost],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: LIBS_BUILT_SO_FAR,
+)