Move external tests files to tests/external/

This commit is contained in:
ISSOtm
2026-07-02 10:39:59 -04:00
committed by Rangi
parent 5e8a6cde20
commit 04b9c7fa3d
11 changed files with 42 additions and 40 deletions
+12 -12
View File
@@ -93,8 +93,8 @@ jobs:
- name: Compute test dependency cache params
id: test-deps-cache-params
run: |
paths=$(test/fetch-test-deps.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash)
paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache
@@ -107,7 +107,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true
run: |
test/fetch-test-deps.sh
test/external/fetch-repos.sh
- name: Run tests using our script
if: matrix.buildsys == 'make'
run: |
@@ -155,8 +155,8 @@ jobs:
- name: Compute test dependency cache params
id: test-deps-cache-params
run: |
paths=$(test/fetch-test-deps.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash)
paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache
@@ -169,7 +169,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true
run: |
test/fetch-test-deps.sh
test/external/fetch-repos.sh
- name: Run tests
run: |
ctest --test-dir build --schedule-random
@@ -218,8 +218,8 @@ jobs:
- name: Compute test dependency cache params
id: test-deps-cache-params
run: |
paths=$(test/fetch-test-deps.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash)
paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache
@@ -232,7 +232,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true
run: |
test/fetch-test-deps.sh
test/external/fetch-repos.sh
- name: Run tests using CTest
run: |
ctest --test-dir build --schedule-random
@@ -311,8 +311,8 @@ jobs:
- name: Compute test dependency cache params
id: test-deps-cache-params
run: |
paths=$(test/fetch-test-deps.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash)
paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache
@@ -325,7 +325,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true
run: |
test/fetch-test-deps.sh
test/external/fetch-repos.sh
- name: Run tests
run: |
test/run-tests.sh --os ${{ matrix.os }}
+1 -1
View File
@@ -79,7 +79,7 @@ dependency src/gfx/main.cpp contrib/zsh_compl/_rgbgfx \
dependency src/gfx/main.cpp contrib/bash_compl/_rgbgfx.bash \
"Did the rgbgfx CLI change?"
dependency test/fetch-test-deps.sh docs/CONTRIBUTING.md \
dependency test/external/fetch-repos.sh docs/CONTRIBUTING.md \
"Did the test protocol change?"
dependency test/run-tests.sh docs/CONTRIBUTING.md \
"Did the test protocol change?"
+1 -1
View File
@@ -6,7 +6,7 @@ make coverage -j
# Run the tests
pushd test
./fetch-test-deps.sh
external/fetch-repos.sh
if [[ $# -eq 0 ]]; then
./run-tests.sh
else
+10 -3
View File
@@ -56,8 +56,10 @@ rgbds/
│ ├── bison.sh
│ └── ...
├── test/
│ ├── fetch-test-deps.sh
│ ├── run-tests.sh
│ ├── external/
│ │ ├── fetch-repos.sh
│ │ └── ...
│ └── ...
├── .clang-format
├── .clang-tidy
@@ -110,10 +112,15 @@ rgbds/
Script used to run the Bison parser generator with the latest flags that the user's version supports.
- **`test/`:**
Testing framework used to verify that changes to the code don't break or modify the behavior of RGBDS.
* **`fetch-test-deps.sh`:**
Script used to fetch dependencies for building external repositories. `fetch-test-deps.sh --help` describes its options.
The `test.sh` scripts inside each of the subdirectories are the individual test drivers.
* **`run-tests.sh`:**
Script used to run tests, including internal test cases and external repositories. `run-tests.sh --help` describes its options.
* **`external/`:**
Directory for third-party repos making use of RGBDS, which get cloned here and built during testing.
- **`fetch-repos.sh`:**
Script used to clone the external repositories. `fetch-repos.sh --help` describes its options.
- **`*.cfg`:**
Each `.cfg` file defines the parameters to clone, build, and verify an external repository.
- **`.clang-format`:**
Code style for automated C++ formatting with [`clang-format`](https://clang.llvm.org/docs/ClangFormat.html) (for which we define the shortcut `make format`).
- **`.clang-tidy`:**
+1 -1
View File
@@ -69,7 +69,7 @@ years). If you are adding new files, you need to use the
You can also use `cmake --preset develop` if you prefer.
5. Test your changes by running `./run-tests.sh` in the `test` directory.
`./run-tests.sh --help` will print its available options. (You must run
`./fetch-test-deps.sh` first; if you forget to, the test suite will fail and
`external/fetch-repos.sh` first; if you forget to, the test suite will fail and
remind you mid-way.)
You can also use `ctest --test-dir build` if you prefer.
+1 -1
View File
@@ -10,7 +10,7 @@ GitHub.
`PACKAGE_VERSION_MINOR`, `PACKAGE_VERSION_PATCH`, and `PACKAGE_VERSION_RC`.
**Only** define `PACKAGE_VERSION_RC` if you are publishing a release candidate!
- [Dockerfile](Dockerfile): update `ARG version`.
- [test/fetch-test-deps.sh](test/fetch-test-deps.sh): update test dependency commits
- [test/external/*.cfg](test/external): update test dependency commits
(preferably, use the latest available).
- [man/\*](man/): update dates and authors.
-7
View File
@@ -1,7 +0,0 @@
/gb-starter-kit/
/LADX-Disassembly/
/libbet/
/pokecrystal/
/pokered/
/SameBoy/
/ucity/
+4 -4
View File
@@ -28,15 +28,15 @@ endforeach()
set_tests_properties(rgbgfx PROPERTIES REQUIRED_FILES "$<TARGET_FILE:rgbgfx>;$<TARGET_FILE:randtilegen>;$<TARGET_FILE:rgbgfx_test>")
add_test(NAME fetch-test-deps
COMMAND bash -- fetch-test-deps.sh --only-free
COMMAND bash -- external/fetch-repos.sh --only-free
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
set_tests_properties(fetch-test-deps PROPERTIES FIXTURES_SETUP "free-repos"
LABELS "external")
add_test(NAME fetch-nonfree-deps
COMMAND bash -- fetch-test-deps.sh
COMMAND bash -- external/fetch-repos.sh
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
set_tests_properties(fetch-nonfree-deps PROPERTIES FIXTURES_SETUP "external-repos"
FIXTURES_REQUIRED "free-repos"
set_tests_properties(fetch-nonfree-deps PROPERTIES FIXTURES_SETUP "external-repos" # *All* external repos.
FIXTURES_REQUIRED "free-repos" # Sequence after the other to avoid concurrent access.
LABELS "external;nonfree")
file(GLOB ext_projects "external/*.cfg") # This will not be re-computed if a new project is added! You must manually reconfigure.
+2
View File
@@ -0,0 +1,2 @@
# All of the cloned external repos.
/*/
+4 -5
View File
@@ -50,7 +50,7 @@ case "$actionname" in
--get-paths)
action() {
printf "test/%s," "$EXT_TEST_REPO"
printf "test/external/%s," "$EXT_TEST_REPO"
}
;;
@@ -72,10 +72,9 @@ case "$actionname" in
}
esac
# Since each iteration sources variables into the shell itself,
# we do that in a subshell so that they don't "leak" out.
for cfg in external/*.cfg; do (
# The sourced file defines `EXT_TEST_*` variables that get used by `action`.
# Each iteration is isolated in a (subshell) so the sourced cfg variables don't "leak" out.
for cfg in *.cfg; do (
# Sourcing "$cfg" defines `EXT_TEST_*` variables that get used by `action`.
. "$cfg"
# Only run a nonfree action if nonfree tests are opted into.
if ! $EXT_TEST_IS_NONFREE || $nonfree; then
+6 -5
View File
@@ -6,24 +6,25 @@ export LC_ALL=C
# Game Boy release date, 1989-04-21T12:34:56Z (for reproducible test results)
export SOURCE_DATE_EPOCH=609165296
cd "$(dirname "$0")/.."
cd "$(dirname "$0")"
RGBDS_PATH="RGBDS=../../"
if [ ! -f "external/$1.cfg" ]; then
if [ ! -f "$1.cfg" ]; then
echo >&2 'External test file '"$1"'.cfg does not exist'
exit 1
fi
# Sourcing "$1.cfg" defines `EXT_TEST_*` variables used below.
. "external/$1.cfg"
. "$1.cfg"
if ! cd "$EXT_TEST_REPO"; then
echo >&2 'Please fetch test deps before running any external test'
exit 1
fi
RGBDS_PATH="RGBDS=../../../"
make clean $RGBDS_PATH
make -j4 "$EXT_TEST_TARGET" $RGBDS_PATH
hash="$(sha1sum -b "$EXT_TEST_FILE" | head -c 40)"
if [ "$hash" != "$EXT_TEST_HASH" ]; then
cat >&2 <<EOM