autoconf-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Autoconf source repository branch, master, updated. v2.63b-67-


From: Eric Blake
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.63b-67-g1ba58ec
Date: Fri, 03 Jul 2009 19:10:52 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=1ba58ec955f5e2f265f68e9fd615e7e3e4fb74eb

The branch, master has been updated
       via  1ba58ec955f5e2f265f68e9fd615e7e3e4fb74eb (commit)
      from  596644ca294922cc29a3f803f1226a9433e4af66 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1ba58ec955f5e2f265f68e9fd615e7e3e4fb74eb
Author: Eric Blake <address@hidden>
Date:   Thu Jul 2 11:32:39 2009 -0600

    Avoid syntax error in ash.
    
    * lib/autotest/general.m4 (AT_INIT) <driver loop>: Avoid syntax
    errors on shells that don't recognize <>.
    * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Also skip parallel
    tests for this reason.   Skip based on the shell to be tested,
    not the shell driving the testsuite.
    (parallel syntax error): Rearrange similar to previous patch.
    (parallel test execution): Defer skip until after serial tests.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog               |   11 +++++++++++
 doc/autoconf.texi       |   12 ++++++++++++
 lib/autotest/general.m4 |    7 ++++---
 tests/autotest.at       |   30 ++++++++++++++++++++----------
 4 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4d5d532..68c4490 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-07-03  Eric Blake  <address@hidden>
+
+       Avoid syntax error in ash.
+       * lib/autotest/general.m4 (AT_INIT) <driver loop>: Avoid syntax
+       errors on shells that don't recognize <>.
+       * tests/autotest.at (AT_SKIP_PARALLEL_TESTS): Also skip parallel
+       tests for this reason.   Skip based on the shell to be tested,
+       not the shell driving the testsuite.
+       (parallel syntax error): Rearrange similar to previous patch.
+       (parallel test execution): Defer skip until after serial tests.
+
 2009-07-02  Eric Blake  <address@hidden>
 
        Skip test on shells that can't catch syntax failure.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 04e3b10..3528f53 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -14187,6 +14187,18 @@ escape, while @samp{: `cd /zorglub 2>/dev/null`} works 
properly.
 It is worth noting that Zsh (but not Ash nor Bash) makes it possible
 in assignments though: @samp{foo=`cd /zorglub` 2>/dev/null}.
 
+Some shells, like @command{ash}, don't recognize bi-directional
+redirection (@samp{<>}).  And even on shells that recognize it, it is
+not portable to use on fifos: Posix does not require read-write support
+for named pipes, and Cygwin does not support it:
+
address@hidden
+$ @kbd{mkfifo fifo}
+$ @kbd{exec 5<>fifo}
+$ @kbd{echo hi >&5}
+bash: echo: write error: Communication error on send
address@hidden example
+
 When catering to old systems, don't redirect the same file descriptor
 several times, as you are doomed to failure under Ultrix.
 
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index ddc2270..50c2ff7 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -1296,8 +1296,9 @@ at_first=:
 if test $at_jobs -ne 1 &&
      rm -f "$at_job_fifo" &&
      test -n "$at_job_group" &&
