From: Colin Vidal Date: Wed, 30 Jul 2025 07:54:05 +0000 (+0200) Subject: fix macOS build for plugin unit test X-Git-Tag: v9.21.11~19^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b6347483e613902e791574fccb67b76194cb542;p=thirdparty%2Fbind9.git fix macOS build for plugin unit test MR !10753 breaks macOS build for plugin unit test as its linker doesn't supports `--wrap` option, which is used in in order to mock the function `isc_file_exits()`. To work around the problem, a mocked `isc_file_exits()` is implemented inside the plugin test as a static function before inlining the file using it, which effectively links to this version rather than the isclib one. --- diff --git a/tests/ns/meson.build b/tests/ns/meson.build index ca0270ca376..7d4e2e30faf 100644 --- a/tests/ns/meson.build +++ b/tests/ns/meson.build @@ -14,12 +14,6 @@ foreach unit : [ 'plugin', 'query', ] - linkargs = '' - if unit == 'plugin' - linkargs = [ - '-Wl,--wrap=isc_file_exists', - ] - endif test_bin = executable( unit, files(f'@unit@_test.c', 'netmgr_wrap.c'), @@ -37,7 +31,6 @@ foreach unit : [ cmocka_dep, nghttp2_dep, ], - link_args: linkargs, ) test( diff --git a/tests/ns/plugin_test.c b/tests/ns/plugin_test.c index 1de3e7c989e..3a23d434768 100644 --- a/tests/ns/plugin_test.c +++ b/tests/ns/plugin_test.c @@ -34,17 +34,18 @@ #include -#include "../ns/hooks.c" - -bool -__wrap_isc_file_exists(const char *pathname); - -bool -__wrap_isc_file_exists(const char *pathname) { +/* + * Mocking isc_file_exists() as it's used inside the tested + * ns_plugin_expandpath() function defined in lib/ns/hooks.c + */ +static bool +isc_file_exists(const char *pathname) { UNUSED(pathname); return mock(); } +#include "../ns/hooks.c" + #include /*% @@ -75,7 +76,7 @@ run_full_path_test(const ns_plugin_expandpath_test_params_t *test, REQUIRE(test->result != ISC_R_SUCCESS || test->output != NULL); if (test->result == ISC_R_SUCCESS) { - will_return(__wrap_isc_file_exists, test->exists); + will_return(isc_file_exists, test->exists); } /*