diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2011-11-10 12:51:47 +0100 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2011-11-10 12:51:47 +0100 |
commit | 14cc1b8d4bc61f8be0a8bfd2d1a2f505ad3f0328 (patch) | |
tree | 2331cb178a1066e43a42f56cd680476352a75c05 /tests | |
parent | 620ba14f54a994d3b695001546a4734282902bba (diff) | |
parent | 18f250e8c8d3c1b3b667937447515fd05095754e (diff) | |
download | automake-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-x | tests/color2.test | 32 | ||||
-rw-r--r-- | tests/defs.in | 8 | ||||
-rwxr-xr-x | tests/distcheck-override-infodir.test | 2 | ||||
-rwxr-xr-x | tests/ltinit.test | 2 | ||||
-rwxr-xr-x | tests/uninstall-fail.test | 20 |
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" |