Drop function wrapping as it is redundant for now
As currently used in the BIND source tree, the --wrap linker option is
redundant because:
- static builds are no longer supported,
- there is no need to wrap around existing functions - what is
actually required (at least for now) is to replace them altogether
in unit tests,
- only functions exposed by shared libraries linked into unit test
binaries are currently being replaced.
Given the above, providing the alternative implementations of functions
to be overridden in lib/ns/tests/nstest.c is a much simpler alternative
to using the --wrap linker option. Drop the code detecting support for
the latter from configure.ac, simplify the relevant Makefile.am, and
remove lib/ns/tests/wrap.c, updating lib/ns/tests/nstest.c accordingly
(it is harmless for unit tests which are not calling the overridden
functions).
This commit is contained in:
@@ -13,37 +13,17 @@ LDADD += \
|
||||
$(LIBNS_LIBS)
|
||||
|
||||
check_LTLIBRARIES = libnstest.la
|
||||
libnstest_la_SOURCES = nstest.c nstest.h
|
||||
libnstest_la_SOURCES = \
|
||||
nstest.c \
|
||||
nstest.h
|
||||
|
||||
check_PROGRAMS = \
|
||||
listenlist_test \
|
||||
plugin_test
|
||||
|
||||
TESTS = $(check_PROGRAMS)
|
||||
|
||||
if HAVE_LD_WRAP
|
||||
|
||||
check_PROGRAMS += \
|
||||
notify_test \
|
||||
notify_test \
|
||||
plugin_test \
|
||||
query_test
|
||||
|
||||
notify_test_SOURCES = \
|
||||
notify_test.c \
|
||||
wrap.c
|
||||
|
||||
notify_test_LDFLAGS = \
|
||||
$(LDFLAGS) \
|
||||
-Wl,--wrap=isc_nmhandle_attach \
|
||||
-Wl,--wrap=isc_nmhandle_detach
|
||||
|
||||
query_test_SOURCES = \
|
||||
query_test.c \
|
||||
wrap.c
|
||||
|
||||
query_test_LDFLAGS = \
|
||||
$(LDFLAGS) \
|
||||
-Wl,--wrap=isc_nmhandle_detach
|
||||
|
||||
endif
|
||||
TESTS = $(check_PROGRAMS)
|
||||
|
||||
unit-local: check
|
||||
|
||||
|
||||
@@ -78,12 +78,7 @@ atomic_uint_fast32_t client_refs[32];
|
||||
atomic_uintptr_t client_addrs[32];
|
||||
|
||||
void
|
||||
__wrap_isc_nmhandle_attach(isc_nmhandle_t *source, isc_nmhandle_t **targetp);
|
||||
void
|
||||
__wrap_isc_nmhandle_detach(isc_nmhandle_t **handlep);
|
||||
|
||||
void
|
||||
__wrap_isc_nmhandle_attach(isc_nmhandle_t *source, isc_nmhandle_t **targetp) {
|
||||
isc_nmhandle_attach(isc_nmhandle_t *source, isc_nmhandle_t **targetp) {
|
||||
ns_client_t *client = (ns_client_t *)source;
|
||||
int i;
|
||||
|
||||
@@ -102,7 +97,7 @@ __wrap_isc_nmhandle_attach(isc_nmhandle_t *source, isc_nmhandle_t **targetp) {
|
||||
}
|
||||
|
||||
void
|
||||
__wrap_isc_nmhandle_detach(isc_nmhandle_t **handlep) {
|
||||
isc_nmhandle_detach(isc_nmhandle_t **handlep) {
|
||||
isc_nmhandle_t *handle = *handlep;
|
||||
ns_client_t *client = (ns_client_t *)handle;
|
||||
int i;
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
/*! \file */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <isc/mem.h>
|
||||
#include <isc/netmgr.h>
|
||||
#include <isc/util.h>
|
||||
|
||||
#include <dns/view.h>
|
||||
|
||||
#include <ns/client.h>
|
||||
|
||||
/*
|
||||
* This overrides calls to isc_nmhandle_attach/detach(), sending them to
|
||||
* __wrap_isc_nmhandle_attach/detach() instead, when libtool is in use
|
||||
* and LD_WRAP can't be used.
|
||||
*/
|
||||
|
||||
void
|
||||
__wrap_isc_nmhandle_attach(isc_nmhandle_t *source, isc_nmhandle_t **targetp);
|
||||
extern void
|
||||
__wrap_isc_nmhandle_detach(isc_nmhandle_t **handlep);
|
||||
|
||||
void
|
||||
isc_nmhandle_attach(isc_nmhandle_t *source, isc_nmhandle_t **targetp) {
|
||||
__wrap_isc_nmhandle_attach(source, targetp);
|
||||
}
|
||||
|
||||
void
|
||||
isc_nmhandle_detach(isc_nmhandle_t **handlep) {
|
||||
__wrap_isc_nmhandle_detach(handlep);
|
||||
}
|
||||
Reference in New Issue
Block a user