4fc6dd8b97
For the regular hack/build/test cycles, creating a new deployment each time becomes overkill. We add a new `make vmoverlay` target which directly overlays the newly built binaries on an unlocked system. We also make rsync smarter so that we can afford to not `make clean` everytime while still allowing the host's repo to be fully configured. Closes: #360 Approved by: cgwalters
124 lines
3.9 KiB
Plaintext
124 lines
3.9 KiB
Plaintext
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 ====="
|