include $(top_srcdir)/buildutil/glib-tap.mk AM_TESTS_ENVIRONMENT = \ UNINSTALLEDTESTS=1 \ builddir=$(abs_builddir) \ topsrcdir=$(abs_top_srcdir) \ commondir=$(abs_top_srcdir)/tests/common CLEANFILES += \ tests/common/compose/yum/repo \ tests/common/compose/test-repo.repo \ $(NULL) testpackages = \ tests/common/compose/yum/repo/packages/x86_64/empty-1.0-1.x86_64.rpm \ tests/common/compose/yum/repo/packages/x86_64/foo-1.0-1.x86_64.rpm \ tests/common/compose/yum/repo/packages/x86_64/bar-1.0-1.x86_64.rpm \ $(NULL) # Create a rule for each testpkg with their respective spec file as dep. # The static pattern feature is almost a fit for this, but does not allow string # substitutions and wildcards in the patterns to allow rpm-filename --> # spec-filename without also encoding the arch, release, and rev. define testpkgbuild_template = $(1): tests/common/compose/yum/$(2).spec (cd tests/common/compose/yum && \ rm -rf .build && \ rpmbuild -ba $$$$(basename $$<) \ --define "_sourcedir $$$$PWD" \ --define "_specdir $$$$PWD" \ --define "_builddir $$$$PWD/.build" \ --define "_srcrpmdir $$$$PWD" \ --define "_rpmdir $$$$PWD/repo/packages" \ --define "_buildrootdir $$$$PWD" && \ rm -rf .build && \ rm -f *.src.rpm) endef $(foreach pkg,$(testpackages),$(eval $(call testpkgbuild_template,$(pkg),$(shell basename $(pkg) | cut -d- -f1)))) tests/common/compose/yum/repo/repodata/repomd.xml: $(testpackages) (cd tests/common/compose/yum/repo && \ createrepo_c --no-database $$PWD) tests/common/compose/test-repo.repo: tests/common/compose/test-repo.repo.in \ tests/common/compose/yum/repo/repodata/repomd.xml cat $< | sed -e "s|%WHERE%|$(abs_top_srcdir)|" > $@ CLEANFILES += \ tests/common/compose/test-repo-local.repo \ $(NULL) tests_check_jsonutil_CPPFLAGS = -I $(srcdir)/src/libpriv tests_check_jsonutil_CFLAGS = $(PKGDEP_RPMOSTREE_CFLAGS) tests_check_jsonutil_LDADD = $(PKGDEP_RPMOSTREE_LIBS) librpmostreepriv.la tests/check/test-compose.sh: tests/common/compose/test-repo.repo tests/check/test-ucontainer.sh: tests/common/compose/test-repo.repo uninstalled_test_programs = \ tests/check/jsonutil \ $(NULL) uninstalled_test_scripts = \ tests/check/test-basic.sh \ tests/check/test-compose.sh \ tests/check/test-ucontainer.sh \ $(NULL) uninstalled_test_extra_programs = dbus-run-session 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: vmbuild vmshell vmcheck testenv vmbuild: @if [ -z "$(SKIP_VMBUILD)" ]; then \ vagrant up && \ ( [ -z "$(VMCLEAN)" ] || vagrant ssh -c "rm -rf sync" ) && \ vagrant rsync && \ vagrant ssh -c "cd sync/vagrant && \ make install VERSION=$$(git describe)" && \ ( vagrant ssh -c "sudo systemctl reboot" || : ) && \ sleep 2; \ fi vmoverlay: vagrant up && \ ( [ -z "$(VMCLEAN)" ] || vagrant ssh -c "rm -rf sync" ) && \ vagrant rsync && \ vagrant ssh -c "cd sync/vagrant && make ofsinstall" && \ vagrant ssh -c "systemctl daemon-reload && \ systemctl restart rpm-ostreed" vmshell: vmbuild vagrant ssh # set up test environment to somewhat resemble uninstalled tests vmcheck: vmbuild tests/common/compose/yum/repo/repodata/repomd.xml @env VMTESTS=1 \ builddir="$(abs_builddir)" \ topsrcdir="$(abs_top_srcdir)" \ commondir="$(abs_top_srcdir)/tests/common" \ sh tests/vmcheck/test.sh testenv: @echo "===== ENTERING TESTENV =====" test_tmpdir=$$(mktemp -d test.XXXXXX) && \ cd $$test_tmpdir && \ env $(AM_TESTS_ENVIRONMENT) TESTENV=1 \ sh ../tests/utils/setup-session.sh bash && \ cd .. && \ rm -rf $$test_tmpdir @echo "===== LEAVING TESTENV ====="