automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, micro, updated. v1.13.2-24-


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, micro, updated. v1.13.2-24-gd19eb85
Date: Fri, 24 May 2013 10:36:31 +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 Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=d19eb85cc3fda93c0dd3df93a2c126dcae1de16a

The branch, micro has been updated
       via  d19eb85cc3fda93c0dd3df93a2c126dcae1de16a (commit)
       via  f859f346f66769dd6f66e472701d59fe6d88eda1 (commit)
      from  3ce4015f1bfff6277840502b080cfd2b22e05870 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 Makefile.am                     |    6 ++++
 t/ax/am-test-lib.sh             |   55 +++++++++++++++++++++++++++++----------
 t/lisp8.sh                      |   17 +++---------
 t/parallel-tests-concurrency.sh |    8 +----
 t/tap-more.sh                   |   20 +++++--------
 5 files changed, 61 insertions(+), 45 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 602d8ee..15b87c9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -524,6 +524,12 @@ check-no-trailing-backslash-in-recipes:
          CONFIG_SHELL='$(abs_top_builddir)/t/ax/shell-no-trail-bslash'
 .PHONY: check-no-trailing-backslash-in-recipes
 
+# Automake-generated Makefiles should work when run with parallel make.
+check-parallel:
+       $(AM_V_GEN)$(MAKE) $(AM_MAKEFLAGS) check \
+         AM_TESTSUITE_MAKE="$${AM_TESTSUITE_MAKE-$${MAKE-make}} -j4"
+.PHONY: check-parallel
+
 ## Checking the list of tests.
 test_subdirs = t t/pm contrib/t
 include $(srcdir)/t/CheckListOfTests.am
diff --git a/t/ax/am-test-lib.sh b/t/ax/am-test-lib.sh
index 8072ce0..7aed3ee 100644
--- a/t/ax/am-test-lib.sh
+++ b/t/ax/am-test-lib.sh
@@ -184,7 +184,9 @@ is_valid_varname ()
 #
 run_make ()
 {
-  am__make_redirect=
+  am__make_redirect_stdout=no
+  am__make_redirect_stderr=no
+  am__make_redirect_stdall=no
   am__make_flags=
   # Follow-up code might want to analyse these, so don't make them as
   # private, nor unset them later.
@@ -194,15 +196,16 @@ run_make ()
   while test $# -gt 0; do
     case $1 in
       -e) am_make_rc_exp=$2; shift;;
-      -O) am__make_redirect="$am__make_redirect >stdout";;
-      -E) am__make_redirect="$am__make_redirect 2>stderr";;
-      -M) am__make_redirect=">output 2>&1";;
+      -O) am__make_redirect_stdout=yes;;
+      -E) am__make_redirect_stderr=yes;;
+      -M) am__make_redirect_stdall=yes;;
       --) shift; break;;
        *) break;;
     esac
     shift
   done
 
+  # Use append mode here to avoid dropping output.  See automake bug#11413
   if using_gmake; then
     # We can trust GNU make to correctly pass macro definitions given
     # on the command line down to sub-make invocations, and this allow
@@ -247,16 +250,41 @@ run_make ()
      unset am__make_flags
   fi
 
-  eval "\$MAKE${am__make_redirect}"' ${1+"$@"}' || am_make_rc_got=$?
+  # In redirecting make output below, use append mode, to avoid
+  # dropping output.  See automake bug#11413 for details.
+  # The exit status of 253 is a more-or-less random choice, to
+  # help us catch possible errors in redirections and error out
+  # accordingly.
+  (
+    : exec $MAKE ${1+"$@"} # Display traces for future command.
+    set +x # We need to remove them now, not to pollute redirected stderr.
+    if test $am__make_redirect_stdall = yes; then
+      : > output && exec 1>>output 2>&1 || exit 253
+    else
+      if test $am__make_redirect_stdout = yes; then
+        : > stdout && exec 1>>stdout || exit 253
+      fi
+      if test $am__make_redirect_stderr = yes; then
+        : > stderr && exec 2>>stderr || exit 253
+      fi
+    fi
+    exec $MAKE ${1+"$@"}
+  ) || am_make_rc_got=$?
 
-  case $am__make_redirect in
-           *output*) cat output;;
-    *stderr*stdout*) cat stdout && cat stderr >&2;;
-    *stdout*stderr*) cat stdout && cat stderr >&2;;
-           *stdout*) cat stdout;;
-           *stderr*) cat stderr >&2;;
-  esac \
-    || fatal_ "displaying make output"
+  if test $am_make_rc_got -eq 253; then
+    fatal_ "run_make: problems in redirecting make output"
+  fi
+
+  if test $am__make_redirect_stdall = yes; then
+    cat output || fatal_ "displaying make output"
+  else
+    if test $am__make_redirect_stdout = yes; then
+      cat stdout || fatal_ "displaying make output"
+    fi
+    if test $am__make_redirect_stderr = yes; then
+      cat stderr >&2 || fatal_ "displaying make output"
+    fi
+  fi
 
   case $am_make_rc_exp in
     IGNORE)
