]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3729] Added remaining lib tests
authorFrancis Dupont <fdupont@isc.org>
Wed, 5 Feb 2025 11:32:14 +0000 (12:32 +0100)
committerAndrei Pavel <andrei@isc.org>
Thu, 13 Feb 2025 08:05:19 +0000 (10:05 +0200)
14 files changed:
meson.build
src/lib/d2srv/meson.build
src/lib/d2srv/tests/meson.build [new file with mode: 0644]
src/lib/d2srv/testutils/meson.build [new file with mode: 0644]
src/lib/dhcpsrv/meson.build
src/lib/dhcpsrv/tests/meson.build [new file with mode: 0644]
src/lib/dhcpsrv/tests/test_kea_lfc_env.sh.in [changed mode: 0644->0755]
src/lib/dhcpsrv/testutils/meson.build [new file with mode: 0644]
src/lib/hooks/meson.build
src/lib/process/cfgrpt/meson.build
src/lib/process/cfgrpt/tests/meson.build [new file with mode: 0644]
src/lib/process/meson.build
src/lib/process/tests/meson.build [new file with mode: 0644]
src/lib/process/testutils/meson.build [new file with mode: 0644]

index c6b4a174e85a923cb8184bbd014bc154cedaad16..14cfb33e5df023f123d3d22a500f28ab7cb02df4 100644 (file)
@@ -23,6 +23,7 @@ DATABASE_SCRIPTS_DIR = f'@TOP_BUILD_DIR@/src/share/database/scripts'
 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
index 831380e6d345ae47f5d3586451231740cb8aa981..a436c8f97b677c9bf447ee32cdaa8d02e467866d 100644 (file)
@@ -18,6 +18,8 @@ kea_d2srv_lib = library(
     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',
diff --git a/src/lib/d2srv/tests/meson.build b/src/lib/d2srv/tests/meson.build
new file mode 100644 (file)
index 0000000..ae6d8e3
--- /dev/null
@@ -0,0 +1,18 @@
+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')
diff --git a/src/lib/d2srv/testutils/meson.build b/src/lib/d2srv/testutils/meson.build
new file mode 100644 (file)
index 0000000..ded563d
--- /dev/null
@@ -0,0 +1,12 @@
+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,
+)
index 96599c582d070b7196e3513b68c3d6974bde1fe6..647ad7ee7c749eb78f4f0b68c30eb8e534b41dcf 100644 (file)
@@ -89,13 +89,15 @@ kea_dhcpsrv_lib = library(
         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',
diff --git a/src/lib/dhcpsrv/tests/meson.build b/src/lib/dhcpsrv/tests/meson.build
new file mode 100644 (file)
index 0000000..18a3f84
--- /dev/null
@@ -0,0 +1,106 @@
+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,
+)
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/src/lib/dhcpsrv/testutils/meson.build b/src/lib/dhcpsrv/testutils/meson.build
new file mode 100644 (file)
index 0000000..380c5cd
--- /dev/null
@@ -0,0 +1,39 @@
+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,
+)
index 3b1d0026aafbc2196598f7ccbeca7aba7bb9285a..60193652847b078e22a323421f4f87fc2e84938f 100644 (file)
@@ -13,7 +13,7 @@ kea_hooks_lib = library(
     '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,
index 7e0a1a410863a60f8ae682a105f797f2c880a91b..25b7c49447ea5bca002e065a5fc967b304a64256 100644 (file)
@@ -13,6 +13,7 @@ kea_cfgrpt_lib = library(
     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,
diff --git a/src/lib/process/cfgrpt/tests/meson.build b/src/lib/process/cfgrpt/tests/meson.build
new file mode 100644 (file)
index 0000000..a3a9f95
--- /dev/null
@@ -0,0 +1,13 @@
+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')
index 7f836d193ff5c47f62eaedf828a4e6987f31d0a4..45d60b22a0ef809e4e5c3b58cd5a7bf17a940b5f 100644 (file)
@@ -20,6 +20,8 @@ kea_process_lib = library(
     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',
diff --git a/src/lib/process/tests/meson.build b/src/lib/process/tests/meson.build
new file mode 100644 (file)
index 0000000..0e31034
--- /dev/null
@@ -0,0 +1,33 @@
+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')
diff --git a/src/lib/process/testutils/meson.build b/src/lib/process/testutils/meson.build
new file mode 100644 (file)
index 0000000..ae115ea
--- /dev/null
@@ -0,0 +1,12 @@
+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,
+)