diff options
Diffstat (limited to 't/self-check-shell-no-trail-bslash.sh')
-rw-r--r-- | t/self-check-shell-no-trail-bslash.sh | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/t/self-check-shell-no-trail-bslash.sh b/t/self-check-shell-no-trail-bslash.sh index 14ee02cdf..19198898b 100644 --- a/t/self-check-shell-no-trail-bslash.sh +++ b/t/self-check-shell-no-trail-bslash.sh @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2012-2013 Free Software Foundation, Inc. +# Copyright (C) 2012-2014 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -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 : |