From 72d9524536a34273210fab434d1c14f212ffd937 Mon Sep 17 00:00:00 2001
From: Simon McVittie <[EMAIL REDACTED]>
Date: Fri, 20 May 2022 15:23:02 +0100
Subject: [PATCH] workflows: Run the automated test for CMake builds
We can't use dlopen() for the dependencies, because they won't be in
the search path at runtime, so link them statically here.
Signed-off-by: Simon McVittie <smcv@collabora.com>
---
.github/workflows/main.yml | 41 ++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 0aaa49d..e74c9ee 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -94,7 +94,10 @@ jobs:
cmake -B build \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
+ -DSDL2IMAGE_DEPS_SHARED=OFF \
-DSDL2IMAGE_SAMPLES=ON \
+ -DSDL2IMAGE_TESTS=ON \
+ -DSDL2IMAGE_TESTS_INSTALL=ON \
-DSDL2IMAGE_JXL=ON \
-DSDL2IMAGE_TIF=ON \
-DSDL2IMAGE_WEBP=ON \
@@ -102,6 +105,34 @@ jobs:
- name: Build
if: "matrix.platform.cmake"
run: cmake --build build/ --config Release --verbose
+ - name: Run build-time tests
+ if: "matrix.platform.cmake"
+ run: |
+ set -eu
+
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_AVIF=0
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_BMP=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_CUR=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_GIF=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_ICO=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_JPG=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_JXL=0
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_LBM=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_PCX=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_PNG=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_PNM=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_QOI=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_SVG=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_TGA=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_TIF=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_WEBP=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_XPM=1
+ export SDL_IMAGE_TEST_REQUIRE_LOAD_XV=1
+
+ export SDL_IMAGE_TEST_REQUIRE_SAVE_JPG=1
+ export SDL_IMAGE_TEST_REQUIRE_SAVE_PNG=1
+
+ ctest -VV --test-dir build/test
- name: Install
if: "matrix.platform.shell == 'sh' && matrix.platform.cmake"
run: |
@@ -109,6 +140,16 @@ jobs:
rm -fr DESTDIR-cmake
DESTDIR=$(pwd)/DESTDIR-cmake cmake --install build/ --config Release
find DESTDIR-cmake | LC_ALL=C sort -u
+ - name: Upload artifacts
+ if: "failure() && matrix.platform.shell == 'sh' && matrix.platform.cmake"
+ uses: actions/upload-artifact@v3
+ with:
+ name: "${{ matrix.platform.name }} artifacts"
+ path: |
+ build/test/*.bmp
+ build/test/*.jpg
+ build/test/*.png
+ if-no-files-found: ignore
- name: Configure Autotools
if: "! matrix.platform.cmake"