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 - name: Compute test dependency cache params
id: test-deps-cache-params id: test-deps-cache-params
run: | run: |
paths=$(test/fetch-test-deps.sh --get-paths) paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash) hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache - name: Check test dependency repositories cache
@@ -107,7 +107,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true' if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true continue-on-error: true
run: | run: |
test/fetch-test-deps.sh test/external/fetch-repos.sh
- name: Run tests using our script - name: Run tests using our script
if: matrix.buildsys == 'make' if: matrix.buildsys == 'make'
run: | run: |
@@ -155,8 +155,8 @@ jobs:
- name: Compute test dependency cache params - name: Compute test dependency cache params
id: test-deps-cache-params id: test-deps-cache-params
run: | run: |
paths=$(test/fetch-test-deps.sh --get-paths) paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash) hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache - name: Check test dependency repositories cache
@@ -169,7 +169,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true' if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true continue-on-error: true
run: | run: |
test/fetch-test-deps.sh test/external/fetch-repos.sh
- name: Run tests - name: Run tests
run: | run: |
ctest --test-dir build --schedule-random ctest --test-dir build --schedule-random
@@ -218,8 +218,8 @@ jobs:
- name: Compute test dependency cache params - name: Compute test dependency cache params
id: test-deps-cache-params id: test-deps-cache-params
run: | run: |
paths=$(test/fetch-test-deps.sh --get-paths) paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash) hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache - name: Check test dependency repositories cache
@@ -232,7 +232,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true' if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true continue-on-error: true
run: | run: |
test/fetch-test-deps.sh test/external/fetch-repos.sh
- name: Run tests using CTest - name: Run tests using CTest
run: | run: |
ctest --test-dir build --schedule-random ctest --test-dir build --schedule-random
@@ -311,8 +311,8 @@ jobs:
- name: Compute test dependency cache params - name: Compute test dependency cache params
id: test-deps-cache-params id: test-deps-cache-params
run: | run: |
paths=$(test/fetch-test-deps.sh --get-paths) paths=$(test/external/fetch-repos.sh --get-paths)
hash=$(test/fetch-test-deps.sh --get-hash) hash=$(test/external/fetch-repos.sh --get-hash)
tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT tee -a <<<"paths=\"${paths//,/\\n}\"" $GITHUB_OUTPUT
tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT tee -a <<<"hash=${hash%-}" $GITHUB_OUTPUT
- name: Check test dependency repositories cache - name: Check test dependency repositories cache
@@ -325,7 +325,7 @@ jobs:
if: steps.test-deps-cache.outputs.cache-hit != 'true' if: steps.test-deps-cache.outputs.cache-hit != 'true'
continue-on-error: true continue-on-error: true
run: | run: |
test/fetch-test-deps.sh test/external/fetch-repos.sh
- name: Run tests - name: Run tests
run: | run: |
test/run-tests.sh --os ${{ matrix.os }} 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 \ dependency src/gfx/main.cpp contrib/bash_compl/_rgbgfx.bash \
"Did the rgbgfx CLI change?" "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?" "Did the test protocol change?"
dependency test/run-tests.sh docs/CONTRIBUTING.md \ dependency test/run-tests.sh docs/CONTRIBUTING.md \
"Did the test protocol change?" "Did the test protocol change?"
+1 -1
View File
@@ -6,7 +6,7 @@ make coverage -j
# Run the tests # Run the tests
pushd test pushd test
./fetch-test-deps.sh external/fetch-repos.sh
if [[ $# -eq 0 ]]; then if [[ $# -eq 0 ]]; then
./run-tests.sh ./run-tests.sh
else else
+10 -3
View File
@@ -56,8 +56,10 @@ rgbds/
│ ├── bison.sh │ ├── bison.sh
│ └── ... │ └── ...
├── test/ ├── test/
│ ├── fetch-test-deps.sh
│ ├── run-tests.sh │ ├── run-tests.sh
│ ├── external/
│ │ ├── fetch-repos.sh
│ │ └── ...
│ └── ... │ └── ...
├── .clang-format ├── .clang-format
├── .clang-tidy ├── .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. Script used to run the Bison parser generator with the latest flags that the user's version supports.
- **`test/`:** - **`test/`:**
Testing framework used to verify that changes to the code don't break or modify the behavior of RGBDS. Testing framework used to verify that changes to the code don't break or modify the behavior of RGBDS.
* **`fetch-test-deps.sh`:** The `test.sh` scripts inside each of the subdirectories are the individual test drivers.
Script used to fetch dependencies for building external repositories. `fetch-test-deps.sh --help` describes its options.
* **`run-tests.sh`:** * **`run-tests.sh`:**
Script used to run tests, including internal test cases and external repositories. `run-tests.sh --help` describes its options. 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`:** - **`.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`). 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`:** - **`.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. You can also use `cmake --preset develop` if you prefer.
5. Test your changes by running `./run-tests.sh` in the `test` directory. 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 `./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.) remind you mid-way.)
You can also use `ctest --test-dir build` if you prefer. 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`. `PACKAGE_VERSION_MINOR`, `PACKAGE_VERSION_PATCH`, and `PACKAGE_VERSION_RC`.
**Only** define `PACKAGE_VERSION_RC` if you are publishing a release candidate! **Only** define `PACKAGE_VERSION_RC` if you are publishing a release candidate!
- [Dockerfile](Dockerfile): update `ARG version`. - [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). (preferably, use the latest available).
- [man/\*](man/): update dates and authors. - [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>") set_tests_properties(rgbgfx PROPERTIES REQUIRED_FILES "$<TARGET_FILE:rgbgfx>;$<TARGET_FILE:randtilegen>;$<TARGET_FILE:rgbgfx_test>")
add_test(NAME fetch-test-deps 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}") WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
set_tests_properties(fetch-test-deps PROPERTIES FIXTURES_SETUP "free-repos" set_tests_properties(fetch-test-deps PROPERTIES FIXTURES_SETUP "free-repos"
LABELS "external") LABELS "external")
add_test(NAME fetch-nonfree-deps add_test(NAME fetch-nonfree-deps
COMMAND bash -- fetch-test-deps.sh COMMAND bash -- external/fetch-repos.sh
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
set_tests_properties(fetch-nonfree-deps PROPERTIES FIXTURES_SETUP "external-repos" set_tests_properties(fetch-nonfree-deps PROPERTIES FIXTURES_SETUP "external-repos" # *All* external repos.
FIXTURES_REQUIRED "free-repos" FIXTURES_REQUIRED "free-repos" # Sequence after the other to avoid concurrent access.
LABELS "external;nonfree") 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. 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) --get-paths)
action() { action() {
printf "test/%s," "$EXT_TEST_REPO" printf "test/external/%s," "$EXT_TEST_REPO"
} }
;; ;;
@@ -72,10 +72,9 @@ case "$actionname" in
} }
esac esac
# Since each iteration sources variables into the shell itself, # Each iteration is isolated in a (subshell) so the sourced cfg variables don't "leak" out.
# we do that in a subshell so that they don't "leak" out. for cfg in *.cfg; do (
for cfg in external/*.cfg; do ( # Sourcing "$cfg" defines `EXT_TEST_*` variables that get used by `action`.
# The sourced file defines `EXT_TEST_*` variables that get used by `action`.
. "$cfg" . "$cfg"
# Only run a nonfree action if nonfree tests are opted into. # Only run a nonfree action if nonfree tests are opted into.
if ! $EXT_TEST_IS_NONFREE || $nonfree; then 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) # Game Boy release date, 1989-04-21T12:34:56Z (for reproducible test results)
export SOURCE_DATE_EPOCH=609165296 export SOURCE_DATE_EPOCH=609165296
cd "$(dirname "$0")/.." cd "$(dirname "$0")"
RGBDS_PATH="RGBDS=../../" if [ ! -f "$1.cfg" ]; then
if [ ! -f "external/$1.cfg" ]; then
echo >&2 'External test file '"$1"'.cfg does not exist' echo >&2 'External test file '"$1"'.cfg does not exist'
exit 1 exit 1
fi fi
# Sourcing "$1.cfg" defines `EXT_TEST_*` variables used below. # Sourcing "$1.cfg" defines `EXT_TEST_*` variables used below.
. "external/$1.cfg" . "$1.cfg"
if ! cd "$EXT_TEST_REPO"; then if ! cd "$EXT_TEST_REPO"; then
echo >&2 'Please fetch test deps before running any external test' echo >&2 'Please fetch test deps before running any external test'
exit 1 exit 1
fi fi
RGBDS_PATH="RGBDS=../../../"
make clean $RGBDS_PATH make clean $RGBDS_PATH
make -j4 "$EXT_TEST_TARGET" $RGBDS_PATH make -j4 "$EXT_TEST_TARGET" $RGBDS_PATH
hash="$(sha1sum -b "$EXT_TEST_FILE" | head -c 40)" hash="$(sha1sum -b "$EXT_TEST_FILE" | head -c 40)"
if [ "$hash" != "$EXT_TEST_HASH" ]; then if [ "$hash" != "$EXT_TEST_HASH" ]; then
cat >&2 <<EOM cat >&2 <<EOM