summaryrefslogtreecommitdiff
path: root/t/self-check-shell-no-trail-bslash.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/self-check-shell-no-trail-bslash.sh')
-rw-r--r--t/self-check-shell-no-trail-bslash.sh32
1 files changed, 31 insertions, 1 deletions
diff --git a/t/self-check-shell-no-trail-bslash.sh b/t/self-check-shell-no-trail-bslash.sh
index 8c9d38ed9..19198898b 100644
--- a/t/self-check-shell-no-trail-bslash.sh
+++ b/t/self-check-shell-no-trail-bslash.sh
@@ -34,12 +34,42 @@ bad:
END
SHELL=$am_testaux_builddir/shell-no-trail-bslash
+
$SHELL -c 'exit 0'
test "$($SHELL -c 'echo is o\k')" = "is ok"
+echo 'echo is ok\"' > ok.sh
+$SHELL ./ok.sh
+test "$($SHELL ./ok.sh)" = "is ok\""
+
+tab=' '
+nl='
+'
+for sfx in \
+ '\' \
+ '\\' \
+ '\\\\\' \
+ '\ ' \
+ "\\$tab" \
+ "\\ $tab$tab " \
+ "\\$nl" \
+ "\\ $nl " \
+ "\\$nl$nl$nl" \
+; do
+ for pfx in "" "echo bad" ": a${nl}# multine${nl}: text"; do
+ cmd=${pfx}${sfx}
+ printf '%s\n' "$cmd" > bad.sh
+ for args in '-c "$cmd"' './bad.sh'; do
+ eval "\$SHELL $args 2>stderr && { cat stderr >&2; exit 1; }; :"
+ cat stderr >&2
+ $FGREP "recipe/script ends with backslash character" stderr
+ done
+ done
+done
+
$MAKE good
run_make -E -e FAIL bad SHELL="$SHELL"
-$FGREP "recipe ends with backslash character" stderr
+$FGREP "recipe/script ends with backslash character" stderr
: