Merge branch 'master' into testsuite-work
authorStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 5 Nov 2011 20:39:54 +0000 (21:39 +0100)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Sat, 5 Nov 2011 20:39:54 +0000 (21:39 +0100)
* master:
  ar-lib: fix configure output for "unrecognized archiver interface"

ChangeLog
m4/ar-lib.m4
tests/ar4.test
tests/ar5.test

index 2269ed7..433c3f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
 
+       ar-lib: fix configure output for "unrecognized archiver interface"
+       * m4/ar-lib.m4: Ensure that, even when an error is hit while trying
+       to determine the archiver interface kind, the "checking archiver
+       interface" message from configure is properly terminated before
+       an error message is printed, to avoid slightly garbled output.
+       * tests/ar4.test: Enhance.
+       * tests/ar5.test: Likewise.
+
+2011-11-05  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
        tests: more faithful 'installcheck' support in few tests
        * tests/ar-lib5a.test: Use the `$am_scriptdir' variable instead
        of "$testsrcdir/../lib" or "$top_testsrcdir/lib", to test more
index 822ca60..e45c558 100644 (file)
@@ -33,8 +33,7 @@ AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
         if test "$ac_status" -eq 0; then
           am_cv_ar_interface=lib
         else
-          m4_default([$1],
-            [AC_MSG_ERROR([could not determine $AR interface])])
+          am_cv_ar_interface=unknown
         fi
       fi
       rm -f conftest.lib libconftest.a
@@ -53,6 +52,10 @@ lib)
   # similar.
   AR="$am_aux_dir/ar-lib $AR"
   ;;
+unknown)
+  m4_default([$1],
+             [AC_MSG_ERROR([could not determine $AR interface])])
+  ;;
 esac
 AC_SUBST([AR])dnl
 ])
index 60db9e7..2faeeed 100755 (executable)
@@ -25,9 +25,13 @@ END
 $ACLOCAL
 $AUTOCONF
 
-./configure AR=/bin/false 2>stderr && { cat stderr >&2; Exit 1; }
+st=0; ./configure AR=/bin/false >stdout 2>stderr || st=$?
+cat stdout
 cat stderr >&2
+test $st -eq 1
 
-grep 'configure: error: could not determine /bin/false interface' stderr
+grep '^checking.* archiver .*interface.*\.\.\. unknown' stdout
+grep '^configure: error: could not determine /bin/false interface' stderr
+ls *conftest* && Exit 1
 
 :
index 8908ca7..000daa7 100755 (executable)
 . ./defs || Exit 1
 
 cat >> configure.in << 'END'
-AM_PROG_AR([echo spy > bad-archiver-interface-detected])
+AM_PROG_AR([
+  echo spy > bad-archiver-interface-detected
+  AC_MSG_CHECKING([for something else])
+  AC_MSG_RESULT([found it])
+  echo Grep This
+])
 END
 
 $ACLOCAL
 $AUTOCONF
 
-./configure AR=/bin/false
+./configure AR=/bin/false >stdout || { cat stdout; Exit 1; }
+cat stdout
+grep '^checking.* archiver .*interface.*\.\.\. unknown$' stdout
+grep '^checking for something else\.\.\. found it$' stdout
+grep '^Grep This$' stdout
 test -f bad-archiver-interface-detected
 
 :