NetworkManager/src/tests/Makefile.am
Thomas Haller 4c2410bc92 platform: extend NMIPConfigSource to preserve the rtm_protocol field
For addresses (NMPlatformIPAddress) the @addr_source field is ignored
on a platform level. That is, all addresses inside the platform cache
have this value set to NM_IP_CONFIG_SOURCE_KERNEL. Maybe, for that reason,
the source should not be a part of the NMPlatformIPAddress structure, but
it is convenient for users to piggy back the source inside the platform
address structure.

For routes, the source is stored in NMPlatformIPRoute's @rt_source
field. When adding a route to kernel, we set the @rtm_protocol of the
route depending on the source. However, we want to map different source
values to the same protocol value.

On the other hand, when kernel sends us a route that gets put inside
the cache, we must preserve the protocol value and must not map
different protocol values to the same source.
The reason is, that a user can add two routes that only differ by
@rtm_protocol. In that sense, the @rtm_protocol fields is part of the
unique ID of a kernel route, and thus different values must map to
different sources.

Fix this, by extending the range of NMIPConfigSource to contain
a range of protocol fields.
2016-04-28 12:53:21 +02:00

188 lines
4.1 KiB
Makefile

SUBDIRS = config
@GNOME_CODE_COVERAGE_RULES@
AM_CPPFLAGS = \
-I$(top_srcdir)/shared \
-I$(top_builddir)/shared \
-I$(top_srcdir)/libnm-core \
-I$(top_builddir)/libnm-core \
-I$(top_srcdir)/src/platform \
-I$(top_srcdir)/src/dhcp-manager \
-I$(top_srcdir)/src/devices \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
-DG_LOG_DOMAIN=\""NetworkManager"\" \
-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
$(GLIB_CFLAGS) \
$(CODE_COVERAGE_CFLAGS)
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
noinst_PROGRAMS = \
test-general \
test-general-with-expect \
test-ip4-config \
test-ip6-config \
test-route-manager-linux \
test-route-manager-fake \
test-dcb \
test-systemd \
test-resolvconf-capture \
test-wired-defname \
test-utils
####### ip4 config test #######
test_ip4_config_SOURCES = \
test-ip4-config.c
test_ip4_config_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### ip6 config test #######
test_ip6_config_SOURCES = \
test-ip6-config.c
test_ip6_config_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### route manager test #######
test_route_manager_fake_CPPFLAGS = \
$(AM_CPPFLAGS) \
$(GUDEV_CFLAGS) \
-I$(top_srcdir)/src/platform/tests \
-DSETUP=nm_fake_platform_setup \
-DKERNEL_HACKS=0
test_route_manager_fake_SOURCES = \
$(top_srcdir)/src/platform/tests/test-common.c \
test-route-manager.c
test_route_manager_fake_LDADD = \
$(top_builddir)/src/libNetworkManager.la
test_route_manager_linux_SOURCES = \
$(top_srcdir)/src/platform/tests/test-common.c \
test-route-manager.c
test_route_manager_linux_CPPFLAGS = \
$(AM_CPPFLAGS) \
$(GUDEV_CFLAGS) \
-I$(top_srcdir)/src/platform/tests \
-DSETUP=nm_linux_platform_setup \
-DKERNEL_HACKS=1
test_route_manager_linux_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### DCB test #######
test_dcb_SOURCES = \
test-dcb.c
test_dcb_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### resolv.conf capture test #######
test_resolvconf_capture_SOURCES = \
test-resolvconf-capture.c
test_resolvconf_capture_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### general test #######
test_general_SOURCES = \
test-general.c
test_general_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### general-with-expect test #######
test_general_with_expect_SOURCES = \
test-general-with-expect.c
test_general_with_expect_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### wired defname test #######
test_wired_defname_SOURCES = \
test-wired-defname.c
test_wired_defname_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### systemd test #######
test_systemd_CFLAGS = \
"-I$(srcdir)/../" \
"-I$(srcdir)/../platform" \
"-I$(srcdir)/../systemd" \
"-I$(srcdir)/../systemd/src/systemd"
test_systemd_SOURCES = \
test-systemd.c
test_systemd_LDADD = \
$(top_builddir)/src/libNetworkManager-base.la \
$(top_builddir)/src/libsystemd-nm.la
####### utils test #######
test_utils_SOURCES = \
test-utils.c
test_utils_DEPENDENCIES = \
$(top_srcdir)/src/NetworkManagerUtils.c
test_utils_CPPFLAGS = \
$(AM_CPPFLAGS) \
-DPREFIX=\"/nonexistent\" \
-DLOCALSTATEDIR=\"$(localstatedir)\" \
-DNMSTATEDIR=\"/nonsense\"
test_utils_LDADD = \
$(top_builddir)/src/libNetworkManager.la
####### secret agent interface test #######
EXTRA_DIST = test-secret-agent.py
###########################################
@VALGRIND_RULES@
TESTS = \
test-ip4-config \
test-ip6-config \
test-route-manager-fake \
test-route-manager-linux \
test-dcb \
test-resolvconf-capture \
test-general \
test-general-with-expect \
test-systemd \
test-wired-defname \
test-utils
if ENABLE_TESTS
check-local:
@for t in bond bridge ethernet infiniband ip_tunnel macvlan tun veth vlan vxlan; do \
# Ensure the device subclass factory registration constructors exist \
# which could inadvertently break if src/Makefile.am gets changed \
if ! LC_ALL=C nm $(top_builddir)/src/NetworkManager | LC_ALL=C grep -q "register_device_factory_internal_$$t" ; then \
echo "Testing device factory symbols... FAILED" ; \
exit 1 ; \
fi \
done
@echo "Testing device factory symbols... PASSED"
endif