summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2014-12-30 20:59:22 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2014-12-30 20:59:22 +0100
commit36812809ab75a07e5e8387986fc35a805d80fa36 (patch)
treede858f71a52d9be1247f5e855dec010a53c6d013 /t
parentadc17cc491e2b6b1d5e0e966c6f03fed3573b980 (diff)
parent4cb0327adc1f085f4b9bacd0e6e1c2d7a88b92f6 (diff)
downloadautomake-36812809ab75a07e5e8387986fc35a805d80fa36.tar.gz
Merge branch 'minor'
* minor: docs: "make distcheck" implementation details are not to be abused NEWS: improve and adjust in light of the oncoming 1.15 release shell-no-trail-bslash: improve diagnostic in case of failure Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't')
-rw-r--r--t/ax/shell-no-trail-bslash.in19
-rw-r--r--t/self-check-shell-no-trail-bslash.sh8
2 files changed, 21 insertions, 6 deletions
diff --git a/t/ax/shell-no-trail-bslash.in b/t/ax/shell-no-trail-bslash.in
index 322495824..26979b617 100644
--- a/t/ax/shell-no-trail-bslash.in
+++ b/t/ax/shell-no-trail-bslash.in
@@ -26,6 +26,7 @@ am_SHELL=${AM_TESTSUITE_SHELL-'@SHELL@'}
(
set -e
shell_command=; unset shell_command
+ shell_script=; unset shell_script
while test $# -gt 0; do
case $1 in
# The shell might be invoked by make e.g. as "sh -ec" or "sh -ce".
@@ -40,7 +41,8 @@ am_SHELL=${AM_TESTSUITE_SHELL-'@SHELL@'}
if test x${shell_command+"set"} != x"set"; then
if test $# -gt 0; then
- shell_command=$(cat "$1")
+ shell_script=$1
+ shell_command=$(cat <"$shell_script")
else
# Some make implementations, like *BSD's, pass the recipes to the
# shell through its standard input. Trying to run our extra checks
@@ -48,6 +50,7 @@ am_SHELL=${AM_TESTSUITE_SHELL-'@SHELL@'}
exit 0
fi
fi
+ original_shell_command=$shell_command
tab=' '
nl='
@@ -59,10 +62,16 @@ am_SHELL=${AM_TESTSUITE_SHELL-'@SHELL@'}
case "$shell_command" in
*\\)
- printf '%s\n' "$0: recipe/script ends with backslash character" >&2
- printf '%s\n' "=== BEGIN recipe/script" >&2
- printf '%s\n' "${am_shell_command-}" >&2
- printf '%s\n' "=== END recipe/script" >&2
+ {
+ printf '%s\n' "$0: recipe/script ends with backslash character"
+ printf '%s\n' "=== BEGIN recipe/script"
+ if test x${shell_script+"set"} = x"set"; then
+ cat <"$shell_script"
+ else
+ printf '%s\n' "$original_shell_command"
+ fi
+ printf '%s\n' "=== END recipe/script"
+ } >&2
exit 1
;;
esac
diff --git a/t/self-check-shell-no-trail-bslash.sh b/t/self-check-shell-no-trail-bslash.sh
index 19198898b..8b7afa5c5 100644
--- a/t/self-check-shell-no-trail-bslash.sh
+++ b/t/self-check-shell-no-trail-bslash.sh
@@ -58,11 +58,17 @@ for sfx in \
; do
for pfx in "" "echo bad" ": a${nl}# multine${nl}: text"; do
cmd=${pfx}${sfx}
- printf '%s\n' "$cmd" > bad.sh
+ printf '%s' "$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
+ cmd="$cmd" $PERL -w -e '
+ undef $/;
+ $_ = <>;
+ index($_, $ENV{cmd}) >= 0 or exit 1;
+ ' <stderr
+ $FGREP "$cmd" stderr
done
done
done