Add --enable-installed-tests=exclusive, fix installed case
The major reason to do this is that running tests *both* installed and uninstalled in our CI is a mostly pointless waste of time. Particularly given we have a few expensive tests. We *do* have tests that only run uninstalled (since they require the source code) like `test-symbols.sh`. Hence, add `--enable-installed-tests=exclusive` to mean *only* do installed for most tests. We'll still have uninstalled coverage via the Travis/Debian configs, and we could perhaps do another build with a subset of uninstalled tests, but I'm not really concerned about it. I'd like to do a renewed push for the InstalledTests model since I feel it's just fundamentally better. (`g-d-t-r` kind of sucks, but then so does the automake runner). Also while we're here - fix the CI to use the correct context, which started this mess. Closes: #837 Approved by: dbnicholson
This commit is contained in:
parent
fa4e4bf4df
commit
c7efe01520
|
|
@ -23,14 +23,16 @@ build:
|
||||||
config-opts: >
|
config-opts: >
|
||||||
--prefix=/usr
|
--prefix=/usr
|
||||||
--libdir=/usr/lib64
|
--libdir=/usr/lib64
|
||||||
--enable-installed-tests
|
--enable-installed-tests=exclusive
|
||||||
--enable-gtk-doc
|
--enable-gtk-doc
|
||||||
|
|
||||||
|
# The g-d-t-r timeout is for test-pull-many.sh; if tweaking this,
|
||||||
|
# also be sure to change the other cases below
|
||||||
tests:
|
tests:
|
||||||
- make syntax-check
|
- make syntax-check
|
||||||
- ./tests/ci-commitmessage-submodules.sh
|
- ./tests/ci-commitmessage-submodules.sh
|
||||||
- make check
|
- make check
|
||||||
- gnome-desktop-testing-runner -p 0 ostree
|
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
||||||
|
|
||||||
timeout: 30m
|
timeout: 30m
|
||||||
|
|
||||||
|
|
@ -65,7 +67,6 @@ build:
|
||||||
config-opts: >
|
config-opts: >
|
||||||
--prefix=/usr
|
--prefix=/usr
|
||||||
--libdir=/usr/lib64
|
--libdir=/usr/lib64
|
||||||
--enable-installed-tests
|
|
||||||
--enable-gtk-doc
|
--enable-gtk-doc
|
||||||
--enable-rust
|
--enable-rust
|
||||||
|
|
||||||
|
|
@ -90,14 +91,14 @@ build:
|
||||||
config-opts: >
|
config-opts: >
|
||||||
--prefix=/usr
|
--prefix=/usr
|
||||||
--libdir=/usr/lib64
|
--libdir=/usr/lib64
|
||||||
--enable-installed-tests
|
--enable-installed-tests=exclusive
|
||||||
--enable-gtk-doc
|
--enable-gtk-doc
|
||||||
--with-curl
|
--with-curl
|
||||||
--with-openssl
|
--with-openssl
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
- make check
|
- make check
|
||||||
- gnome-desktop-testing-runner -p 0 ostree
|
- /bin/sh -c 'gnome-desktop-testing-runner -p 0 --timeout $((10 * 60)) libostree/'
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
- test-suite.log
|
- test-suite.log
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,16 @@ endif
|
||||||
uninstalled_test_data = tests/ostree-symlink-stamp tests/ostree-prepare-root-symlink-stamp \
|
uninstalled_test_data = tests/ostree-symlink-stamp tests/ostree-prepare-root-symlink-stamp \
|
||||||
tests/ostree-remount-symlink-stamp tests/rofiles-fuse-symlink-stamp
|
tests/ostree-remount-symlink-stamp tests/rofiles-fuse-symlink-stamp
|
||||||
|
|
||||||
dist_uninstalled_test_scripts = tests/test-symbols.sh
|
dist_uninstalled_test_scripts = tests/test-symbols.sh tests/coccinelle.sh
|
||||||
|
|
||||||
dist_test_scripts = \
|
# This logic implements ENABLE_INSTALLED_TESTS_EXCLUSIVE; see below.
|
||||||
|
# The goal here if installed tests are enabled, we explicitly make the
|
||||||
|
# tests *only* run installed, to avoid having to run them twice in CI.
|
||||||
|
# This overrides the glib-tap.mk emphasis on doing both, if we'd
|
||||||
|
# used e.g. `dist_test_scripts`.
|
||||||
|
dist_test_scripts = $(NULL)
|
||||||
|
test_programs = $(NULL)
|
||||||
|
_installed_or_uninstalled_test_scripts = \
|
||||||
tests/test-basic.sh \
|
tests/test-basic.sh \
|
||||||
tests/test-basic-user.sh \
|
tests/test-basic-user.sh \
|
||||||
tests/test-basic-user-only.sh \
|
tests/test-basic-user-only.sh \
|
||||||
|
|
@ -102,23 +109,22 @@ dist_test_scripts = \
|
||||||
tests/test-pull-contenturl.sh \
|
tests/test-pull-contenturl.sh \
|
||||||
tests/test-pull-mirrorlist.sh \
|
tests/test-pull-mirrorlist.sh \
|
||||||
tests/test-summary-view.sh \
|
tests/test-summary-view.sh \
|
||||||
tests/coccinelle.sh \
|
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
if BUILDOPT_FUSE
|
if BUILDOPT_FUSE
|
||||||
dist_test_scripts += tests/test-rofiles-fuse.sh
|
_installed_or_uninstalled_test_scripts += tests/test-rofiles-fuse.sh
|
||||||
else
|
else
|
||||||
EXTRA_DIST += tests/test-rofiles-fuse.sh
|
EXTRA_DIST += tests/test-rofiles-fuse.sh
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if USE_LIBSOUP
|
if USE_LIBSOUP
|
||||||
dist_test_scripts += tests/test-remote-cookies.sh
|
_installed_or_uninstalled_test_scripts += tests/test-remote-cookies.sh
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# These call into gjs scripts
|
# These call into gjs scripts
|
||||||
js_tests = tests/test-corruption.sh tests/test-pull-corruption.sh
|
js_tests = tests/test-corruption.sh tests/test-pull-corruption.sh
|
||||||
if BUILDOPT_GJS
|
if BUILDOPT_GJS
|
||||||
dist_test_scripts += $(js_tests)
|
_installed_or_uninstalled_test_scripts += $(js_tests)
|
||||||
else
|
else
|
||||||
EXTRA_DIST += $(js_tests)
|
EXTRA_DIST += $(js_tests)
|
||||||
endif
|
endif
|
||||||
|
|
@ -182,7 +188,7 @@ if !ENABLE_INSTALLED_TESTS
|
||||||
libreaddir_rand_la_LDFLAGS += -rpath $(abs_builddir)
|
libreaddir_rand_la_LDFLAGS += -rpath $(abs_builddir)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
test_programs = tests/test-varint tests/test-ot-unix-utils tests/test-bsdiff tests/test-mutable-tree \
|
_installed_or_uninstalled_test_programs = tests/test-varint tests/test-ot-unix-utils tests/test-bsdiff tests/test-mutable-tree \
|
||||||
tests/test-keyfile-utils tests/test-ot-opt-utils tests/test-ot-tool-util \
|
tests/test-keyfile-utils tests/test-ot-opt-utils tests/test-ot-tool-util \
|
||||||
tests/test-gpg-verify-result tests/test-checksum tests/test-lzma tests/test-rollsum \
|
tests/test-gpg-verify-result tests/test-checksum tests/test-lzma tests/test-rollsum \
|
||||||
tests/test-basic-c tests/test-sysroot-c tests/test-pull-c
|
tests/test-basic-c tests/test-sysroot-c tests/test-pull-c
|
||||||
|
|
@ -191,7 +197,7 @@ test_programs = tests/test-varint tests/test-ot-unix-utils tests/test-bsdiff tes
|
||||||
noinst_PROGRAMS += tests/test-rollsum-cli
|
noinst_PROGRAMS += tests/test-rollsum-cli
|
||||||
|
|
||||||
if USE_LIBARCHIVE
|
if USE_LIBARCHIVE
|
||||||
test_programs += tests/test-libarchive-import
|
_installed_or_uninstalled_test_programs += tests/test-libarchive-import
|
||||||
endif
|
endif
|
||||||
|
|
||||||
common_tests_cflags = $(ostree_bin_shared_cflags) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I$(srcdir)/libglnx
|
common_tests_cflags = $(ostree_bin_shared_cflags) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I$(srcdir)/libglnx
|
||||||
|
|
@ -288,6 +294,17 @@ tests/%-symlink-stamp: % Makefile
|
||||||
ln -sf "$${real_bin}" tests/$*; \
|
ln -sf "$${real_bin}" tests/$*; \
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
|
# See above comment on binding the tests to be either installed or not.
|
||||||
|
if ENABLE_INSTALLED_TESTS_EXCLUSIVE
|
||||||
|
dist_installed_test_scripts = $(_installed_or_uninstalled_test_scripts)
|
||||||
|
installed_test_programs = $(_installed_or_uninstalled_test_programs)
|
||||||
|
check-local:
|
||||||
|
echo "NOTE: Exclusive installed tests are enabled; to run them, make install, then: gnome-desktop-testing-runner -p 0 libostree/"
|
||||||
|
else
|
||||||
|
dist_test_scripts += $(_installed_or_uninstalled_test_scripts)
|
||||||
|
test_programs += $(_installed_or_uninstalled_test_programs)
|
||||||
|
endif
|
||||||
|
|
||||||
# Unfortunately the glib test data APIs don't actually handle
|
# Unfortunately the glib test data APIs don't actually handle
|
||||||
# non-recursive Automake, so we change our code to canonically look
|
# non-recursive Automake, so we change our code to canonically look
|
||||||
# for tests/ which is just a symlink when installed.
|
# for tests/ which is just a symlink when installed.
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,21 @@
|
||||||
dnl GLIB_TESTS
|
dnl GLIB_TESTS
|
||||||
dnl
|
dnl NOTE: this file has been modified from upstream glib; see
|
||||||
|
dnl https://github.com/ostreedev/ostree/pull/837
|
||||||
|
|
||||||
AC_DEFUN([GLIB_TESTS],
|
AC_DEFUN([GLIB_TESTS],
|
||||||
[
|
[
|
||||||
AC_ARG_ENABLE(installed-tests,
|
AC_ARG_ENABLE(installed-tests,
|
||||||
AS_HELP_STRING([--enable-installed-tests],
|
AS_HELP_STRING([--enable-installed-tests],
|
||||||
[Enable installation of some test cases]),
|
[Enable installation of some test cases]),
|
||||||
[case ${enableval} in
|
[enable_installed_tests=${enableval};
|
||||||
|
case ${enableval} in
|
||||||
yes) ENABLE_INSTALLED_TESTS="1" ;;
|
yes) ENABLE_INSTALLED_TESTS="1" ;;
|
||||||
|
exclusive) ENABLE_INSTALLED_TESTS="1"; ENABLE_INSTALLED_TESTS_EXCLUSIVE=1 ;;
|
||||||
no) ENABLE_INSTALLED_TESTS="" ;;
|
no) ENABLE_INSTALLED_TESTS="" ;;
|
||||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-installed-tests]) ;;
|
*) AC_MSG_ERROR([bad value ${enableval} for --enable-installed-tests]) ;;
|
||||||
esac])
|
esac])
|
||||||
AM_CONDITIONAL([ENABLE_INSTALLED_TESTS], test "$ENABLE_INSTALLED_TESTS" = "1")
|
AM_CONDITIONAL([ENABLE_INSTALLED_TESTS], test "$ENABLE_INSTALLED_TESTS" = "1")
|
||||||
|
AM_CONDITIONAL([ENABLE_INSTALLED_TESTS_EXCLUSIVE], test "$ENABLE_INSTALLED_TESTS_EXCLUSIVE" = "1")
|
||||||
AC_ARG_ENABLE(always-build-tests,
|
AC_ARG_ENABLE(always-build-tests,
|
||||||
AS_HELP_STRING([--enable-always-build-tests],
|
AS_HELP_STRING([--enable-always-build-tests],
|
||||||
[Enable always building tests during 'make all']),
|
[Enable always building tests during 'make all']),
|
||||||
|
|
|
||||||
|
|
@ -457,6 +457,7 @@ echo "
|
||||||
wrpseudo-compat: $enable_wrpseudo_compat
|
wrpseudo-compat: $enable_wrpseudo_compat
|
||||||
man pages (xsltproc): $enable_man
|
man pages (xsltproc): $enable_man
|
||||||
api docs (gtk-doc): $enable_gtk_doc
|
api docs (gtk-doc): $enable_gtk_doc
|
||||||
|
installed tests: $enable_installed_tests
|
||||||
gjs-based tests: $have_gjs
|
gjs-based tests: $have_gjs
|
||||||
dracut: $with_dracut
|
dracut: $with_dracut
|
||||||
mkinitcpio: $with_mkinitcpio
|
mkinitcpio: $with_mkinitcpio
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,6 @@ make="make -j${ci_parallel} V=1 VERBOSE=1"
|
||||||
|
|
||||||
../configure \
|
../configure \
|
||||||
--enable-always-build-tests \
|
--enable-always-build-tests \
|
||||||
--enable-installed-tests \
|
|
||||||
${ci_configopts}
|
${ci_configopts}
|
||||||
"$@"
|
"$@"
|
||||||
|
|
||||||
|
|
@ -106,12 +105,6 @@ if [ "$ci_sudo" = yes ] && [ "$ci_test" = yes ]; then
|
||||||
${make} installcheck || \
|
${make} installcheck || \
|
||||||
maybe_fail_tests
|
maybe_fail_tests
|
||||||
cat test/test-suite.log || :
|
cat test/test-suite.log || :
|
||||||
|
|
||||||
env \
|
|
||||||
LD_LIBRARY_PATH=/usr/local/lib \
|
|
||||||
GI_TYPELIB_PATH=/usr/local/lib/girepository-1.0 \
|
|
||||||
gnome-desktop-testing-runner -d /usr/local/share ostree/ || \
|
|
||||||
maybe_fail_tests
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# vim:set sw=4 sts=4 et:
|
# vim:set sw=4 sts=4 et:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue