]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3953] Use the same sudo trick on fuzzers and get rid of kludgy fuzz test scripts
authorAndrei Pavel <andrei@isc.org>
Tue, 17 Jun 2025 09:03:55 +0000 (12:03 +0300)
committerAndrei Pavel <andrei@isc.org>
Thu, 19 Jun 2025 14:16:55 +0000 (17:16 +0300)
14 files changed:
fuzz/meson.build
fuzz/tests/meson.build
fuzz/tests/test_fuzz_config_kea_dhcp4.sh [deleted file]
fuzz/tests/test_fuzz_config_kea_dhcp6.sh [deleted file]
fuzz/tests/test_fuzz_http_endpoint_kea_dhcp4.sh [deleted file]
fuzz/tests/test_fuzz_http_endpoint_kea_dhcp6.sh [deleted file]
fuzz/tests/test_fuzz_packets_kea_dhcp4.sh [deleted file]
fuzz/tests/test_fuzz_packets_kea_dhcp6.sh [deleted file]
fuzz/tests/test_fuzz_unix_socket_kea_dhcp4.sh [deleted file]
fuzz/tests/test_fuzz_unix_socket_kea_dhcp6.sh [deleted file]
src/lib/config/meson.build
src/lib/config/tests/meson.build
src/lib/dhcpsrv/meson.build
src/lib/process/meson.build

index fa6c491cae35a693e56f69ab63d42c08cc9bffc9..215407293266d7e8fb21a64ce2266bd63225db86 100644 (file)
@@ -66,7 +66,8 @@ fuzz_lib = static_library(
     link_with: LIBS_BUILT_SO_FAR,
 )
 
