Makefile.am 6.66 KB
Newer Older
1 2
PYCOVERAGE_RUN = @PYCOVERAGE_RUN@

3
PYTESTS = dhcp4_test.py
4 5 6 7 8 9 10 11
SHTESTS =
# The test of dynamic reconfiguration based on signals will work only
# if we are using file based configuration approach.
if CONFIG_BACKEND_JSON
SHTESTS += dhcp4_reconfigure_test.sh
SHTESTS += dhcp4_sigterm_test.sh
SHTESTS += dhcp4_sigint_test.sh
endif
12 13 14 15 16 17

EXTRA_DIST  = $(PYTESTS)
EXTRA_DIST += dhcp4_reconfigure_test.sh
EXTRA_DIST += dhcp4_sigterm_test.sh
EXTRA_DIST += dhcp4_sigint_test.sh
EXTRA_DIST += dhcp4_shutdown_test.sh
18

Tomek Mrugalski's avatar
Tomek Mrugalski committed
19 20 21
# Explicitly specify paths to dynamic libraries required by loadable python
# modules. That is required on Mac OS systems. Otherwise we will get exception
# about python not being able to load liblog library.
22 23
LIBRARY_PATH_PLACEHOLDER =
if SET_ENV_LIBRARY_PATH
24
LIBRARY_PATH_PLACEHOLDER += $(ENV_LIBRARY_PATH)=$(abs_top_builddir)/src/lib/cryptolink/.libs:$(abs_top_builddir)/src/lib/dns/.libs:$(abs_top_builddir)/src/lib/dns/python/.libs:$(abs_top_builddir)/src/lib/cc/.libs:$(abs_top_builddir)/src/lib/config/.libs:$(abs_top_builddir)/src/lib/log/.libs:$(abs_top_builddir)/src/lib/util/.libs:$(abs_top_builddir)/src/lib/util/threads/.libs:$(abs_top_builddir)/src/lib/exceptions/.libs:$(abs_top_builddir)/src/lib/util/io/.libs:$(abs_top_builddir)/src/lib/datasrc/.libs:$$$(ENV_LIBRARY_PATH)
25 26
endif

27 28 29 30 31
# test using command-line arguments, so use check-local target instead of TESTS
check-local:
	for pytest in $(PYTESTS) ; do \
	echo Running test: $$pytest ; \
	PYTHONPATH=$(COMMON_PYTHON_PATH):$(abs_top_srcdir)/src/bin:$(abs_top_builddir)/src/bin/bind10:$(abs_top_builddir)/src/lib/util/io/.libs \
32
	B10_LOCKFILE_DIR_FROM_BUILD=$(abs_top_builddir) \
33 34 35 36
	$(LIBRARY_PATH_PLACEHOLDER) \
		$(PYCOVERAGE_RUN) $(abs_srcdir)/$$pytest || exit ; \
	done

37 38 39 40 41 42 43
	for shtest in $(SHTESTS) ; do \
	echo Running test: $$shtest ; \
	export B10_LOCKFILE_DIR_FROM_BUILD=$(abs_top_builddir); \
	$(abs_srcdir)/$$shtest || exit ; \
	done


44 45 46 47 48 49 50 51 52 53
AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
AM_CPPFLAGS += -I$(top_builddir)/src/bin # for generated spec_config.h header
AM_CPPFLAGS += -I$(top_srcdir)/src/bin
AM_CPPFLAGS += -I$(top_builddir)/src/lib/cc
AM_CPPFLAGS += -I$(top_srcdir)/src/lib/asiolink
AM_CPPFLAGS += $(BOOST_INCLUDES)
AM_CPPFLAGS += -DTEST_DATA_DIR=\"$(abs_top_srcdir)/src/lib/testutils/testdata\"
AM_CPPFLAGS += -DTEST_DATA_BUILDDIR=\"$(abs_top_builddir)/src/bin/dhcp6/tests\"
AM_CPPFLAGS += -DINSTALL_PROG=\"$(abs_top_srcdir)/install-sh\"

54
CLEANFILES = $(builddir)/interfaces.txt $(builddir)/logger_lockfile
55
CLEANFILES += $(builddir)/load_marker.txt $(builddir)/unload_marker.txt
56
CLEANFILES += *.json *.log
57 58

AM_CXXFLAGS = $(B10_CXXFLAGS)
59 60 61 62
if USE_CLANGPP
# Disable unused parameter warning caused by some Boost headers when compiling with clang
AM_CXXFLAGS += -Wno-unused-parameter
endif
63

64
TESTS_ENVIRONMENT = \
65
        $(LIBTOOL) --mode=execute $(VALGRIND_COMMAND)
66