@@ -271,7 +299,6 @@ run_make ()
      test $am_make_rc_exp -eq $am_make_rc_got || return 1
      ;;
   esac
-  unset am__make_redirect
 }
 
 # AUTOMAKE_run [-e STATUS] [-d DESCRIPTION] [--] [AUTOMAKE-ARGS...]
diff --git a/t/lisp8.sh b/t/lisp8.sh
index efb785c..c424886 100644
--- a/t/lisp8.sh
+++ b/t/lisp8.sh
@@ -37,26 +37,17 @@ $AUTOCONF
 $AUTOMAKE --add-missing
 ./configure
 
-# Use append mode here to avoid dropping output.  See automake bug#11413.
-# TODO: port this to to run_make(), and rewrite this hunk to use that
-#       function ...
-: >stdout
-$MAKE -j >>stdout || { cat stdout; exit 1; }
-cat stdout
+run_make -O -- -j
 
 test -f am-one.elc
 test -f am-two.elc
 test -f am-three.elc
 
+# Delete ...
 rm -f am-*.elc
 
-# Use append mode here to avoid dropping output.  See automake bug#11413.
-# TODO: port this to to run_make(), and rewrite this hunk to use that
-#       function ...
-: >stdout
-$MAKE -j >>stdout || { cat stdout; exit 1; }
-cat stdout
-
+# ... and recover.
+run_make -O -- -j
 test -f am-one.elc
 test -f am-two.elc
 test -f am-three.elc
diff --git a/t/parallel-tests-concurrency.sh b/t/parallel-tests-concurrency.sh
index dd51225..7fbd20e 100644
--- a/t/parallel-tests-concurrency.sh
+++ b/t/parallel-tests-concurrency.sh
@@ -40,7 +40,7 @@ END
     if test x"$j" = xNONE; then
       skip_ "can't run make in parallel mode"
     fi
-    $MAKE ${j}2 all >output 2>&1 || continue
+    run_make -M -- ${j}2 all || continue
     $EGREP -i "(warning|error):|-j[\"\'\` ]" output && continue
     break
   done
@@ -92,11 +92,7 @@ cd serial
 $MAKE ${j}1 check &
 cd ../parallel
 $sleep
-# Use append mode here to avoid dropping output.  See automake bug#11413.
-# TODO: port this to to run_make(), and rewrite this hunk to use that
-#       function ...
-: > stdout
-$MAKE ${j}4 check >> stdout
+run_make -O -- ${j}4 check
 cd ..
 # Ensure the tests are really being run in parallel mode: if this is
 # the case, the serial run of the dummy testsuite started above should
diff --git a/t/tap-more.sh b/t/tap-more.sh
index 14a7918..19d2e61 100644
--- a/t/tap-more.sh
+++ b/t/tap-more.sh
@@ -85,7 +85,7 @@ for try in 0 1; do
     mkdir build
     cd build
     srcdir=..
-    run_make=$MAKE
+    am_make=$MAKE
   elif test $try -eq 1; then
     # In-tree parallel build.
     srcdir=.
@@ -93,7 +93,7 @@ for try in 0 1; do
       *\ -j*)
         # Degree of parallelism already specified by the user: do
         # not override it.
-        run_make=$MAKE
+        :
         ;;
       *)
         # Some make implementations (e.g., HP-UX) don't grok '-j',
@@ -102,10 +102,12 @@ for try in 0 1; do
         # space between '-j' and the number of jobs (e.g., Solaris
         # dmake).  We need a runtime test to see what works.
         echo 'all:' > Makefile
-        for run_make in "$MAKE -j3" "$MAKE -j 3" "$MAKE"; do
-          $run_make && break
+        for am_make in "$MAKE -j3" "$MAKE -j 3" "$MAKE"; do
+          $am_make && break
         done
         rm -f Makefile
+        MAKE=$am_make
+        unset am_make
         ;;
     esac
   else
@@ -117,10 +119,7 @@ for try in 0 1; do
 
   # Success.
 
-  # Use append mode here to avoid dropping output.  See automake bug#11413.
-  : >stdout
-  $run_make check >>stdout || { cat stdout; exit 1; }
-  cat stdout
+  run_make -O check
   count_test_results total=6 pass=4 fail=0 xpass=0 xfail=1 skip=1 error=0
   grep '^PASS: 1\.test 1 - mu$' stdout
   grep '^SKIP: 1\.test 2 zardoz # SKIP$' stdout
@@ -137,10 +136,7 @@ for try in 0 1; do
 
   : > not-skip
   : > bail-out
-  # Use append mode here to avoid dropping output.  See automake bug#11413.
-  : >stdout
-  $run_make check >>stdout && { cat stdout; exit 1; }
-  cat stdout
+  run_make -e FAIL -O check
   count_test_results total=7 pass=4 fail=1 xpass=0 xfail=1 skip=0 error=1
   grep '^PASS: 1\.test 1 - mu$' stdout
   grep '^FAIL: 1\.test 2 zardoz$' stdout


hooks/post-receive
-- 
GNU Automake



reply via email to

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