summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog30
-rw-r--r--Makefile.in2
-rw-r--r--doc/Makefile.in2
-rw-r--r--lib/Automake/Makefile.in2
-rw-r--r--lib/Automake/tests/Makefile.in2
-rw-r--r--lib/Makefile.in2
-rw-r--r--lib/am/Makefile.in2
-rw-r--r--lib/am/inst-vars.am2
-rwxr-xr-xlib/tap-driver.sh29
-rw-r--r--m4/Makefile.in2
-rw-r--r--tests/Makefile.in2
11 files changed, 64 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 745971a5e..e91a3e63f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,35 @@
2011-09-28 Stefano Lattarini <stefano.lattarini@gmail.com>
+ maintcheck: fix usage of `cd' instead of `$(am__cd)'
+ * lib/am/inst-vars.am (am__uninstall_files_from_dir): Use
+ `$(am__cd)', not plain `cd'.
+
+2011-09-28 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tap/awk: account for unusual korn shell signal handling behaviour
+ This change has been motivated by a testsuite failure on Debian
+ with the AT&T Korn Shell version 93u-1.
+ * lib/tap-driver.sh: Temporarily ignore some common signals when
+ waiting for the test command to complete, to avoid premature exit
+ in Korn shells that propagate to themselves signals that have
+ killed a child process.
+ See also related commit `v1.11-1342-g6321ad3'.
+
+2011-09-28 Stefano Lattarini <stefano.lattarini@gmail.com>
+
+ tap/awk: handle exit statuses > 256 (seen on few korn shells)
+ Some Korn shells, when a child process die due to signal number
+ n, can leave in $? an exit status of 256+n instead of the more
+ standard 128+n. Apparently, both behaviours are allowed by
+ POSIX, so be prepared to handle them both.
+ This change has been motivated by a testsuite failure on Debian
+ with the AT&T Korn Shell version 93u-1.
+ * lib/tap-driver.sh (get_test_exit_message): Handle the described
+ Korn Shell behaviour too.
+ ($scriptversion): Update.
+
+2011-09-28 Stefano Lattarini <stefano.lattarini@gmail.com>
+
tests: remove redundant workaround for Solaris /bin/sh
After previous commit `v1.11-1424-g27a399a', some workarounds for
Solaris 10 /bin/sh are no more required, and in fact they have
diff --git a/Makefile.in b/Makefile.in
index 813a40285..66d38a963 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -96,7 +96,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(bindir)"
SCRIPTS = $(bin_SCRIPTS)
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 288904efd..a156070a0 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -137,7 +137,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
man1dir = $(mandir)/man1
NROFF = nroff
diff --git a/lib/Automake/Makefile.in b/lib/Automake/Makefile.in
index 81f9f7d38..d1c68f93b 100644
--- a/lib/Automake/Makefile.in
+++ b/lib/Automake/Makefile.in
@@ -107,7 +107,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(perllibdir)" "$(DESTDIR)$(perllibdir)"
DATA = $(dist_perllib_DATA) $(nodist_perllib_DATA)
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index 2b336f438..15f2b7846 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -120,7 +120,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
# Restructured Text title and section.
am__rst_title = sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'
diff --git a/lib/Makefile.in b/lib/Makefile.in
index ad046760b..1fc83f499 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -110,7 +110,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(pkgvdatadir)" "$(DESTDIR)$(scriptdir)"
DATA = $(dist_pkgvdata_DATA) $(dist_script_DATA)
diff --git a/lib/am/Makefile.in b/lib/am/Makefile.in
index 1a9b01afc..ff18408dc 100644
--- a/lib/am/Makefile.in
+++ b/lib/am/Makefile.in
@@ -100,7 +100,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(amdir)"
DATA = $(dist_am_DATA)
diff --git a/lib/am/inst-vars.am b/lib/am/inst-vars.am
index 477513ff8..a807f79be 100644
--- a/lib/am/inst-vars.am
+++ b/lib/am/inst-vars.am
@@ -67,7 +67,7 @@ am__uninstall_files_from_dir = { \
## is indeed desired and welcome (better to fail loudly thasn silently).
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
endif %?FIRST%
diff --git a/lib/tap-driver.sh b/lib/tap-driver.sh
index 44317d9de..e9f103755 100755
--- a/lib/tap-driver.sh
+++ b/lib/tap-driver.sh
@@ -23,7 +23,7 @@
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
-scriptversion=2011-08-25.11; # UTC
+scriptversion=2011-09-28.14; # UTC
# Make unconditional expansion of undefined variables an error. This
# helps a lot in preventing typo-related bugs.
@@ -116,14 +116,27 @@ else
fi
{
- { if test $merge -gt 0; then
+ (
+ # Ignore common signals (in this subshell only!) to avoid potential
+ # problems with Korn shells. Some Korn shells are known to propagate
+ # to themselves signals that have killed a child process they were
+ # waiting for (this is done at least for SIGINT -- and usually only
+ # for it in truth); this would cause a premature exit in this subshell,
+ # so that the awk script would never seen the exit status it expects
+ # on its last input line (and which is displayed below by the last
+ # `echo $?' command), and would thus die reporting an internal error.
+ # For more information, see the Autoconf manual and the threads:
+ # <http://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
+ # <http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2009-February/004121.html>
+ trap : 1 3 2 13 15
+ if test $merge -gt 0; then
exec 2>&1
else
exec 2>&3
fi
"$@"
echo $?
- } | LC_ALL=C ${AM_TAP_AWK-awk} \
+ ) | LC_ALL=C ${AM_TAP_AWK-awk} \
-v me="$me" \
-v test_script_name="$test_name" \
-v log_file="$log_file" \
@@ -440,7 +453,15 @@ function get_test_exit_message(status)
exit_details = " (command not found?)"
else if (status >= 128 && status <= 255)
exit_details = sprintf(" (terminated by signal %d?)", status - 128)
- else if (status >= 256)
+ else if (status > 256 && status <= 384)
+ # We used to report an "abnormal termination" here, but some Korn
+ # shells, when a child process die due to signal number n, can leave
+ # in $? an exit status of 256+n instead of the more standard 128+n.
+ # Apparently, both behaviours are allowed by POSIX (2008), so be
+ # prepared to handle them both.
+ exit_details = sprintf(" (terminated by signal %d?)", status - 256)
+ else
+ # Never seen in practice.
exit_details = " (abnormal termination)"
return sprintf("exited with status %d%s", status, exit_details)
}
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 149e968fb..c55b3edb8 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -100,7 +100,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(automake_acdir)" \
"$(DESTDIR)$(system_acdir)"
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 6e3fd4939..6c5691752 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -122,7 +122,7 @@ am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
- cd "$$dir" && rm -f $$files; }; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
}
# Restructured Text title and section.
am__rst_title = sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'