diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-26 11:57:13 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-26 11:57:14 -0700 |
commit | 30db51a3fec68bfa5a59b9b3886162f536e37320 (patch) | |
tree | 3eedb550880a7bb1fe0697aee575154492fd9d15 /t/test-lib.sh | |
parent | 55a3b3c26eba7fae1fb9f7be37144b30b68fd8fe (diff) | |
parent | fc99da1fb7eebae0ccca7709b5fa3e55178d8434 (diff) | |
download | git-30db51a3fec68bfa5a59b9b3886162f536e37320.tar.gz |
Merge branch 'jk/test-chain-lint'
People often forget to chain the commands in their test together
with &&, leaving a failure from an earlier command in the test go
unnoticed. The new GIT_TEST_CHAIN_LINT mechanism allows you to
catch such a mistake more easily.
* jk/test-chain-lint: (36 commits)
t9001: drop save_confirm helper
t0020: use test_* helpers instead of hand-rolled messages
t: simplify loop exit-code status variables
t: fix some trivial cases of ignored exit codes in loops
t7701: fix ignored exit code inside loop
t3305: fix ignored exit code inside loop
t0020: fix ignored exit code inside loops
perf-lib: fix ignored exit code inside loop
t6039: fix broken && chain
t9158, t9161: fix broken &&-chain in git-svn tests
t9104: fix test for following larger parents
t4104: drop hand-rolled error reporting
t0005: fix broken &&-chains
t7004: fix embedded single-quotes
t0050: appease --chain-lint
t9001: use test_when_finished
t4117: use modern test_* helpers
t6034: use modern test_* helpers
t1301: use modern test_* helpers
t0020: use modern test_* helpers
...
Diffstat (limited to 't/test-lib.sh')
-rw-r--r-- | t/test-lib.sh | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/t/test-lib.sh b/t/test-lib.sh index 9914d3e1cf..4ea99a209d 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -229,6 +229,12 @@ do --root=*) root=$(expr "z$1" : 'z[^=]*=\(.*\)') shift ;; + --chain-lint) + GIT_TEST_CHAIN_LINT=1 + shift ;; + --no-chain-lint) + GIT_TEST_CHAIN_LINT=0 + shift ;; -x) trace=t verbose=t @@ -522,6 +528,16 @@ test_eval_ () { test_run_ () { test_cleanup=: expecting_failure=$2 + + if test "${GIT_TEST_CHAIN_LINT:-0}" != 0; then + # 117 is magic because it is unlikely to match the exit + # code of other programs + test_eval_ "(exit 117) && $1" + if test "$?" != 117; then + error "bug in the test script: broken &&-chain: $1" + fi + fi + setup_malloc_check test_eval_ "$1" eval_ret=$? |