-executable(
+FUZZER_EXECUTABLES = []
+FUZZER_EXECUTABLES += executable(
     'fuzz_config_kea_dhcp4',
     'fuzz_config_kea_dhcp4.cc',
     fuzz_sources,
@@ -78,7 +79,7 @@ executable(
     install_dir: SBINDIR,
 )
 
-executable(
+FUZZER_EXECUTABLES += executable(
     'fuzz_config_kea_dhcp6',
     'fuzz_config_kea_dhcp6.cc',
     fuzz_sources,
@@ -90,7 +91,7 @@ executable(
     install_dir: SBINDIR,
 )
 
-executable(
+FUZZER_EXECUTABLES += executable(
     'fuzz_http_endpoint_kea_dhcp4',
     'fuzz_http_endpoint_kea_dhcp4.cc',
     fuzz_sources,
@@ -102,7 +103,7 @@ executable(
     install_dir: SBINDIR,
 )
 
-executable(
+FUZZER_EXECUTABLES += executable(
     'fuzz_http_endpoint_kea_dhcp6',
     'fuzz_http_endpoint_kea_dhcp6.cc',
     fuzz_sources,
@@ -114,7 +115,7 @@ executable(
     install_dir: SBINDIR,
 )
 
-executable(
+FUZZER_EXECUTABLES += executable(
     'fuzz_packets_kea_dhcp4',
     'fuzz_packets_kea_dhcp4.cc',
     fuzz_sources,
@@ -126,7 +127,7 @@ executable(
     install_dir: SBINDIR,
 )
 
-executable(
+FUZZER_EXECUTABLES += executable(
     'fuzz_packets_kea_dhcp6',
     'fuzz_packets_kea_dhcp6.cc',
     fuzz_sources,
@@ -138,7 +139,7 @@ executable(
     install_dir: SBINDIR,
 )
 
-executable(
+FUZZER_EXECUTABLES += executable(
     'fuzz_unix_socket_kea_dhcp4',
     'fuzz_unix_socket_kea_dhcp4.cc',
     fuzz_sources,
@@ -150,7 +151,7 @@ executable(
     install_dir: SBINDIR,
 )
 
-executable(
+FUZZER_EXECUTABLES += executable(
     'fuzz_unix_socket_kea_dhcp6',
     'fuzz_unix_socket_kea_dhcp6.cc',
     fuzz_sources,
index 7f5c561334d6b1512245b4b35ddde1ba01afabde..70bddfb774d0670c86bde3c57c6b9cc17a31f82c 100644 (file)
@@ -1,13 +1,14 @@
-current_source_dir = meson.current_source_dir()
-fuzz_test_scripts = run_command(
-    GRABBER,
-    current_source_dir,
-    'test_fuzz_*.sh',
-    check: true,
-)
-fuzz_test_scripts = fuzz_test_scripts.stdout().strip().split('\n')
+if not PASSWORDLESS_SUDO_SET_UP
+    subdir_done()
+endif
 
-foreach st : fuzz_test_scripts
-    bt = configure_file(input: st, output: st, copy: true)
-    test(st, bt)
+foreach f : FUZZER_EXECUTABLES
+    test(
+        f.name(),
+        SUDO,
+        args: [f],
+        is_parallel: false,
+        priority: -1,
+        suite: 'sudo-tests',
+    )
 endforeach
diff --git a/fuzz/tests/test_fuzz_config_kea_dhcp4.sh b/fuzz/tests/test_fuzz_config_kea_dhcp4.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
diff --git a/fuzz/tests/test_fuzz_config_kea_dhcp6.sh b/fuzz/tests/test_fuzz_config_kea_dhcp6.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
diff --git a/fuzz/tests/test_fuzz_http_endpoint_kea_dhcp4.sh b/fuzz/tests/test_fuzz_http_endpoint_kea_dhcp4.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
diff --git a/fuzz/tests/test_fuzz_http_endpoint_kea_dhcp6.sh b/fuzz/tests/test_fuzz_http_endpoint_kea_dhcp6.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
diff --git a/fuzz/tests/test_fuzz_packets_kea_dhcp4.sh b/fuzz/tests/test_fuzz_packets_kea_dhcp4.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
diff --git a/fuzz/tests/test_fuzz_packets_kea_dhcp6.sh b/fuzz/tests/test_fuzz_packets_kea_dhcp6.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
diff --git a/fuzz/tests/test_fuzz_unix_socket_kea_dhcp4.sh b/fuzz/tests/test_fuzz_unix_socket_kea_dhcp4.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
diff --git a/fuzz/tests/test_fuzz_unix_socket_kea_dhcp6.sh b/fuzz/tests/test_fuzz_unix_socket_kea_dhcp6.sh
deleted file mode 100755 (executable)
index f9e0a8f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if test "$(id -u)" != 0; then exec sudo -E -- "${0}" "${@}"; fi
-
-script_path=$(cd "$(dirname "${0}")" && pwd)
-
-script_basename=$(basename "${0}")
-
-tested_binary=$(printf '%s' "${script_basename}" | sed 's/test_//g;s/.sh//g')
-
-"${script_path}/../${tested_binary}"
index 0bc71a78f39b702897ee72eb01eeb08f98aa66c5..33660203539a0e614ef93df2cc88de8ef15a4976 100644 (file)
@@ -21,9 +21,7 @@ kea_config_lib = shared_library(
     build_rpath: BUILD_RPATH,
     link_with: LIBS_BUILT_SO_FAR,
     version: '82.0.0',
-    cpp_args: [
-        f'-DCONTROL_SOCKET_DIR="@RUNSTATEDIR_INSTALLED@"'
-    ],
+    cpp_args: [f'-DCONTROL_SOCKET_DIR="@RUNSTATEDIR_INSTALLED@"'],
 )
 LIBS_BUILT_SO_FAR = [kea_config_lib] + LIBS_BUILT_SO_FAR
 subdir('tests')
index 61d05b37fc19f6a5fd2cd70443bbfb4fab85abd5..dbf5100d0ffcb52d4e271fc57bb5c7cb6afe6677 100644 (file)
@@ -22,7 +22,7 @@ kea_config_tests = executable(
     cpp_args: [
         f'-DTEST_DATA_BUILDDIR="@current_build_dir@"',
         f'-DTEST_CA_DIR="@TEST_CA_DIR@"',
-        f'-DCONTROL_SOCKET_DIR="@RUNSTATEDIR_INSTALLED@"'
+        f'-DCONTROL_SOCKET_DIR="@RUNSTATEDIR_INSTALLED@"',
     ],
     include_directories: [include_directories('.')] + INCLUDES,
     link_with: [kea_util_unittests_lib, libs_testutils] + LIBS_BUILT_SO_FAR,
index 48701fe885e5f862f75d492c1dcebabde6fd19d1..f514325105c49cdbc697b01c1c2456b11d6ab9a3 100644 (file)
@@ -94,7 +94,7 @@ kea_dhcpsrv_lib = shared_library(
     cpp_args: [
         f'-DDHCP_DATA_DIR="@SHAREDSTATEDIR_INSTALLED@"',
         f'-DKEA_LFC_EXECUTABLE="@KEA_LFC_INSTALLED@"',
-        f'-DLEGAL_LOG_DIR="@LOGDIR_INSTALLED@"'
+        f'-DLEGAL_LOG_DIR="@LOGDIR_INSTALLED@"',
     ],
     dependencies: [CRYPTO_DEP],
     include_directories: [include_directories('.')] + INCLUDES,
index 29c2ba77ee25072e0aaf7796bfb6ebf8676c4156..5311771951b38a1703cb059cc42fe33d1628e14a 100644 (file)
@@ -14,7 +14,7 @@ kea_process_lib = shared_library(
     'redact_config.cc',
     cpp_args: [
         f'-DPIDFILE_DIR="@RUNSTATEDIR_INSTALLED@"',
-        f'-DLOGFILE_DIR="@LOGDIR_INSTALLED@"'
+        f'-DLOGFILE_DIR="@LOGDIR_INSTALLED@"',
     ],
     include_directories: [include_directories('.')] + INCLUDES,
     install: true,