Run internal tests in FreeBSD (#1616)

This commit is contained in:
Rangi
2025-01-20 14:08:48 -05:00
committed by GitHub
parent 2426068409
commit c2db23aef0
5 changed files with 48 additions and 11 deletions

View File

@@ -354,6 +354,29 @@ jobs:
make install -j Q= make install -j Q=
- name: Run tests - name: Run tests
shell: C:\cygwin\bin\env.exe CYGWIN_NOWINPATH=1 CHERE_INVOKING=1 C:\cygwin\bin\bash.exe -o igncr '{0}' shell: C:\cygwin\bin\env.exe CYGWIN_NOWINPATH=1 CHERE_INVOKING=1 C:\cygwin\bin\bash.exe -o igncr '{0}'
run: | # Allow asm/test.sh to run `git describe` for the version test run: |
git config --global --add safe.directory '*'
test/run-tests.sh --only-internal test/run-tests.sh --only-internal
freebsd:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Build & test using CMake on FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: "15.0"
usesh: true
prepare: |
pkg install -y \
bash \
bison \
cmake \
git \
png
run: | # FreeBSD `c++` compiler does not support `make develop` sanitizers ASan or UBSan
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER=c++ -DUSE_EXTERNAL_TESTS=OFF
cmake --build build -j4 --verbose
cmake --install build --verbose
cmake --build build --target test

View File

@@ -1,10 +1,14 @@
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
OPTION(USE_NONFREE_TESTS "run tests that build nonfree codebases" ON) option(USE_NONFREE_TESTS "run tests that build nonfree codebases" ON)
option(USE_EXTERNAL_TESTS "run tests that build external codebases" ON)
if(NOT USE_NONFREE_TESTS) if(NOT USE_NONFREE_TESTS)
set(ONLY_FREE "--only-free") set(ONLY_FREE "--only-free")
endif() endif()
if(NOT USE_EXTERNAL_TESTS)
set(ONLY_INTERNAL "--only-internal")
endif()
add_executable(randtilegen gfx/randtilegen.cpp) add_executable(randtilegen gfx/randtilegen.cpp)
add_executable(rgbgfx_test gfx/rgbgfx_test.cpp) add_executable(rgbgfx_test gfx/rgbgfx_test.cpp)
@@ -27,6 +31,6 @@ foreach(TARGET randtilegen rgbgfx_test)
endforeach() endforeach()
add_test(NAME all add_test(NAME all
COMMAND ./run-tests.sh ${ONLY_FREE} COMMAND ./run-tests.sh ${ONLY_FREE} ${ONLY_INTERNAL}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
) )

View File

@@ -1 +1 @@
set(CTEST_CUSTOM_PRE_TEST "bash -c 'cd @CMAKE_CURRENT_SOURCE_DIR@\; ./fetch-test-deps.sh @ONLY_FREE@'") set(CTEST_CUSTOM_PRE_TEST "bash -c 'cd @CMAKE_CURRENT_SOURCE_DIR@\; ./fetch-test-deps.sh @ONLY_FREE@ @ONLY_INTERNAL@'")

View File

@@ -8,6 +8,7 @@ usage() {
echo "Options:" echo "Options:"
echo " -h, --help show this help message" echo " -h, --help show this help message"
echo " --only-free download only freely licensed codebases" echo " --only-free download only freely licensed codebases"
echo " --only-internal do not download any codebases"
echo " --get-deps install programs' own dependencies instead of themselves" echo " --get-deps install programs' own dependencies instead of themselves"
echo " --get-hash print programs' commit hashes instead of downloading them" echo " --get-hash print programs' commit hashes instead of downloading them"
echo " --get-paths print programs' GitHub paths instead of downloading them" echo " --get-paths print programs' GitHub paths instead of downloading them"
@@ -16,6 +17,7 @@ usage() {
# Parse options in pure Bash because macOS `getopt` is stuck # Parse options in pure Bash because macOS `getopt` is stuck
# in what util-linux `getopt` calls `GETOPT_COMPATIBLE` mode # in what util-linux `getopt` calls `GETOPT_COMPATIBLE` mode
nonfree=true nonfree=true
external=true
actionname= actionname=
osname= osname=
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
@@ -27,6 +29,9 @@ while [[ $# -gt 0 ]]; do
--only-free) --only-free)
nonfree=false nonfree=false
;; ;;
--only-internal)
external=false
;;
--get-deps) --get-deps)
actionname="$1" actionname="$1"
shift shift
@@ -97,6 +102,10 @@ case "$actionname" in
} }
esac esac
if ! "$external"; then
exit
fi
if "$nonfree"; then if "$nonfree"; then
action pret pokecrystal 2024-12-28 86a87a355e6805663cfecf150a3af71c66441a3e action pret pokecrystal 2024-12-28 86a87a355e6805663cfecf150a3af71c66441a3e
action pret pokered 2024-12-26 f023c68417ff0b14db1ab28ecff67f8d123ede44 action pret pokered 2024-12-26 f023c68417ff0b14db1ab28ecff67f8d123ede44

View File

@@ -24,10 +24,11 @@ while [[ $# -gt 0 ]]; do
;; ;;
--only-free) --only-free)
nonfree=false nonfree=false
FETCH_TEST_DEPS="fetch-test-deps.sh --only-free" FETCH_TEST_DEPS="$FETCH_TEST_DEPS --only-free"
;; ;;
--only-internal) --only-internal)
external=false external=false
FETCH_TEST_DEPS="$FETCH_TEST_DEPS --only-internal"
;; ;;
--) --)
break break