Merge pull request #19371 from fjtrujy/master

Run unit tests on Alpine docker too
This commit is contained in:
Henrik Rydgård 2024-08-24 16:57:01 -06:00 committed by GitHub
commit f7a72e8415
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 49 additions and 1 deletions

View File

@ -362,3 +362,40 @@ jobs:
- name: Execute headless tests
working-directory: ${{ env.GITHUB_WORKSPACE }}
run: python test.py -g --graphics=software
build_test_headless_alpine:
runs-on: ubuntu-latest
container:
image: alpine:latest
options: --shm-size=8g
steps:
- name: Install Linux dependencies (Alpine)
run: |
apk add build-base wget git bash cmake python3 glu-dev sdl2-dev
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Fix git detected dubious ownership in repository
run: |
chown -R $(id -u):$(id -g) $PWD
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
- name: Compile ffmpeg
run: |
cd ffmpeg && ./linux_x86-64.sh
- name: Build for testing
run: |
./b.sh --headless --unittest
- name: Execute unit tests
run: |
./build/PPSSPPUnitTest ALL
- name: Execute headless tests
run: |
python test.py -g --graphics=software

View File

@ -186,6 +186,7 @@ option(USE_SYSTEM_MINIUPNPC "Dynamically link against system miniUPnPc" ${USE_SY
option(USE_ASAN "Use address sanitizer" OFF)
option(USE_UBSAN "Use undefined behaviour sanitizer" OFF)
option(USE_CCACHE "Use ccache if detected" ON)
option(USE_NO_MMAP "Disable mmap usage" OFF)
if(USE_CCACHE)
include(ccache)
@ -247,6 +248,12 @@ if(HTTPS_NOT_AVAILABLE)
add_definitions(-DHTTPS_NOT_AVAILABLE)
endif()
# Disable the usage of MMAP for the memory system.
# It is not tested on all platforms and can cause issues.
if(USE_NO_MMAP)
add_definitions(-DNO_MMAP -DMASKED_PSP_MEMORY)
endif()
# Work around for some misfeature of the current glslang build system
include_directories(ext/glslang)

View File

@ -7,6 +7,7 @@
#include <cstdlib>
#include <cstring>
#include <cstdint>
#include "Common/Log.h"

View File

@ -137,7 +137,7 @@ void MemArena::ReleaseView(s64 offset, void* view, size_t size) {
u8* MemArena::Find4GBBase() {
// Now, create views in high memory where there's plenty of space.
#if PPSSPP_ARCH(64BIT) && !defined(USE_ASAN)
#if PPSSPP_ARCH(64BIT) && !defined(USE_ASAN) && !defined(NO_MMAP)
// We should probably just go look in /proc/self/maps for some free space.
// But let's try the anonymous mmap trick, just like on 32-bit, but bigger and
// aligned to 4GB for the movk trick. We can ensure that we get an aligned 4GB

3
b.sh
View File

@ -81,6 +81,9 @@ do
--alderlake) echo "Alderlake opt"
CMAKE_ARGS="-DCMAKE_C_FLAGS=\"-march=alderlake\" -DCMAKE_CPP_FLAGS=\"-march=alderlake\""
;;
--no_mmap) echo "Disable mmap"
CMAKE_ARGS="-DUSE_NO_MMAP=ON ${CMAKE_ARGS}"
;;
*) MAKE_OPT="$1 ${MAKE_OPT}"
;;
esac