Makefile.am 5.18 KB
Newer Older
1 2 3 4
PYCOVERAGE_RUN = @PYCOVERAGE_RUN@
PYTESTS = dhcp6_test.py
EXTRA_DIST = $(PYTESTS)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
5 6 7
# 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.
8 9
LIBRARY_PATH_PLACEHOLDER =
if SET_ENV_LIBRARY_PATH
10
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)
11 12
endif

13 14 15 16
# test using command-line arguments, so use check-local target instead of TESTS
check-local:
	for pytest in $(PYTESTS) ; do \
	echo Running test: $$pytest ; \
17
	$(LIBRARY_PATH_PLACEHOLDER) \
18
	B10_LOCKFILE_DIR_FROM_BUILD=$(abs_top_builddir) \
19
	PYTHONPATH=$(COMMON_PYTHON_PATH):$(abs_top_srcdir)/src/bin:$(abs_top_builddir)/src/bin/bind10:$(abs_top_builddir)/src/lib/util/io/.libs \
20
		$(PYCOVERAGE_RUN) $(abs_srcdir)/$$pytest || exit ; \
21
	done
22 23 24 25 26 27 28 29


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 += $(BOOST_INCLUDES)
AM_CPPFLAGS += -DINSTALL_PROG=\"$(abs_top_srcdir)/install-sh\"

30 31
CLEANFILES  = $(builddir)/interfaces.txt $(builddir)/logger_lockfile
CLEANFILES += $(builddir)/load_marker.txt $(builddir)/unload_marker.txt
32

33
AM_CXXFLAGS = $(B10_CXXFLAGS)
34 35 36 37
if USE_CLANGPP
# Disable unused parameter warning caused by some Boost headers when compiling with clang
AM_CXXFLAGS += -Wno-unused-parameter
endif
38

39
TESTS_ENVIRONMENT = \
40
        $(LIBTOOL) --mode=execute $(VALGRIND_COMMAND)
41

42 43
TESTS =
if HAVE_GTEST
44 45 46 47 48 49 50 51 52 53 54 55 56
# 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.

57 58
nodistdir=$(abs_top_builddir)/src/bin/dhcp6/tests
nodist_LTLIBRARIES = libco1.la libco2.la
59

60 61 62
libco1_la_SOURCES  = callout_library_1.cc callout_library_common.h
libco1_la_CXXFLAGS = $(AM_CXXFLAGS)
libco1_la_CPPFLAGS = $(AM_CPPFLAGS)
63
libco1_la_LDFLAGS = -avoid-version -export-dynamic -module
64 65 66 67

libco2_la_SOURCES  = callout_library_2.cc callout_library_common.h
libco2_la_CXXFLAGS = $(AM_CXXFLAGS)
libco2_la_CPPFLAGS = $(AM_CPPFLAGS)
68
libco2_la_LDFLAGS = -avoid-version -export-dynamic -module
69

70
TESTS += dhcp6_unittests
71
dhcp6_unittests_SOURCES  = dhcp6_unittests.cc
72
dhcp6_unittests_SOURCES += dhcp6_srv_unittest.cc
73
dhcp6_unittests_SOURCES += fqdn_unittest.cc
74
dhcp6_unittests_SOURCES += hooks_unittest.cc
75
dhcp6_unittests_SOURCES += dhcp6_test_utils.cc dhcp6_test_utils.h
76
dhcp6_unittests_SOURCES += ctrl_dhcp6_srv_unittest.cc
77
dhcp6_unittests_SOURCES += config_parser_unittest.cc
78
dhcp6_unittests_SOURCES += marker_file.cc
79 80 81
dhcp6_unittests_SOURCES += ../dhcp6_srv.h ../dhcp6_srv.cc
dhcp6_unittests_SOURCES += ../dhcp6_log.h ../dhcp6_log.cc
dhcp6_unittests_SOURCES += ../ctrl_dhcp6_srv.cc
82
dhcp6_unittests_SOURCES += ../config_parser.cc ../config_parser.h
83
dhcp6_unittests_SOURCES += wireshark.cc
84 85
dhcp6_unittests_SOURCES += dhcp6_client.cc dhcp6_client.h
dhcp6_unittests_SOURCES += rebind_unittest.cc
86 87 88

nodist_dhcp6_unittests_SOURCES  = ../dhcp6_messages.h ../dhcp6_messages.cc
nodist_dhcp6_unittests_SOURCES += marker_file.h test_libraries.h
89 90 91 92

dhcp6_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
dhcp6_unittests_LDFLAGS = $(AM_LDFLAGS) $(GTEST_LDFLAGS)
dhcp6_unittests_LDADD = $(GTEST_LDADD)
93
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/dhcp/tests/libdhcptest.la
94
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/asiolink/libb10-asiolink.la
95 96
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/cc/libb10-cc.la
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/config/libb10-cfgclient.la
97
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/dhcp/libb10-dhcp++.la
98
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/dhcp_ddns/libb10-dhcp_ddns.la
99
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/dhcpsrv/libb10-dhcpsrv.la
100
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/hooks/libb10-hooks.la
101
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/exceptions/libb10-exceptions.la
102 103
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/log/libb10-log.la
dhcp6_unittests_LDADD += $(top_builddir)/src/lib/util/libb10-util.la
104 105 106
endif

noinst_PROGRAMS = $(TESTS)