67 68
TESTS =
if HAVE_GTEST
69 70 71 72 73 74 75 76 77 78 79 80 81
# Build shared libraries for testing. The libtool way to create a shared library
# is to specify "-avoid-version -export-dynamic -module" in the library LDFLAGS
# (see http://www.gnu.org/software/libtool/manual/html_node/Link-mode.html).
# Use of these switches will guarantee that the .so files are created in the
# .libs folder and they can be dlopened.
# Note that the shared libraries with callouts should not be used together with
# the --enable-static-link option. With this option, the bind10 libraries are
# statically linked with the program and if the callout invokes the methods
# which belong to these libraries, the library with the callout will get its
# own copy of the static objects (e.g. logger, ServerHooks) and that will lead
# to unexpected errors. For this reason, the --enable-static-link option is
# ignored for unit tests built here.

82 83 84 85
noinst_LTLIBRARIES = libco1.la libco2.la

# -rpath /nowhere is a hack to trigger libtool to not create a
# convenience archive, resulting in shared modules
86 87 88 89

libco1_la_SOURCES  = callout_library_1.cc callout_library_common.h
libco1_la_CXXFLAGS = $(AM_CXXFLAGS)
libco1_la_CPPFLAGS = $(AM_CPPFLAGS)
90
libco1_la_LDFLAGS = -avoid-version -export-dynamic -module -rpath /nowhere
91 92 93 94

libco2_la_SOURCES  = callout_library_2.cc callout_library_common.h
libco2_la_CXXFLAGS = $(AM_CXXFLAGS)
libco2_la_CPPFLAGS = $(AM_CPPFLAGS)
95
libco2_la_LDFLAGS = -avoid-version -export-dynamic -module -rpath /nowhere
96 97 98

TESTS += dhcp4_unittests

99
dhcp4_unittests_SOURCES = ../dhcp4_srv.h ../dhcp4_srv.cc ../ctrl_dhcp4_srv.cc
100
dhcp4_unittests_SOURCES += ../dhcp4_log.h ../dhcp4_log.cc
101
dhcp4_unittests_SOURCES += ../json_config_parser.cc ../json_config_parser.h
102
dhcp4_unittests_SOURCES += d2_unittest.h d2_unittest.cc
103
dhcp4_unittests_SOURCES += dhcp4_test_utils.h
104 105
dhcp4_unittests_SOURCES += dhcp4_unittests.cc
dhcp4_unittests_SOURCES += dhcp4_srv_unittest.cc
106
dhcp4_unittests_SOURCES += dhcp4_test_utils.cc dhcp4_test_utils.h
107
dhcp4_unittests_SOURCES += direct_client_unittest.cc
108
dhcp4_unittests_SOURCES += wireshark.cc
109
dhcp4_unittests_SOURCES += ctrl_dhcp4_srv_unittest.cc
110
dhcp4_unittests_SOURCES += config_parser_unittest.cc
111
dhcp4_unittests_SOURCES += fqdn_unittest.cc
112
dhcp4_unittests_SOURCES += marker_file.cc
113 114 115 116 117 118 119 120 121 122 123 124 125

if CONFIG_BACKEND_BUNDY
# For Bundy backend, we only need to run the usual tests. There are no
# Bundy-specific tests yet.
dhcp4_unittests_SOURCES += ../bundy_controller.cc
dhcp4_unittests_SOURCES += bundy_controller_unittest.cc
endif

if CONFIG_BACKEND_JSON
dhcp4_unittests_SOURCES += ../kea_controller.cc
dhcp4_unittests_SOURCES += kea_controller_unittest.cc
endif

126
nodist_dhcp4_unittests_SOURCES = ../dhcp4_messages.h ../dhcp4_messages.cc
127
nodist_dhcp4_unittests_SOURCES += marker_file.h test_libraries.h
128 129 130 131

dhcp4_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
dhcp4_unittests_LDFLAGS = $(AM_LDFLAGS) $(GTEST_LDFLAGS)
dhcp4_unittests_LDADD = $(GTEST_LDADD)
132 133 134 135
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libkea-asiolink.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/cc/libkea-cc.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/config/libkea-cfgclient.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libkea-dhcp++.la
136
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dhcp/tests/libdhcptest.la
137 138 139 140 141 142
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dhcp_ddns/libkea-dhcp_ddns.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dhcpsrv/libkea-dhcpsrv.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libkea-exceptions.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/log/libkea-log.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/util/libkea-util.la
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/hooks/libkea-hooks.la
143
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/dhcpsrv/testutils/libdhcpsrvtest.la
Tomek Mrugalski's avatar
Tomek Mrugalski committed
144
dhcp4_unittests_LDADD += $(top_builddir)/src/lib/util/io/libkea-util-io.la
145 146
endif

Tomek Mrugalski's avatar
Tomek Mrugalski committed
147
noinst_EXTRA_DIST = configs-list.txt
148

149
noinst_PROGRAMS = $(TESTS)