mirror of
https://github.com/gbdev/rgbds.git
synced 2026-09-04 12:58:38 +00:00
Move external tests files to tests/external/
This commit is contained in:
@@ -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 }}
|
||||||
|
|||||||
@@ -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?"
|
||||||
|
|||||||
@@ -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
@@ -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`:**
|
||||||
|
|||||||
@@ -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
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
/gb-starter-kit/
|
|
||||||
/LADX-Disassembly/
|
|
||||||
/libbet/
|
|
||||||
/pokecrystal/
|
|
||||||
/pokered/
|
|
||||||
/SameBoy/
|
|
||||||
/ucity/
|
|
||||||
+4
-4
@@ -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.
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# All of the cloned external repos.
|
||||||
|
/*/
|
||||||
+4
-5
@@ -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
|
||||||
Vendored
+6
-5
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user