mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
CI: run pspautotests on all four CPU backends
The headless tests only ever exercised the JIT, since that's what headless defaults to. Run all four on the Linux runners, and add an arm64 Linux lane so the arm64 JIT is covered too - nothing else in the matrix tested it. test.py scales the wall clock to the backend instead of raising it for everyone: the interpreter needs 20s for gpu/rendertarget/copy, which does over a million guest-side vsprintf calls, while a hang under the JIT is still caught in five seconds. The frametest report artifact needs a per-OS name now that two Linux legs upload one. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
1 parent
a90087012d
commit
bb556bf481
2 files changed
+53
-4
No files matched your search
@@ -228,6 +228,15 @@ jobs:
|
||||
args: ./b.sh --headless --unittest
|
||||
id: gcc-normal
|
||||
|
||||
# Gives the headless tests an arm64 host to run the CPU backends on - the arm64 JIT is a
|
||||
# different backend from the x86-64 one, and nothing else in the matrix tests it on Linux.
|
||||
- os: ubuntu-26.04-arm
|
||||
extra: test
|
||||
cc: clang
|
||||
cxx: clang++
|
||||
args: ./b.sh --headless --unittest
|
||||
id: clang-arm64
|
||||
|
||||
- os: ubuntu-26.04
|
||||
extra: android
|
||||
cc: clang
|
||||
@@ -456,7 +465,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-26.04, macos-latest]
|
||||
os: [ubuntu-26.04, ubuntu-26.04-arm, macos-latest]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
needs: build
|
||||
@@ -501,9 +510,25 @@ jobs:
|
||||
run: ./PPSSPPUnitTest ALL
|
||||
|
||||
- name: Execute headless tests
|
||||
if: runner.os != 'Linux'
|
||||
working-directory: ${{ env.GITHUB_WORKSPACE }}
|
||||
run: python test.py -g --graphics=software
|
||||
|
||||
# The Linux runners carry the CPU backend coverage, on both x86-64 and arm64. Elsewhere the
|
||||
# default (JIT) is enough - the backends are shared code, and four runs everywhere adds up.
|
||||
# test.py picks a wall clock to match the backend, so the slower ones don't time out.
|
||||
- name: Execute headless tests (all CPU backends)
|
||||
if: runner.os == 'Linux'
|
||||
working-directory: ${{ env.GITHUB_WORKSPACE }}
|
||||
run: |
|
||||
fail=0
|
||||
for cpu in jit jit-ir ir interpreter; do
|
||||
echo "::group::CPU backend: $cpu"
|
||||
python test.py -g --graphics=software --cpu=$cpu || fail=1
|
||||
echo "::endgroup::"
|
||||
done
|
||||
exit $fail
|
||||
|
||||
- name: Execute frametests
|
||||
if: runner.os == 'Linux'
|
||||
working-directory: ${{ env.GITHUB_WORKSPACE }}
|
||||
@@ -513,7 +538,7 @@ jobs:
|
||||
uses: actions/upload-artifact@v7
|
||||
if: runner.os == 'Linux' && always()
|
||||
with:
|
||||
name: frametest-report
|
||||
name: frametest-report-${{ matrix.os }}
|
||||
path: frametests/out/
|
||||
|
||||
test-headless-alpine:
|
||||
|
||||
Reference in new issue
Block a user