Update tests.yml
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 4f64caf..0676c4d 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -1,117 +1,99 @@
 name: Tests
-
 on:
   push:
 
 jobs:
-  build-linux:
+  # -------------------- Linux --------------------
+  unit_linux:
     runs-on: ubuntu-latest
-
-    strategy:
-      matrix:
-        platform: [linux]
-
     steps:
       - uses: actions/checkout@v2
-      - name: Install
+
+      - name: Premake
         run: |
           wget -q https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-linux.tar.gz
           tar -xf premake-5.0.0-beta2-linux.tar.gz
-          sudo chmod a+x premake5
-          sudo mv premake5 /usr/local/bin
+          sudo install -m 0755 premake5 /usr/local/bin/premake5
 
-      - name: Install dependencies
-        if: runner.os == 'Linux'
+      - name: Deps
         run: |
           sudo apt-get update
           sudo apt-get install -y build-essential uuid-dev clang llvm lld
-    
-      - name: Build
-        run: |
-          build/build_rive.sh --file=premake5_v2.lua --with_rive_audio=system --with_rive_text --with_rive_layout debug
-          build/build_rive.sh --file=premake5_v2.lua --with_rive_audio=system --with_rive_text --with_rive_layout release
 
       - name: Add build scripts to PATH
         run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
-  
-      - name: Tests
+
+      - name: Unit tests (no ASan)
         run: |
           cd tests/unit_tests
-          ./test.sh asan
+          ./test.sh
 
-  build-windows:
+  # -------------------- Windows (clang-cl toolset) --------------------
+  unit_windows:
     runs-on: windows-2022
     steps:
       - uses: actions/checkout@v2
       - uses: microsoft/setup-msbuild@v1.1
-      - name: Build Rive
-        shell: pwsh
-        run: |
-          ./build/build_rive.ps1 --file=premake5_v2.lua debug
-          ./build/build_rive.ps1 --file=premake5_v2.lua release
-  
-      - name: Tests
-        run: |
-          cd tests/unit_tests
-          ./test.bat --factory=null
 
-  build-macos:
+      - name: Add build scripts to PATH
+        shell: bash
+        run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
+
+      - name: Unit tests (no GPU)
+        shell: cmd
+        working-directory: tests/unit_tests
+        run: .\test.bat --factory=null
+
+  # -------------------- Windows (MSVC toolset) --------------------
+  unit_windows_msvc:
+    runs-on: windows-2022
+    steps:
+      - uses: actions/checkout@v2
+      - uses: microsoft/setup-msbuild@v1.1
+
+      - name: Add build scripts to PATH
+        shell: bash
+        run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
+
+      - name: Unit tests (MSVC, no GPU)
+        shell: cmd
+        working-directory: tests/unit_tests
+        run: .\test.bat --toolset=msc --factory=null
+
+  # -------------------- macOS --------------------
+  unit_macos:
     runs-on: macOS-latest
-
-    strategy:
-      matrix:
-        platform: [macOS]
-
     steps:
       - uses: actions/checkout@v3
 
-      - name: Install
+      - name: Premake
         run: |
-          wget -q https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-macosx.tar.gz
-          tar -xf premake-5.0.0-beta2-macosx.tar.gz
-          sudo chmod a+x premake5
-          sudo mv premake5 /usr/local/bin
-
-      - name: Build
-        run: |
-          build/build_rive.sh --file=premake5_v2.lua --with_rive_audio=system --with_rive_text --with_rive_layout debug
-          build/build_rive.sh --file=premake5_v2.lua --with_rive_audio=system --with_rive_text --with_rive_layout release
-
-      - name: Build glfw
-        working-directory: skia/dependencies/
-        run: ./make_glfw.sh
+          curl -L -o premake_macosx.tar.gz https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-macosx.tar.gz
+          tar -xf premake_macosx.tar.gz
+          sudo install -m 0755 premake5 /usr/local/bin/premake5
 
       - name: Add build scripts to PATH
         run: echo "${{ github.workspace }}/build" >> $GITHUB_PATH
-  
-      - name: Memory Leaks & Address Sanitization
-        # Need to clean here because we already did a unit_tests build above without asan
+
+      - name: Unit tests (no ASan)
         run: |
           cd tests/unit_tests
           ./test.sh
-      
-      - name: Tess Tests
-        if: matrix.platform == 'macOS'
+
+      # Tess (kept as separate; builds and runs both variants)
+      - name: Tess tests
         run: |
           set -euo pipefail
           cd tess
 
-          # Build Debug (lands under ./out/debug/… with original script)
+          # Debug/default
           ../build/build_rive.sh --file=premake5_tess.lua
-
           DBG_BIN=$(find ./out -type f -name 'rive_tess_tests*' -perm -111 -print -quit)
           echo "Debug tess binary: ${DBG_BIN:-<not found>}"
-          if [ -z "${DBG_BIN:-}" ]; then
-            echo "Could not locate Debug tess binary. Listing ./out for clues:"; find ./out -maxdepth 3 -print; exit 1
-          fi
-          "$DBG_BIN"
-     
-          # Build Release (lands under ./out/release/…)
+          test -n "${DBG_BIN:-}" && "$DBG_BIN"
+
+          # Release
           ../build/build_rive.sh --file=premake5_tess.lua release
-     
           REL_BIN=$(find ./out -type f -name 'rive_tess_tests*' -perm -111 -print -quit)
           echo "Release tess binary: ${REL_BIN:-<not found>}"
-          if [ -z "${REL_BIN:-}" ]; then
-            echo "Could not locate Release tess binary. Listing ./out for clues:"; find ./out -maxdepth 3 -print; exit 1
-          fi
-          "$REL_BIN"
+          test -n "${REL_BIN:-}" && "$REL_BIN"