From c244bbc51586d9e6a9d29b2a4b052b5bc7ca2a79 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 4 May 2022 17:50:44 +0100 Subject: [PATCH] workflows: Install and run GNOME-style installed-tests This is currently only done for the Linux Autotools build. The CMake build does not add a significant amount of extra test coverage, and Github Workflows run in an environment where `cmake` and `sudo cmake` point to different executables, which makes it awkward to install into /usr/local from CMake. Signed-off-by: Simon McVittie --- .github/workflows/main.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 717a158e0..46b97499c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -39,6 +39,7 @@ jobs: sudo apt-get update sudo apt-get install \ autoconf \ + gnome-desktop-testing \ wayland-protocols \ pkg-config \ ninja-build \ @@ -85,7 +86,7 @@ jobs: run: ./test/versioning.sh - name: Configure CMake if: "! matrix.platform.autotools" - run: cmake -B build -DSDL_TEST=ON -DCMAKE_VERBOSE_MAKEFILE=ON ${{ matrix.platform.flags }} + run: cmake -B build -DSDL_TEST=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DSDL_INSTALL_TESTS=ON ${{ matrix.platform.flags }} - name: Build if: "! matrix.platform.autotools" run: cmake --build build/ --config Release @@ -147,5 +148,23 @@ jobs: rm -fr DESTDIR-autotools mkdir DESTDIR-autotools make -j"${parallel}" -C build-autotools install DESTDIR="${curdir}/DESTDIR-autotools" V=1 + make -j"${parallel}" -C build-autotools/test install DESTDIR="${curdir}/DESTDIR-autotools" V=1 ( cd DESTDIR-autotools; find ) | LC_ALL=C sort -u make -j"${parallel}" -C build-autotools dist V=1 + - name: Run installed-tests from Autotools + if: "runner.os == 'Linux' && matrix.platform.autotools" + run: | + set -eu + parallel="$(getconf _NPROCESSORS_ONLN)" + sudo make -j"${parallel}" -C build-autotools install + sudo make -j"${parallel}" -C build-autotools/test install + export SDL_TESTS_QUICK=1 + # We need to set LD_LIBRARY_PATH because it isn't in the default + # linker search path. We don't need to set XDG_DATA_DIRS for + # ginsttest-runner, because /usr/local/share *is* in the default + # search path for that. + env --chdir=/ \ + LD_LIBRARY_PATH=/usr/local/lib \ + SDL_AUDIODRIVER=dummy \ + SDL_VIDEODRIVER=dummy \ + ginsttest-runner --tap SDL2