BASE_TESTS_ENVIRONMENT = \ builddir=$(abs_builddir) \ topsrcdir=$(abs_top_srcdir) \ commondir=$(abs_top_srcdir)/tests/common AM_TESTS_ENVIRONMENT = \ UNINSTALLEDTESTS=1 \ $(BASE_TESTS_ENVIRONMENT) # we consume libdnf as a submodule, but we may not have installed it yet (and we # don't want it to fall back to the system libhif if it's also installed) AM_TESTS_ENVIRONMENT += \ LD_LIBRARY_PATH=$(abs_builddir)/libdnf-build/libdnf:$$(cd $(top_builddir)/.libs && pwd)$${LD_LIBRARY_PATH:+:$${LD_LIBRARY_PATH}} \ GI_TYPELIB_PATH=$$(cd $(top_builddir) && pwd)$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH} \ $(NULL) if BUILDOPT_ASAN AM_TESTS_ENVIRONMENT += BUILDOPT_ASAN=yes ASAN_OPTIONS=detect_leaks=false endif GITIGNOREFILES += ssh-config vmcheck-logs/ test-compose-logs/ .cosa/ uninstalled_test_scripts = \ $(NULL) uninstalled_test_extra_programs = \ dbus-run-session \ $(NULL) dbus_run_session_SOURCES = tests/utils/dbus-run-session.c check-local: @echo " *** NOTE ***" @echo " \"make check\" only runs unit tests, which have limited coverage currently." @echo " See HACKING.md for more information about VM-based integration testing." @echo " *** NOTE ***" .PHONY: vmsync vmoverlay vmcheck testenv vmsync: @set -e; if [ -z "$(SKIP_INSTALL)" ]; then \ env $(BASE_TESTS_ENVIRONMENT) ./tests/vmcheck/install.sh; \ fi; \ env $(BASE_TESTS_ENVIRONMENT) ./tests/vmcheck/sync.sh vmoverlay: @set -e; \ if [ -z "$(SKIP_INSTALL)" ] && [ -z "$(SKIP_VMOVERLAY)" ]; then \ env $(BASE_TESTS_ENVIRONMENT) ./tests/vmcheck/install.sh; \ fi; \ env $(BASE_TESTS_ENVIRONMENT) ./tests/vmcheck/overlay.sh; # One can run the vmcheck.sh script directly. The make target is useful for local # development so that e.g. we automatically overlay. vmcheck: vmoverlay @tests/vmcheck.sh testenv: @echo "===== ENTERING TESTENV =====" test_tmpdir=$$(mktemp -d test.XXXXXX) && \ cd $$test_tmpdir && \ env $(BASE_TESTS_ENVIRONMENT) PATH=$(abs_builddir):$$PATH TESTENV=1 \ sh ../tests/utils/setup-session.sh bash && \ cd .. && \ rm -rf $$test_tmpdir @echo "===== LEAVING TESTENV ====="