From 13b7398b3af0ba3735188565a03aaaddf6409763 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Wed, 13 Sep 2023 00:21:35 +0800 Subject: [PATCH] [CI] Upgrade QEMU to 8.1.0 (#973) --- .github/workflows/release.yml | 25 ++++++++++++++----------- runTest.cmake | 5 ++++- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 966ea80fe..42fa0435e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -102,20 +102,23 @@ jobs: - name: "Test Box64" if: ${{ matrix.platform != 'TEGRAX1' }} run: | - if [[ ${{ matrix.platform }} != 'X64' ]]; then - sudo apt-get -y install qemu-user + if [[ ${{ matrix.platform }} != 'X64' && ${{ matrix.platform }} != 'ANDROID' ]]; then + mkdir qemu8.1.0 + wget -O- -q https://london.mirror.pkgbuild.com/extra/os/x86_64/qemu-user-static-8.1.0-2-x86_64.pkg.tar.zst | tar -I zstd -C qemu8.1.0 -xf - + sudo cp qemu8.1.0/usr/bin/* /usr/bin/ fi cd build - if [[ ${{ matrix.platform }} != 'ANDROID' ]]; then - if [[ ${{ matrix.platform }} == 'RISCV' ]]; then - QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ ctest -j$(nproc) --rerun-failed --output-on-failure - QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=rv64,x-zba=true,x-zbb=true,x-zbc=true,x-zbs=true ctest -j$(nproc) --rerun-failed --output-on-failure - elif [[ ${{ matrix.platform }} != 'X64' ]]; then - QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ ctest -j$(nproc) --rerun-failed --output-on-failure - else - ctest -j$(nproc) --rerun-failed --output-on-failure - fi + if [[ ${{ matrix.platform }} == 'RISCV' ]]; then + INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ ctest -j$(nproc) --rerun-failed --output-on-failure + INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=rv64,zba=true,zbb=true,zbc=true,zbs=true ctest -j$(nproc) --rerun-failed --output-on-failure + INTERPRETER=qemu-riscv64-static QEMU_LD_PREFIX=/usr/riscv64-linux-gnu/ QEMU_CPU=rv64,xtheadba=true,xtheadba=true,xtheadbb=true,xtheadbs=true,xtheadcondmov=true,xtheadmemidx=true,xtheadmempair=true,xtheadfmemidx=true,xtheadmac=true,xtheadfmv=true ctest -j$(nproc) --rerun-failed --output-on-failure + elif [[ ${{ matrix.platform }} != 'X64' && ${{ matrix.platform }} != 'ANDROID' ]]; then # AArch64 + INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ ctest -j$(nproc) --rerun-failed --output-on-failure + elif [[ ${{ matrix.platform }} == 'ANDROID' ]]; then + true + else + ctest -j$(nproc) --rerun-failed --output-on-failure fi - name: "Upload Artifact" diff --git a/runTest.cmake b/runTest.cmake index 11ab75fe5..e9a5a46c1 100644 --- a/runTest.cmake +++ b/runTest.cmake @@ -11,6 +11,9 @@ endif( NOT TEST_OUTPUT ) if( NOT TEST_REFERENCE ) message( FATAL_ERROR "Require TEST_REFERENCE to be defined" ) endif( NOT TEST_REFERENCE ) +if(NOT DEFINED ENV{INTERPRETER}) + set(ENV{INTERPRETER} "") +endif() set(ENV{BOX64_LOG} 0) set(ENV{BOX64_NOBANNER} 1) @@ -24,7 +27,7 @@ endif( EXISTS ${CMAKE_SOURCE_DIR}/x64lib ) # run the test program, capture the stdout/stderr and the result var execute_process( - COMMAND ${TEST_PROGRAM} ${TEST_ARGS} ${TEST_ARGS2} + COMMAND $ENV{INTERPRETER} ${TEST_PROGRAM} ${TEST_ARGS} ${TEST_ARGS2} OUTPUT_FILE ${TEST_OUTPUT} ERROR_VARIABLE TEST_ERROR RESULT_VARIABLE TEST_RESULT