fee6d06bf4
For https://pagure.io/atomic-wg/issue/299 we need to make it more convenient to substitute the architecture in an installation context. I plan to use this API inside `rpmostreepayload` in Anaconda, so we can substitute the same value of `${basearch}` we use in treefiles since https://github.com/projectatomic/rpm-ostree/pull/305 Now, you might wonder - why do we need an API wrapping libdnf? It's because libdnf is not API stable yet. We're just exposing a tiny subset. In theory we could use the Python dnf bindings in Anaconda, but things get slightly weird if rpmostreepayload depends on dnf. Perhaps we'll do that down the road, but for now this a small API surface to maintain (forever). This change reworks the internal `varsubst` bits to take a pure `DnfContext`, since we don't want to spin up a whole `RpmOstreeContext` just to do some string substitutions. Closes: #877 Approved by: jlebon
98 lines
3.0 KiB
Plaintext
98 lines
3.0 KiB
Plaintext
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 += ASAN_OPTIONS=detect_leaks=false
|
|
endif
|
|
|
|
testbin_cppflags = $(AM_CPPFLAGS) -I $(srcdir)/src/libpriv -I $(srcdir)/libglnx -I $(srcdir)/tests/common
|
|
testbin_cflags = $(AM_CFLAGS) $(PKGDEP_RPMOSTREE_CFLAGS)
|
|
testbin_ldadd = $(PKGDEP_RPMOSTREE_LIBS) librpmostree-1.la librpmostreepriv.la
|
|
|
|
noinst_LTLIBRARIES += libtest.la
|
|
libtest_la_SOURCES = tests/common/libtest.c
|
|
libtest_la_CPPFLAGS = $(testbin_cppflags)
|
|
libtest_la_CFLAGS = $(testbin_cflags)
|
|
libtest_la_LIBADD = $(testbin_ldadd)
|
|
|
|
tests_check_jsonutil_CPPFLAGS = $(testbin_cppflags)
|
|
tests_check_jsonutil_CFLAGS = $(testbin_cflags)
|
|
tests_check_jsonutil_LDADD = $(testbin_ldadd) libtest.la
|
|
|
|
tests_check_postprocess_CPPFLAGS = $(testbin_cppflags)
|
|
tests_check_postprocess_CFLAGS = $(testbin_cflags)
|
|
tests_check_postprocess_LDADD = $(testbin_ldadd) libtest.la
|
|
|
|
tests_check_test_utils_CPPFLAGS = $(testbin_cppflags)
|
|
tests_check_test_utils_CFLAGS = $(testbin_cflags)
|
|
tests_check_test_utils_LDADD = $(testbin_ldadd) libtest.la
|
|
|
|
uninstalled_test_programs = \
|
|
tests/check/jsonutil \
|
|
tests/check/postprocess \
|
|
tests/check/test-utils \
|
|
$(NULL)
|
|
|
|
uninstalled_test_scripts = \
|
|
tests/check/test-basic.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
|
|
|
|
HOSTS ?= "vmcheck"
|
|
|
|
vmoverlay:
|
|
@if [ -z "$(SKIP_VMOVERLAY)" ]; then \
|
|
rm -rf $(abs_top_srcdir)/insttree; \
|
|
echo -n "$(HOSTS)" | xargs -P 0 -n 1 -d ' ' -I {} \
|
|
env $(BASE_TESTS_ENVIRONMENT) VM={} \
|
|
./tests/vmcheck/overlay.sh; \
|
|
fi
|
|
|
|
vmshell: vmsync
|
|
ssh -F ssh-config vmcheck
|
|
|
|
# set up test environment to somewhat resemble uninstalled tests
|
|
vmcheck: vmoverlay
|
|
@env VMTESTS=1 $(BASE_TESTS_ENVIRONMENT) PYTHONUNBUFFERED=1 \
|
|
tests/vmcheck/multitest.py $(HOSTS)
|
|
|
|
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 ====="
|