SDL: Build tests for all CMake platforms on CI

From 12f9bcd2f4317427b928c443f118a42dee6896b7 Mon Sep 17 00:00:00 2001
From: Cameron Cawley <[EMAIL REDACTED]>
Date: Sun, 8 May 2022 17:08:41 +0100
Subject: [PATCH] Build tests for all CMake platforms on CI

---
 .github/workflows/emscripten.yml | 7 +++++++
 .github/workflows/main.yml       | 2 +-
 .github/workflows/msvc.yml       | 6 ++++++
 .github/workflows/psp.yaml       | 1 +
 .github/workflows/riscos.yml     | 2 ++
 .github/workflows/vita.yaml      | 2 ++
 6 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml
index b14a05411d5..16f0fc723a4 100644
--- a/.github/workflows/emscripten.yml
+++ b/.github/workflows/emscripten.yml
@@ -13,10 +13,17 @@ jobs:
       - name: Configure CMake
         run: |
           emcmake cmake -S . -B build \
+            -DSDL_TESTS=ON \
+            -DSDL_INSTALL_TESTS=ON \
             -DCMAKE_BUILD_TYPE=Release \
             -DCMAKE_INSTALL_PREFIX=prefix
       - name: Build
         run: cmake --build build/ --verbose
+      - name: Run build-time tests
+        run: |
+          set -eu
+          export SDL_TESTS_QUICK=1
+          ctest -VV --test-dir build/
       - name: Install
         run: |
           echo "SDL2_DIR=$(pwd)/prefix" >> $GITHUB_ENV
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index ff229664253..f49f54a8a17 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -114,7 +114,7 @@ jobs:
       run: |
         cmake --build build/ --config Release --verbose --parallel
     - name: Run build-time tests (CMake)
-      if: "matrix.platform.shell == 'sh' && ! matrix.platform.autotools"
+      if: "! matrix.platform.autotools"
       run: |
         set -eu
         export SDL_TESTS_QUICK=1
diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml
index 1db6a39c705..2c4cb6f4bfb 100644
--- a/.github/workflows/msvc.yml
+++ b/.github/workflows/msvc.yml
@@ -27,10 +27,16 @@ jobs:
     - name: Configure CMake
       run: cmake -S . -B build `
         -DSDL_TESTS=ON `
+        -DSDL_INSTALL_TESTS=ON `
         ${{ matrix.platform.flags }} `
         -DCMAKE_INSTALL_PREFIX=prefix
     - name: Build CMake
       run: cmake --build build/ --config Release --parallel
+    - name: Run build-time tests
+      if: "! contains(matrix.platform.name, 'ARM')"
+      run: |
+        $env:SDL_TESTS_QUICK=1
+        ctest -VV --test-dir build/ -C Release
     - name: Install CMake
       run: |
         echo "SDL2_DIR=$Env:GITHUB_WORKSPACE/prefix" >> $Env:GITHUB_ENV
diff --git a/.github/workflows/psp.yaml b/.github/workflows/psp.yaml
index bed0a0151e9..1ca74f6e84d 100644
--- a/.github/workflows/psp.yaml
+++ b/.github/workflows/psp.yaml
@@ -17,6 +17,7 @@ jobs:
         cmake -S . -B build \
           -DCMAKE_TOOLCHAIN_FILE=$PSPDEV/psp/share/pspdev.cmake \
           -DSDL_TESTS=ON \
+          -DSDL_INSTALL_TESTS=ON \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_INSTALL_PREFIX=prefix
     - name: Build
diff --git a/.github/workflows/riscos.yml b/.github/workflows/riscos.yml
index 7c3340c4d6c..1791c9504e2 100644
--- a/.github/workflows/riscos.yml
+++ b/.github/workflows/riscos.yml
@@ -44,6 +44,8 @@ jobs:
           -DCMAKE_TOOLCHAIN_FILE=/home/riscos/env/toolchain-riscos.cmake \
           -DRISCOS=ON \
           -DSDL_GCC_ATOMICS=OFF \
+          -DSDL_TESTS=ON \
+          -DSDL_INSTALL_TESTS=ON \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/prefix_cmake
     - name: Build (CMake)
diff --git a/.github/workflows/vita.yaml b/.github/workflows/vita.yaml
index 792bd5bdcc2..4e2a0266179 100644
--- a/.github/workflows/vita.yaml
+++ b/.github/workflows/vita.yaml
@@ -21,6 +21,8 @@ jobs:
       run: |
         cmake -S . -B build -G Ninja \
           -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake \
+          -DSDL_TESTS=ON \
+          -DSDL_INSTALL_TESTS=ON \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_INSTALL_PREFIX=prefix
     - name: Build