From: Simon McVittie Date: Mon, 7 Aug 2023 19:16:57 +0000 (+0100) Subject: CI: Run "as-installed" tests with Meson, not just Autotools X-Git-Tag: dbus-1.15.8~13^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b4aa2491923f3239af85596f385c80ae081626e;p=thirdparty%2Fdbus.git CI: Run "as-installed" tests with Meson, not just Autotools Otherwise, we'd lose this test coverage when we remove Autotools. Resolves: https://gitlab.freedesktop.org/dbus/dbus/-/issues/436 Signed-off-by: Simon McVittie --- diff --git a/tools/ci-build.sh b/tools/ci-build.sh index 98afd8aa0..a248cbddd 100755 --- a/tools/ci-build.sh +++ b/tools/ci-build.sh @@ -320,35 +320,6 @@ case "$ci_buildsys" in LD_LIBRARY_PATH=/usr/local/lib ${make} installcheck || \ maybe_fail_tests cat test/test-suite.log || : - - # Re-run them with gnome-desktop-testing. - # Also, one test needs a finite fd limit to be useful, so we - # can set that here. - env LD_LIBRARY_PATH=/usr/local/lib \ - bash -c 'ulimit -S -n 1024; ulimit -H -n 4096; exec "$@"' bash \ - gnome-desktop-testing-runner -d /usr/local/share dbus/ || \ - maybe_fail_tests - - # Some tests benefit from being re-run as non-root, if we were - # not already... - if [ "$(id -u)" = 0 ] && [ "$ci_in_docker" = yes ]; then - sudo -u user \ - env LD_LIBRARY_PATH=/usr/local/lib \ - gnome-desktop-testing-runner -d /usr/local/share \ - dbus/test-dbus-daemon_with_config.test \ - || maybe_fail_tests - fi - - # ... while other tests benefit from being re-run as root, if - # we were not already - if [ "$(id -u)" != 0 ]; then - sudo env LD_LIBRARY_PATH=/usr/local/lib \ - bash -c 'ulimit -S -n 1024; ulimit -H -n 4096; exec "$@"' bash \ - gnome-desktop-testing-runner -d /usr/local/share \ - dbus/test-dbus-daemon_with_config.test \ - dbus/test-uid-permissions_with_config.test || \ - maybe_fail_tests - fi fi ;; @@ -548,6 +519,10 @@ case "$ci_buildsys" in fi fi + # We assume this when we set LD_LIBRARY_PATH for as-installed + # testing, below + set -- "$@" --libdir=lib + # openSUSE's mingw*-meson wrappers are designed for self-contained # package building, so they include --wrap-mode=nodownload. Switch # the wrap mode back, so we can use wraps. @@ -562,6 +537,48 @@ case "$ci_buildsys" in [ "$ci_test" = no ] || meson test --print-errorlogs DESTDIR=DESTDIR meson install ( cd DESTDIR && find . -ls) + + if [ "$ci_sudo" = yes ] && [ "$ci_test" = yes ] && [ "$ci_host" = native ]; then + sudo meson install + fi + ;; +esac + +case "$ci_buildsys" in + (autotools | meson*) + if [ "$ci_sudo" = yes ] && [ "$ci_test" = yes ] && [ "$ci_host" = native ]; then + sudo env LD_LIBRARY_PATH=/usr/local/lib \ + /usr/local/bin/dbus-uuidgen --ensure + + # Run "as-installed" tests with gnome-desktop-testing. + # Also, one test needs a finite fd limit to be useful, so we + # can set that here. + env LD_LIBRARY_PATH=/usr/local/lib \ + bash -c 'ulimit -S -n 1024; ulimit -H -n 4096; exec "$@"' bash \ + gnome-desktop-testing-runner -d /usr/local/share dbus/ || \ + maybe_fail_tests + + # Some tests benefit from being re-run as non-root, if we were + # not already... + if [ "$(id -u)" = 0 ] && [ "$ci_in_docker" = yes ]; then + sudo -u user \ + env LD_LIBRARY_PATH=/usr/local/lib \ + gnome-desktop-testing-runner -d /usr/local/share \ + dbus/test-dbus-daemon_with_config.test \ + || maybe_fail_tests + fi + + # ... while other tests benefit from being re-run as root, if + # we were not already + if [ "$(id -u)" != 0 ]; then + sudo env LD_LIBRARY_PATH=/usr/local/lib \ + bash -c 'ulimit -S -n 1024; ulimit -H -n 4096; exec "$@"' bash \ + gnome-desktop-testing-runner -d /usr/local/share \ + dbus/test-dbus-daemon_with_config.test \ + dbus/test-uid-permissions_with_config.test || \ + maybe_fail_tests + fi + fi ;; esac