Meta: Verify all AK test files are listed in CMake

Problem:
- It is possible for a new test file to be added to the `AK/Tests`
  directory without being added to the corresponding
  `CMakeLists.txt`. This results in the tests not being run.

Solution:
- As part of CI linting, verify that all the `AK/Tests/Test*.cpp`
  files are mentioned in the `CMakeLists.txt`.
This commit is contained in:
Lenny Maiorani 2020-12-24 09:39:37 -07:00 committed by Andreas Kling
parent e5ac1fcd00
commit d46de3aeb4
Notes: sideshowbarker 2024-07-19 00:38:01 +09:00
2 changed files with 26 additions and 0 deletions

25
Meta/check-ak-test-files.sh Executable file
View file

@ -0,0 +1,25 @@
#!/bin/bash
set -eo pipefail
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.."
MISSING_FILES=n
while IFS= read -r FILENAME; do
# Simply search whether the CMakeLists.txt *ever* mention the test files.
if ! grep -qP "${FILENAME}" AK/Tests/CMakeLists.txt ; then
echo "AK/Tests/CMakeLists.txt is missing the test file ${FILENAME}"
MISSING_FILES=y
fi
done < <(
git ls-files 'AK/Tests/Test*.cpp' | xargs -i basename {}
)
if [ "n" != "${MISSING_FILES}" ] ; then
echo "Some files are missing from the AK/Tests/CMakeLists.txt."
echo "If a new test file is being added, ensure it is in the CMakeLists.txt."
echo "This ensures the new tests are always run."
exit 1
fi

View file

@ -6,6 +6,7 @@ script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.." || exit 1
for cmd in \
Meta/check-ak-test-files.sh \
Meta/check-debug-flags.sh \
Meta/check-style.sh \
Meta/lint-executable-resources.sh \