summaryrefslogtreecommitdiff
path: root/t/chainlint/if-then-else.test
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2018-08-02 15:30:46 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-08-02 15:30:46 -0700
commitcfec6133cfcd97a23ca29c7d0ad8d2961796dd52 (patch)
tree7bdee58508f7e17c33add21d8f436687206d7446 /t/chainlint/if-then-else.test
parentMerge branch 'jt/tags-to-promised-blobs-fix' (diff)
parentt/chainlint.sed: drop extra spaces from regex character class (diff)
downloadtgif-cfec6133cfcd97a23ca29c7d0ad8d2961796dd52.tar.xz
Merge branch 'es/chain-lint-in-subshell'
Look for broken "&&" chains that are hidden in subshell, many of which have been found and corrected. * es/chain-lint-in-subshell: t/chainlint.sed: drop extra spaces from regex character class t/chainlint: add chainlint "specialized" test cases t/chainlint: add chainlint "complex" test cases t/chainlint: add chainlint "cuddled" test cases t/chainlint: add chainlint "loop" and "conditional" test cases t/chainlint: add chainlint "nested subshell" test cases t/chainlint: add chainlint "one-liner" test cases t/chainlint: add chainlint "whitespace" test cases t/chainlint: add chainlint "basic" test cases t/Makefile: add machinery to check correctness of chainlint.sed t/test-lib: teach --chain-lint to detect broken &&-chains in subshells
Diffstat (limited to 't/chainlint/if-then-else.test')
-rw-r--r--t/chainlint/if-then-else.test28
1 files changed, 28 insertions, 0 deletions
diff --git a/t/chainlint/if-then-else.test b/t/chainlint/if-then-else.test
new file mode 100644
index 0000000000..9bd8e9a4c6
--- /dev/null
+++ b/t/chainlint/if-then-else.test
@@ -0,0 +1,28 @@
+(
+# LINT: 'if', 'then', 'elif', 'else', 'fi' do not need "&&"
+ if test -n ""
+ then
+# LINT: missing "&&" on 'echo'
+ echo very
+# LINT: last statement before 'elif' does not need "&&"
+ echo empty
+ elif test -z ""
+# LINT: last statement before 'else' does not need "&&"
+ echo foo
+ else
+ echo foo &&
+# LINT: last statement before 'fi' does not need "&&"
+ cat <<-\EOF
+ bar
+ EOF
+# LINT: missing "&&" on 'fi'
+ fi
+ echo poodle
+) &&
+(
+# LINT: 'then' on same line as 'if'
+ if test -n ""; then
+ echo very &&
+ echo empty
+ if
+)