ddbaf19f1e
See https://github.com/projectatomic/rpm-ostree/issues/233 - for RPMs which place files in e.g. `/opt`, we have different behavior in the treecompose case (silently drop it) versus package layering (does the wrong thing). Since the unpacker right now is only used in the layering case, this just ensures we'll get a consistent error there. Closes: #624 Approved by: jlebon
127 lines
4.2 KiB
Plaintext
127 lines
4.2 KiB
Plaintext
include $(top_srcdir)/buildutil/glib-tap.mk
|
|
|
|
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 \
|
|
$(NULL)
|
|
if BUILDOPT_ASAN
|
|
AM_TESTS_ENVIRONMENT += ASAN_OPTIONS=detect_leaks=false
|
|
endif
|
|
|
|
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 \
|
|
tests/common/compose/yum/repo/packages/x86_64/scriptpkg1-1.0-1.x86_64.rpm \
|
|
tests/common/compose/yum/repo/packages/x86_64/nonrootcap-1.0-1.x86_64.rpm \
|
|
tests/common/compose/yum/repo/packages/x86_64/test-post-rofiles-violation-1.0-1.x86_64.rpm \
|
|
tests/common/compose/yum/repo/packages/x86_64/test-opt-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) | sed -e 's,-1\.0.*,,'))))
|
|
|
|
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 = $(AM_CPPFLAGS) -I $(srcdir)/src/libpriv -I $(srcdir)/libglnx
|
|
tests_check_jsonutil_CFLAGS = $(AM_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: vmsync vmoverlay vmshell vmcheck testenv
|
|
|
|
vmsync:
|
|
@env $(BASE_TESTS_ENVIRONMENT) ./tests/vmcheck/sync.sh
|
|
|
|
vmoverlay:
|
|
@if [ -z "$(SKIP_VMOVERLAY)" ]; then \
|
|
env $(BASE_TESTS_ENVIRONMENT) ./tests/vmcheck/overlay.sh; \
|
|
fi
|
|
|
|
vmshell: vmsync
|
|
ssh -F ssh-config vmcheck
|
|
|
|
# set up test environment to somewhat resemble uninstalled tests
|
|
vmcheck: vmoverlay tests/common/compose/yum/repo/repodata/repomd.xml
|
|
@env VMTESTS=1 $(BASE_TESTS_ENVIRONMENT) \
|
|
sh tests/vmcheck/test.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 ====="
|