Git Hooks: Merge hook scripts and tests from blender-devops

This commit is contained in:
Bart van der Braak
2025-12-18 11:44:03 +01:00
parent 620838eea7
commit 053119419c
16 changed files with 691 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
# Run single test provided via $1.
# Prints "ok" on success, "FAIL" on failure, and returns the appropriate status code.
run_test() {
local TEST_SCRIPT=$1
printf '%s' "Running $(basename "${TEST_SCRIPT}")... "
# Run test silently.
# Return 0 on success, 1 on failure.
if "${TEST_SCRIPT}" > /dev/null 2>&1; then
echo "ok"
return 0
else
echo "FAIL"
return 1
fi
}
# Run all tests in the given directory (specified as $1).
# All .sh tests are executed in sorted order.
# The script reports how many tests failed and exits with non-zero status if any did.
run_tests_in_directory() {
local DIR=$1
local failed=0
echo "== Running tests in directory $(basename "${DIR}") =="
# Iterate over all .sh files and run them one by one.
for test_script in $(ls "${DIR}" | sort); do
case "${test_script}" in
*.sh)
if ! run_test "${DIR}/${test_script}"; then
failed=$((failed + 1))
fi
;;
esac
done
# After running all tests, report overall result.
if [ "$failed" -ne 0 ]; then
echo "$failed test(s) failed."
exit 1
else
echo "All tests passed."
fi
}