-     ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null &&
-     exec AT_JOB_FIFO_FD<> "$at_job_fifo"
+     ( mkfifo "$at_job_fifo" && eval 'exec AT_JOB_FIFO_FD<> "$at_job_fifo"' \
+       && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null &&
+     eval 'exec AT_JOB_FIFO_FD<> "$at_job_fifo"'
 then
   # FIFO job dispatcher.
 
@@ -1352,7 +1353,7 @@ dnl optimize away the _AT_CHECK subshell, so normalize 
here.
 dnl Ignore PIPE signals that stem from writing back the token.
            trap "" PIPE
            echo stop > "$at_stop_file"
-           echo token >&6
+           echo token >&AT_JOB_FIFO_FD
 dnl Do not reraise the default PIPE handler.
 dnl It wreaks havoc with ksh, see above.
 dnl        trap - 13
diff --git a/tests/autotest.at b/tests/autotest.at
index 6f0bd1d..e83b329 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -990,8 +990,11 @@ m4_define([AT_SKIP_PARALLEL_TESTS],
 [# Per BUGS, we have not yet figured out how to run parallel tests cleanly
 # under dash and some ksh variants.  For now, only run this test under
 # limited conditions; help is appreciated in widening this test base.
-AT_CHECK([test -n "${BASH_VERSION+set}${ZSH_VERSION+set}]]dnl
-[[${TEST_PARALLEL_AUTOTEST+set}" || exit 77])
+AT_CHECK([${CONFIG_SHELL-$SHELL} -c 'test -n "${BASH_VERSION+set}]]dnl
+[[${ZSH_VERSION+set}${TEST_PARALLEL_AUTOTEST+set}"' || exit 77])
+# The parallel scheduler requires mkfifo and bidirectional redirection to work.
+AT_CHECK([mkfifo fifo || exit 77])
+AT_CHECK([${CONFIG_SHELL-$SHELL} -c 'eval "exec 5<>fifo"' || exit 77])
 ])
 
 
@@ -1001,8 +1004,6 @@ AT_CHECK([test -n 
"${BASH_VERSION+set}${ZSH_VERSION+set}]]dnl
 
 AT_SETUP([parallel test execution])
 
-AT_SKIP_PARALLEL_TESTS
-
 # This test tries to ensure that -j runs tests in parallel.
 # Such a test is inherently racy, because there are no real-time
 # guarantees about scheduling delays.  So we try to minimize
@@ -1053,13 +1054,17 @@ m4_for([count], [1], ]]AT_PARALLEL_NTESTS[[, [],
 ])
 ]])
 
+# Even if parallel jobs are not supported, the command line must work.
 AT_CHECK([$CONFIG_SHELL ./micro-suite --help | grep " --jobs"], [0], [ignore])
 AT_CHECK([$CONFIG_SHELL ./micro-suite -j2foo], [1], [], [stderr])
 AT_CHECK([grep 'non-numeric argument' stderr], [], [ignore])
 AT_CHECK([$CONFIG_SHELL ./micro-suite --jobs=foo], [1], [], [stderr])
 AT_CHECK([grep 'non-numeric argument' stderr], [], [ignore])
-AT_CHECK([$CONFIG_SHELL ./micro-suite -j[]AT_PARALLEL_NJOBS], [], [stdout])
+
+AT_SKIP_PARALLEL_TESTS
+
 # Ensure that all tests run, and lines are not split.
+AT_CHECK([$CONFIG_SHELL ./micro-suite -j[]AT_PARALLEL_NJOBS], [], [stdout])
 AT_CHECK([grep -c '^.\{53\}ok' stdout], [], [AT_PARALLEL_NTESTS
 ])
 # Running one test with -j should produce correctly formatted output:
@@ -1074,8 +1079,6 @@ AT_CHECK([grep -c '^.\{53\}ok' stdout], [], [1
 AT_CHECK([$CONFIG_SHELL ./micro-suite -j -k nomatch], [], [ignore])
 AT_CHECK([$CONFIG_SHELL ./micro-suite -j3 -k nomatch], [], [ignore])
 
-# The parallel scheduler requires mkfifo to work.
-AT_CHECK([mkfifo fifo || exit 77])
 mkdir serial
 
 # Unfortunately, the return value of wait is unreliable,
@@ -1113,9 +1116,16 @@ AT_CHECK_AT_TEST([parallel syntax error],
    AT_CLEANUP
    AT_SETUP([another test])
    AT_CHECK([:])],
-  [], [1], [], [stderr], [AT_SKIP_PARALLEL_TESTS],
-  [AT_CHECK([grep "unable to parse test group: 2" stderr], [0], [ignore])
-   AT_CHECK([$CONFIG_SHELL ./micro-suite -j 3], [0], [ignore])], [-j])
+  [], [0], [], [], [AT_SKIP_PARALLEL_TESTS],
+  [dnl Until we can find a way to avoid catastrophic failure (ash) or
+   dnl lack of failure (zsh), skip the rest of this test on such shells.
+   echo 'if' > syntax
+   AT_CHECK([${CONFIG_SHELL-$SHELL} -c 'case `. ./syntax; echo $?` in
+                 0|"") exit 77;;
+               esac'], [0], [ignore], [ignore])
+   AT_CHECK([$CONFIG_SHELL ./micro-suite -j], [1], [ignore], [stderr])
+   AT_CHECK([grep "unable to parse test group: 2" stderr], [0], [ignore])],
+  [-j2 1 3])
 
 AT_CHECK_AT_TEST([parallel errexit],
   [AT_CHECK([false])


hooks/post-receive
-- 
GNU Autoconf source repository




reply via email to

[Prev in Thread] Current Thread [Next in Thread]