mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-09 13:22:04 -04:00
fix: test: 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. Closes #5455 Merge branch '5455-fix-macos-build-plugintest' into 'main' See merge request isc-projects/bind9!10796
This commit is contained in:
commit
7d138108ce
2 changed files with 13 additions and 19 deletions
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -34,17 +34,18 @@
|
|||
|
||||
#include <dns/lib.h>
|
||||
|
||||
#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 <tests/ns.h>
|
||||
|
||||
/*%
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -149,7 +150,7 @@ ISC_RUN_TEST_IMPL(ns_plugin_expandpath) {
|
|||
.exists = false,
|
||||
.output_size = PATH_MAX,
|
||||
.result = ISC_R_SUCCESS,
|
||||
.output = "/usr/lib/named/foo.so",
|
||||
.output = "/usr/lib/named/foo" NAMED_PLUGINEXT,
|
||||
},
|
||||
{
|
||||
NS_TEST_ID("correct use with a relative path and no "
|
||||
|
|
@ -158,7 +159,7 @@ ISC_RUN_TEST_IMPL(ns_plugin_expandpath) {
|
|||
.exists = false,
|
||||
.output_size = PATH_MAX,
|
||||
.result = ISC_R_SUCCESS,
|
||||
.output = "../../foo.so",
|
||||
.output = "../../foo" NAMED_PLUGINEXT,
|
||||
},
|
||||
{
|
||||
NS_TEST_ID("correct use with a filename and no "
|
||||
|
|
@ -167,7 +168,7 @@ ISC_RUN_TEST_IMPL(ns_plugin_expandpath) {
|
|||
.exists = false,
|
||||
.output_size = PATH_MAX,
|
||||
.result = ISC_R_SUCCESS,
|
||||
.output = NAMED_PLUGINDIR "/foo.so",
|
||||
.output = NAMED_PLUGINDIR "/foo" NAMED_PLUGINEXT,
|
||||
},
|
||||
{
|
||||
NS_TEST_ID("correct use with a filename and no "
|
||||
|
|
@ -176,7 +177,7 @@ ISC_RUN_TEST_IMPL(ns_plugin_expandpath) {
|
|||
.exists = false,
|
||||
.output_size = PATH_MAX,
|
||||
.result = ISC_R_SUCCESS,
|
||||
.output = NAMED_PLUGINDIR "/foo.bar.so",
|
||||
.output = NAMED_PLUGINDIR "/foo.bar" NAMED_PLUGINEXT,
|
||||
},
|
||||
{
|
||||
NS_TEST_ID("no space at all in target buffer"),
|
||||
|
|
|
|||
Loading…
Reference in a new issue