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 ansible-inventory.yml vmcheck-logs/ test-compose-logs/ tests/vmcheck/image.qcow2 testbin_cppflags = $(AM_CPPFLAGS) -I $(srcdir)/src/lib -I $(srcdir)/src/libpriv -I $(srcdir)/libglnx -I $(srcdir)/tests/common testbin_cflags = $(AM_CXXFLAGS) $(rpmostree_bin_common_cflags) testbin_ldadd = librpmostreeinternals.la $(rpmostree_bin_common_libs) noinst_LTLIBRARIES += libtest.la libtest_la_SOURCES = tests/common/libtest.cxx libtest_la_CPPFLAGS = $(testbin_cppflags) libtest_la_CXXFLAGS = $(testbin_cflags) libtest_la_LIBADD = $(testbin_ldadd) tests_check_jsonutil_SOURCES = tests/check/jsonutil.cxx tests_check_jsonutil_CPPFLAGS = $(testbin_cppflags) tests_check_jsonutil_CXXFLAGS = $(testbin_cflags) tests_check_jsonutil_LDADD = $(testbin_ldadd) libtest.la tests_check_postprocess_SOURCES = tests/check/postprocess.cxx tests_check_postprocess_CPPFLAGS = $(testbin_cppflags) tests_check_postprocess_CXXFLAGS = $(testbin_cflags) tests_check_postprocess_LDADD = $(testbin_ldadd) libtest.la tests_check_test_utils_SOURCES = tests/check/test-utils.cxx tests_check_test_utils_CPPFLAGS = $(testbin_cppflags) tests_check_test_utils_CXXFLAGS = $(testbin_cflags) tests_check_test_utils_LDADD = $(testbin_ldadd) libtest.la tests_check_test_sysusers_SOURCES = tests/check/test-sysusers.cxx tests_check_test_sysusers_CPPFLAGS = $(testbin_cppflags) tests_check_test_sysusers_CXXFLAGS = $(testbin_cflags) tests_check_test_sysusers_LDADD = $(testbin_ldadd) libtest.la uninstalled_test_programs = \ tests/check/jsonutil \ tests/check/postprocess \ tests/check/test-utils \ tests/check/test-sysusers \ $(NULL) uninstalled_test_scripts = \ tests/check/test-lib-introspection.sh \ $(NULL) uninstalled_test_extra_programs = \ dbus-run-session \ $(NULL) dbus_run_session_SOURCES = tests/utils/dbus-run-session.c check-local: @echo " *** NOTE ***" @echo " *** NOTE ***" @echo " \"make check\" only runs a subset of rpm-ostree's tests." @echo " Use \"make vmcheck\" to run remaining tests in a VM." @echo " *** NOTE ***" @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 ====="