2025-03-10 14:08:51 +02:00
|
|
|
if not FUZZ_OPT.enabled()
|
2025-02-14 15:10:23 +02:00
|
|
|
subdir_done()
|
|
|
|
endif
|
|
|
|
|
2025-04-22 18:13:51 +03:00
|
|
|
current_build_dir = meson.current_build_dir()
|
2025-03-20 10:13:10 +02:00
|
|
|
current_source_dir = meson.current_source_dir()
|
2025-04-22 18:13:51 +03:00
|
|
|
|
2025-03-20 10:13:10 +02:00
|
|
|
foreach i : [
|
|
|
|
'fuzz_config_kea_dhcp4',
|
|
|
|
'fuzz_config_kea_dhcp6',
|
|
|
|
'fuzz_http_endpoint_kea_dhcp4',
|
|
|
|
'fuzz_http_endpoint_kea_dhcp6',
|
|
|
|
'fuzz_packets_kea_dhcp4',
|
|
|
|
'fuzz_packets_kea_dhcp6',
|
|
|
|
'fuzz_unix_socket_kea_dhcp4',
|
|
|
|
'fuzz_unix_socket_kea_dhcp6',
|
|
|
|
'fuzz_config_kea_dhcp4/doc-examples',
|
|
|
|
'fuzz_config_kea_dhcp6/doc-examples',
|
|
|
|
]
|
2025-03-20 10:57:44 +02:00
|
|
|
command = run_command(GRABBER, f'input/@i@', '*', check: true)
|
2025-03-20 10:13:10 +02:00
|
|
|
foreach j : command.stdout().strip().split('\n')
|
|
|
|
# configure_file doesn't work with path segments in the output, so let
|
|
|
|
# us simulate it with commands.
|
2025-03-20 10:57:44 +02:00
|
|
|
run_command(
|
|
|
|
['mkdir', '-p', f'@TOP_BUILD_DIR@/fuzz/input/@i@'],
|
|
|
|
check: true,
|
|
|
|
)
|
|
|
|
run_command(
|
|
|
|
['cp', f'input/@i@/@j@', f'@TOP_BUILD_DIR@/fuzz/input/@i@/@j@'],
|
|
|
|
check: true,
|
|
|
|
)
|
2025-03-20 10:13:10 +02:00
|
|
|
endforeach
|
2025-06-17 12:04:19 +03:00
|
|
|
|
2025-03-20 10:13:10 +02:00
|
|
|
endforeach
|
2025-04-22 18:13:51 +03:00
|
|
|
|
2025-04-26 22:26:08 +03:00
|
|
|
fuzz_sources = ['fuzz.cc', 'fuzz.h', 'main.cc']
|
2025-02-11 15:47:46 +02:00
|
|
|
cpp_flags = [
|
2025-03-18 15:30:24 +02:00
|
|
|
f'-DKEA_LFC_INSTALLATION="@KEA_LFC_INSTALLED@"',
|
|
|
|
f'-DKEA_LFC_SOURCES="@KEA_LFC_BUILT@"',
|
2025-02-11 15:47:46 +02:00
|
|
|
]
|
2025-02-04 16:58:43 +02:00
|
|
|
|
2025-02-11 15:47:46 +02:00
|
|
|
includes = [include_directories('.')] + INCLUDES
|
|
|
|
|
2025-02-07 10:27:11 +01:00
|
|
|
fuzz_lib = static_library(
|
|
|
|
'fuzz_lib',
|
|
|
|
fuzz_sources,
|
2025-02-11 15:47:46 +02:00
|
|
|
cpp_args: cpp_flags,
|
2025-03-10 14:08:51 +02:00
|
|
|
dependencies: [CRYPTO_DEP, GTEST_DEP],
|
2025-02-11 15:47:46 +02:00
|
|
|
include_directories: includes,
|
|
|
|
link_with: LIBS_BUILT_SO_FAR,
|
2025-02-04 16:58:43 +02:00
|
|
|
)
|
|
|
|
|
2025-06-17 12:03:55 +03:00
|
|
|
FUZZER_EXECUTABLES = []
|
2025-02-11 15:47:46 +02:00
|
|
|
|
2025-06-17 12:04:19 +03:00
|
|
|
foreach i : [
|
|
|
|
'fuzz_config_kea_dhcp4',
|
2025-02-11 15:47:46 +02:00
|
|
|
'fuzz_http_endpoint_kea_dhcp4',
|
|
|
|
'fuzz_packets_kea_dhcp4',
|
|
|
|
'fuzz_unix_socket_kea_dhcp4',
|
2025-06-17 12:04:19 +03:00
|
|
|
]
|
|
|
|
FUZZER_EXECUTABLES += executable(
|
|
|
|
i,
|
|
|
|
f'@i@.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
|
|
|
dependencies: [CRYPTO_DEP, GTEST_DEP],
|
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp4_lib, kea_testutils_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
install: true,
|
|
|
|
install_dir: SBINDIR,
|
|
|
|
install_rpath: INSTALL_RPATH,
|
|
|
|
build_rpath: BUILD_RPATH,
|
|
|
|
)
|
|
|
|
endforeach
|
|
|
|
foreach i : [
|
|
|
|
'fuzz_config_kea_dhcp6',
|
|
|
|
'fuzz_http_endpoint_kea_dhcp6',
|
|
|
|
'fuzz_packets_kea_dhcp6',
|
2025-02-11 15:47:46 +02:00
|
|
|
'fuzz_unix_socket_kea_dhcp6',
|
2025-06-17 12:04:19 +03:00
|
|
|
]
|
|
|
|
FUZZER_EXECUTABLES += executable(
|
|
|
|
i,
|
|
|
|
f'@i@.cc',
|
|
|
|
fuzz_sources,
|
|
|
|
cpp_args: cpp_flags,
|
|
|
|
dependencies: [CRYPTO_DEP, GTEST_DEP],
|
|
|
|
include_directories: includes,
|
|
|
|
link_with: [dhcp6_lib, kea_testutils_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
|
|
|
|
install: true,
|
|
|
|
install_dir: SBINDIR,
|
|
|
|
install_rpath: INSTALL_RPATH,
|
|
|
|
build_rpath: BUILD_RPATH,
|
|
|
|
)
|
|
|
|
endforeach
|
2025-03-20 10:13:10 +02:00
|
|
|
|
|
|
|
subdir('tests')
|