diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2021-12-09 06:11:06 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-12-13 19:29:48 +0100 |
commit | 74d2f5695dab4454097b2d1693f7206e8328724a (patch) | |
tree | 6d4a147a909ef45477fd1509e83530b7ed39bec9 /t/t3700-add.sh | |
parent | tests: use test_write_lines() to generate line-oriented output (diff) | |
download | git-74d2f5695dab4454097b2d1693f7206e8328724a.tar.xz git-74d2f5695dab4454097b2d1693f7206e8328724a.zip |
tests: fix broken &&-chains in compound statements
The top-level &&-chain checker built into t/test-lib.sh causes tests to
magically exit with code 117 if the &&-chain is broken. However, it has
the shortcoming that the magic does not work within `{...}` groups,
`(...)` subshells, `$(...)` substitutions, or within bodies of compound
statements, such as `if`, `for`, `while`, `case`, etc. `chainlint.sed`
partly fills in the gap by catching broken &&-chains in `(...)`
subshells, but bugs can still lurk behind broken &&-chains in the other
cases.
Fix broken &&-chains in compound statements in order to reduce the
number of possible lurking bugs.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3700-add.sh')
-rwxr-xr-x | t/t3700-add.sh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/t/t3700-add.sh b/t/t3700-add.sh index 283a66955d..23c3c214c5 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -141,8 +141,8 @@ test_expect_success 'check correct prefix detection' ' test_expect_success 'git add with filemode=0, symlinks=0, and unmerged entries' ' for s in 1 2 3 do - echo $s > stage$s - echo "100755 $(git hash-object -w stage$s) $s file" + echo $s > stage$s && + echo "100755 $(git hash-object -w stage$s) $s file" && echo "120000 $(printf $s | git hash-object -w -t blob --stdin) $s symlink" done | git update-index --index-info && git config core.filemode 0 && |