summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2011-11-10 12:51:47 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2011-11-10 12:51:47 +0100
commit14cc1b8d4bc61f8be0a8bfd2d1a2f505ad3f0328 (patch)
tree2331cb178a1066e43a42f56cd680476352a75c05 /tests
parent620ba14f54a994d3b695001546a4734282902bba (diff)
parent18f250e8c8d3c1b3b667937447515fd05095754e (diff)
downloadautomake-14cc1b8d4bc61f8be0a8bfd2d1a2f505ad3f0328.tar.gz
Merge branch 'maint' into msvc
* maint: tests: avoid a spurious failure of 'ltinit.test' MinGW tests: testsuite is now safe to run with dmake in parallel mode tests: fix spurious failures w.r.t. parallel make and colorization tests: fix spurious failure in 'distcheck-override-infodir.test' tests: avoid another failure of 'uninstall-fail.test' on Solaris
Diffstat (limited to 'tests')
-rwxr-xr-xtests/color2.test32
-rw-r--r--tests/defs.in8
-rwxr-xr-xtests/distcheck-override-infodir.test2
-rwxr-xr-xtests/ltinit.test2
-rwxr-xr-xtests/uninstall-fail.test20
5 files changed, 48 insertions, 16 deletions
diff --git a/tests/color2.test b/tests/color2.test
index 306aa040c..2217d8866 100755
--- a/tests/color2.test
+++ b/tests/color2.test
@@ -38,16 +38,31 @@ case `echo "$std" | grep .` in
*) echo "$me: grep can't parse nonprinting characters" >&2; Exit 77;;
esac
-# Check that we have a working expect program.
-cat >expect-check <<'END'
-#! /usr/bin/expect -f
-spawn $env(THE_SYSTEM_SHELL) -c :
-expect eof
+# This test requires a working a working `expect' program.
+(set +e; expect -c "exit 77"; test $? -eq 77) \
+ || skip_ "requires a working expect program"
+
+# Also, if the $MAKE program fails to consider the standard output as a
+# tty (this happens with e.g., BSD make and Solaris dmake when they're
+# run in parallel mode; see the autoconf manual), there is little point
+# in proceeding.
+cat > Makefile <<'END'
+all:
+## Creaive quoting in the `echo' below to avoid risk of spurious output
+## matches by `expect', below.
+ @test -t 1 && echo "stdout" "is" "a" "tty"
END
-THE_SYSTEM_SHELL=/bin/sh expect -f expect-check || {
- echo "$me: failed to find a working expect program" >&2
- Exit 77
+cat > expect-check <<'END'
+spawn $env(MAKE)
+expect {
+ "stdout is a tty" { exit 0 }
+ default { exit 1 }
}
+exit 1
+END
+MAKE=$MAKE expect -f expect-check \
+ || skip_ "make spawned by expect should have a tty stdout"
+rm -f check Makefile
# Do the tests.
@@ -108,7 +123,6 @@ test_no_color ()
}
cat >expect-make <<'END'
-#! /usr/bin/expect -f
spawn $env(MAKE) -e check
expect eof
END
diff --git a/tests/defs.in b/tests/defs.in
index b8edd3b52..64bc63602 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -433,11 +433,13 @@ cd ./$testSubDir
echo "AC_CONFIG_FILES([Makefile])"
} >configure.in
-# Unset some MAKE... variables that may cause $MAKE to act like a
-# recursively invoked sub-make. Any $MAKE invocation in a test is
+# Unset some make-related variables that may cause $MAKE to act like
+# a recursively invoked sub-make. Any $MAKE invocation in a test is
# conceptually an independent invocation, not part of the main
# 'automake' build.
-unset MFLAGS MAKEFLAGS AM_MAKEFLAGS MAKELEVEL __MKLVL__ MAKE_JOBS_FIFO
+unset MFLAGS MAKEFLAGS AM_MAKEFLAGS MAKELEVEL
+unset __MKLVL__ MAKE_JOBS_FIFO # For BSD make.
+unset DMAKE_CHILD DMAKE_DEF_PRINTED DMAKE_MAX_JOBS # For Solaris dmake.
# Unset verbosity flag.
unset V
# Also unset variables that will let `make -e install' divert
diff --git a/tests/distcheck-override-infodir.test b/tests/distcheck-override-infodir.test
index 8c54cfb2c..19ad3d158 100755
--- a/tests/distcheck-override-infodir.test
+++ b/tests/distcheck-override-infodir.test
@@ -17,7 +17,7 @@
# Check that we can override ${infodir} while having distcheck still
# working. Relate to automake bug#9579.
-required='makeinfo tex texi2dvi'
+required='makeinfo tex texi2dvi install-info'
. ./defs || Exit 1
set -e
diff --git a/tests/ltinit.test b/tests/ltinit.test
index 8b76bdf81..58f192618 100755
--- a/tests/ltinit.test
+++ b/tests/ltinit.test
@@ -56,7 +56,7 @@ $AUTOMAKE -a
cwd=`pwd`
./configure --prefix="$cwd/inst" >stdout || { cat stdout; Exit 1; }
cat stdout
-grep '^checking.*dlopen' stdout
+grep '^checking.*dlfcn\.h.* no$' stdout || grep '^checking.*dlopen' stdout
$MAKE
$MAKE install
diff --git a/tests/uninstall-fail.test b/tests/uninstall-fail.test
index 14a843b2f..a4a058afc 100755
--- a/tests/uninstall-fail.test
+++ b/tests/uninstall-fail.test
@@ -27,7 +27,19 @@ set -e
mkdir d
: > d/f
chmod a-w d || skip "cannot make directories unwritable"
-rm -f d/f && skip_ "can delete files from unwritable directories"
+
+# On Solaris 10, if `/bin/rm' is run with the `-f' option, it doesn't
+# print any error message when failing to remove a file (due to e.g.,
+# "Permission denied"). Yikes. We'll cater to this incompatibility
+# by relaxing a test below if a faulty `rm' is detected.
+st=0; rm -f d/f 2>stderr || st=$?
+cat stderr >&2
+test $st -gt 0 || skip_ "can delete files from unwritable directories"
+if grep 'rm:' stderr; then
+ rm_f_is_silent_on_error=no
+else
+ rm_f_is_silent_on_error=yes
+fi
cat >> configure.in << 'END'
AC_OUTPUT
@@ -53,7 +65,11 @@ mkdir $inst $inst/share
chmod a-w $inst/share
$MAKE uninstall >output 2>&1 && { cat output; Exit 1; }
cat output
-grep "rm: .*foobar\.txt" output
+if test $rm_f_is_silent_on_failure = yes; then
+ : "rm -f" is silent on errors, skip the grepping of make output
+else
+ grep "rm: .*foobar\.txt" output
+fi
chmod a-rwx $inst/share
(cd $inst/share) && skip_ "cannot make directories fully unreadable"