+
+# - NITSI tests ----------------------------------------------------------------
+
+# Files for the virtual environment
+VIRTUAL_ENVIRONMENT_FILES = \
+ test/nitsi/virtual-environment/basic/machines/alice/machine.xml \
+ test/nitsi/virtual-environment/basic/machines/alice/snapshot.xml \
+ test/nitsi/virtual-environment/basic/machines/bob/machine.xml \
+ test/nitsi/virtual-environment/basic/machines/bob/snapshot.xml \
+ test/nitsi/virtual-environment/basic/network/network1/network.xml \
+ test/nitsi/virtual-environment/basic/network/network2/network.xml \
+ test/nitsi/virtual-environment/basic/network/network3/network.xml \
+ test/nitsi/virtual-environment/basic/network/network4/network.xml \
+ test/nitsi/virtual-environment/basic/settings
+
+EXTRA_DIST += \
+ test/nitsi/virtual-environment/basic/machines/alice/machine.xml.in \
+ test/nitsi/virtual-environment/basic/machines/alice/snapshot.xml.in \
+ test/nitsi/virtual-environment/basic/machines/bob/machine.xml.in \
+ test/nitsi/virtual-environment/basic/machines/bob/snapshot.xml.in \
+ test/nitsi/virtual-environment/basic/settings.in
+
+CLEANFILES += \
+ test/nitsi/virtual-environment/basic/machines/alice/machine.xml \
+ test/nitsi/virtual-environment/basic/machines/alice/snapshot.xml \
+ test/nitsi/virtual-environment/basic/machines/bob/machine.xml \
+ test/nitsi/virtual-environment/basic/machines/bob/snapshot.xml \
+ test/nitsi/virtual-environment/basic/settings
+
+# Virtual Machine Images
+VIRTUAL_ENVIRONMENT_IMAGES = \
+ $(VIRTUAL_ENVIRONMENT_IMAGES_DIR)/ipfire-alice-2.qcow2 \
+ $(VIRTUAL_ENVIRONMENT_IMAGES_DIR)/ipfire-bob.qcow2
+
+DISTCLEANFILES += \
+ $(VIRTUAL_ENVIRONMENT_IMAGES)
+
+VIRTUAL_ENVIRONMENT_IMAGES_DIR = $(abs_builddir)/test/nitsi/virtual-environment/.images
+VIRTUAL_ENVIRONMENT_IMAGES_DOWNLOAD_URL = \
+ https://people.ipfire.org/~jschlag/nitsi-ipfire/virtual-environment/basic/
+
+NITSI_INCLUDE_RECIPES = \
+ test/nitsi/include/setup
+
+EXTRA_DIST += \
+ test/nitsi/include/setup.in
+
+CLEANFILES += \
+ test/nitsi/include/setup
+
+NITSI_TESTS = \
+ test/nitsi/test/make-check \
+ test/nitsi/test/phase1 \
+ test/nitsi/test/pppoe \
+ test/nitsi/test/raw-device-get-by-mac \
+ test/nitsi/test/zone-new-bridge \
+ test/nitsi/test/zone-port-attach-bridge \
+ test/nitsi/test/zone/ip-tunnel/gre6 \
+ test/nitsi/test/zone/ip-tunnel/gre4 \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv4-via-ipv4 \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv4-via-ipv6 \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv6-via-ipv4 \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv6-via-ipv6 \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv64-via-ipv4 \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv64-via-ipv6 \
+ test/nitsi/test/port-vlan
+
+EXTRA_DIST += \
+ test/nitsi/test/settings.in \
+ test/nitsi/test/make-check/recipe.in \
+ test/nitsi/test/make-check/settings.in \
+ test/nitsi/test/raw-device-get-by-mac/recipe \
+ test/nitsi/test/raw-device-get-by-mac/settings.in \
+ test/nitsi/test/zone-new-bridge/recipe \
+ test/nitsi/test/zone-new-bridge/settings.in \
+ test/nitsi/test/zone-port-attach-bridge/recipe \
+ test/nitsi/test/zone-port-attach-bridge/settings.in \
+ test/nitsi/test/zone/ip-tunnel/gre6/recipe \
+ test/nitsi/test/zone/ip-tunnel/gre6/settings \
+ test/nitsi/test/zone/ip-tunnel/gre4/recipe \
+ test/nitsi/test/zone/ip-tunnel/gre4/settings \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv4-via-ipv4/recipe \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv4-via-ipv4/settings \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv4-via-ipv6/recipe \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv4-via-ipv6/settings \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv6-via-ipv4/recipe \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv6-via-ipv4/settings \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv6-via-ipv6/recipe \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv6-via-ipv6/settings \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv64-via-ipv4/recipe \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv64-via-ipv4/settings \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv64-via-ipv6/recipe \
+ test/nitsi/test/vpn/ipsec/n2n/vti/ipv64-via-ipv6/settings \
+ test/nitsi/test/port-vlan/recipe \
+ test/nitsi/test/port-vlan/settings
+
+CLEANFILES += \
+ test/nitsi/test/settings \
+ test/nitsi/test/make-check/recipe \
+ test/nitsi/test/make-check/settings \
+ test/nitsi/test/raw-device-get-by-mac/settings \
+ test/nitsi/test/zone-new-bridge/settings \
+ test/nitsi/test/zone-port-attach-bridge/settings
+
+NITSI_ENVIRONMENT =
+
+.PHONY: $(NITSI_TESTS)
+$(NITSI_TESTS): % : dist %/recipe %/settings test/nitsi/test/settings $(VIRTUAL_ENVIRONMENT_FILES) $(VIRTUAL_ENVIRONMENT_IMAGES) $(NITSI_INCLUDE_RECIPES)
+ $(AM_V_NITSI) $(NITSI_ENVIRONMENT) $(NITSI) --log-level error run-test -d $@ \
+ --default-settings $(abs_builddir)/test/nitsi/test/settings --interactive-error-handling
+
+.PHONY: nitsi
+nitsi: $(NITSI_TESTS)
+
+# Downloads a virtual image file and extracts it
+$(VIRTUAL_ENVIRONMENT_IMAGES):
+ $(AM_V_DOWNLOAD)$(MKDIR_P) $(dir $@) && \
+ $(WGET) -qO - $(VIRTUAL_ENVIRONMENT_IMAGES_DOWNLOAD_URL)/$(notdir $@).xz | xz -qd > $@