mirror of
https://github.com/git/git
synced 2024-11-05 04:53:18 +00:00
t/Makefile: run unit tests alongside shell tests
Add a wrapper script to allow `prove` to run both shell tests and unit tests from a single invocation. This avoids issues around running prove twice in CI, as discussed in [1]. Additionally, this moves the unit tests into the main dev workflow, so that errors can be spotted more quickly. Accordingly, we remove the separate unit tests step for Linux CI. (We leave the Windows CI unit-test step as-is, because the sharding scheme there involves selecting specific test files rather than running `make test`.) [1] https://lore.kernel.org/git/pull.1613.git.1699894837844.gitgitgadget@gmail.com/ Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5bbc8c927f
commit
cc75e4a08f
3 changed files with 19 additions and 3 deletions
|
@ -50,8 +50,6 @@ if test -n "$run_tests"
|
|||
then
|
||||
group "Run tests" make test ||
|
||||
handle_failed_tests
|
||||
group "Run unit tests" \
|
||||
make DEFAULT_UNIT_TEST_TARGET=unit-tests-prove unit-tests
|
||||
fi
|
||||
check_unignored_build_artifacts
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ failed:
|
|||
test -z "$$failed" || $(MAKE) $$failed
|
||||
|
||||
prove: pre-clean check-chainlint $(TEST_LINT)
|
||||
@echo "*** prove ***"; $(CHAINLINTSUPPRESS) $(PROVE) --exec '$(TEST_SHELL_PATH_SQ)' $(GIT_PROVE_OPTS) $(T) :: $(GIT_TEST_OPTS)
|
||||
@echo "*** prove (shell & unit tests) ***"; $(CHAINLINTSUPPRESS) TEST_SHELL_PATH='$(TEST_SHELL_PATH_SQ)' $(PROVE) --exec ./run-test.sh $(GIT_PROVE_OPTS) $(T) $(UNIT_TESTS) :: $(GIT_TEST_OPTS)
|
||||
$(MAKE) clean-except-prove-cache
|
||||
|
||||
$(T):
|
||||
|
|
18
t/run-test.sh
Executable file
18
t/run-test.sh
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
# A simple wrapper to run shell tests via TEST_SHELL_PATH,
|
||||
# or exec unit tests directly.
|
||||
|
||||
case "$1" in
|
||||
*.sh)
|
||||
if test -z "${TEST_SHELL_PATH}"
|
||||
then
|
||||
echo >&2 "ERROR: TEST_SHELL_PATH is empty or not set"
|
||||
exit 1
|
||||
fi
|
||||
exec "${TEST_SHELL_PATH}" "$@"
|
||||
;;
|
||||
*)
|
||||
exec "$@"
|
||||
;;
|
||||
esac
|
Loading…
Reference in a new issue