Hello automakers. The test `parallel-tests9.test' fails on Solaris 10 when using /usr/xpg4/bin/make as $MAKE, due to a submake invocation returning an exit status `139' (i.e. a "Segmantation fault").
The test has a similar behaviour on Debian with Heirloom make as $MAKE: 1. If the `MALLOC_CHECK_' env var is unset, the test fails due to a submake invocation returning an exit status `134' (i.e. an "Abort"). 2. If the `MALLOC_CHECK_' env var is set to `0', the test fails due to a submake invocation returning an exit status `139' (i.e. a "Segementation fault" again). 3. If the `MALLOC_CHECK_' env var is set to `1', the test passes! See the attachements for verbose logs. Sadly, I still haven't found a minimal testcase exposing the problem. I'll let you know if I find more details, or hopefully even a fix. Regards, Stefano
+ unset MALLOC_CHECK_ /home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin === Running test ./parallel-tests9.test ++ pwd /home/stefano/src/automake/tests/parallel-tests9.dir + set -e + cat + cat + cat + cat + cat + chmod a+x foo.test bar.test baz.test + aclocal-1.11a -Werror + autoconf + automake-1.11a --foreign -Werror -Wall -a + ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether heirloom-make sets $(MAKE)... yes configure: creating ./config.status config.status: creating Makefile + heirloom-make check heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. + cat stdout heirloom-make bla echo bla > bla heirloom-make check-TESTS PASS: foo.test FAIL: bar.test FAIL: baz.test =================== 2 of 3 tests failed See ./mylog.log =================== *** Error code 1 (bu21) The following command caused the error: case $- in *e*) set +e;; esac; \ list='foo.log bar.log baz.log'; \ results=`for f in $list; do \ read line < $f && echo "$line" || echo FAIL; \ done`; \ all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$results" | grep -c '^FAIL'`; \ pass=`echo "$results" | grep -c '^PASS'`; \ skip=`echo "$results" | grep -c '^SKIP'`; \ xfail=`echo "$results" | grep -c '^XFAIL'`; \ xpass=`echo "$results" | grep -c '^XPASS'`; \ failures=`expr $fail + $xpass`; \ all=`expr $all - $skip`; \ if test "$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$fail:xpass=$xpass:xfail=$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$All$all $tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$All$all $tests behaved as expected"; \ if test "$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$msg ($xfail expected $xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$fail of $all $tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$failures of $all $tests did not behave as expected"; \ if test "$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$msg ($xpass unexpected $xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$skip" -ne 0; then \ if test "$skip" -eq 1; then \ msg="$msg($skip test was not run). "; \ else \ msg="$msg($skip tests were not run). "; \ fi; \ fi; \ { \ echo "parallel-tests9 1.0: ./mylog.log" | \ sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'; \ echo "$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $list; do \ read line < $f; \ case $line in \ PASS:*|XFAIL:*);; \ *) echo; cat $f;; \ esac; \ done; \ } >mylog.log.tmp; \ mv mylog.log.tmp mylog.log; \ if test "$failures" -ne 0; then \ msg="${msg}See ./mylog.log. "; \ if test -n ""; then \ msg="${msg}Please report to . "; \ fi; \ fi; \ test x"$VERBOSE" = x || $exit || cat mylog.log; \ red=; grn=; lgn=; blu=; std=; \ if $exit; then \ echo -n "$grn"; \ else \ echo -n "$red"; \ fi; \ echo "$msg" | gawk '{ n = split($0, lines, "\\. "); max = 0; for (i = 1; i <= n; ++i) if (max < length(lines[i])) max = length(lines[i]); for (i = 0; i < max; ++i) line = line "="; print line; for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line; }'; \ echo -n "$std"; \ $exit *** Error code 1 (bu21) The following command caused the error: list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ heirloom-make mylog.log TEST_LOGS="$list" *** Error code 1 (bu21) + heirloom-make recheck *** glibc detected *** heirloom-make: free(): invalid next size (normal): 0x09d5a020 *** ======= Backtrace: ========= /lib/i686/cmov/libc.so.6(+0x6b321)[0xb7cf3321] /lib/i686/cmov/libc.so.6(+0x6cb78)[0xb7cf4b78] /lib/i686/cmov/libc.so.6(cfree+0x6d)[0xb7cf7c5d] /lib/i686/cmov/libc.so.6(closedir+0x28)[0xb7d1b328] heirloom-make[0x8050afc] heirloom-make[0x804b8e6] heirloom-make[0x80515b5] heirloom-make[0x804e889] heirloom-make[0x8060ac5] heirloom-make[0x80541c4] heirloom-make[0x8055420] heirloom-make[0x8057acd] /lib/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xb7c9ec76] heirloom-make(__gxx_personality_v0+0xfd)[0x804a071] ======= Memory map: ======== 08048000-08073000 r-xp 00000000 03:47 1176796 /opt/heirloom/bin/make 08073000-08075000 rw-p 0002b000 03:47 1176796 /opt/heirloom/bin/make 08075000-080ad000 rw-p 00000000 00:00 0 09d4e000-09d6f000 rw-p 00000000 00:00 0 [heap] b7900000-b7921000 rw-p 00000000 00:00 0 b7921000-b7a00000 ---p 00000000 00:00 0 b7a42000-b7a7a000 r--p 002bf000 03:47 3365415 /usr/lib/locale/locale-archive b7a7a000-b7c7a000 r--p 00000000 03:47 3365415 /usr/lib/locale/locale-archive b7c7a000-b7c84000 r-xp 00000000 03:47 3170391 /lib/i686/cmov/libnss_files-2.11.2.so b7c84000-b7c85000 r--p 00009000 03:47 3170391 /lib/i686/cmov/libnss_files-2.11.2.so b7c85000-b7c86000 rw-p 0000a000 03:47 3170391 /lib/i686/cmov/libnss_files-2.11.2.so b7c86000-b7c88000 rw-p 00000000 00:00 0 b7c88000-b7dc8000 r-xp 00000000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so b7dc8000-b7dc9000 ---p 00140000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so b7dc9000-b7dcb000 r--p 00140000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so b7dcb000-b7dcc000 rw-p 00142000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so b7dcc000-b7dcf000 rw-p 00000000 00:00 0 b7dcf000-b7dec000 r-xp 00000000 03:47 3156182 /lib/libgcc_s.so.1 b7dec000-b7ded000 rw-p 0001c000 03:47 3156182 /lib/libgcc_s.so.1 b7ded000-b7e11000 r-xp 00000000 03:47 3170377 /lib/i686/cmov/libm-2.11.2.so b7e11000-b7e12000 r--p 00023000 03:47 3170377 /lib/i686/cmov/libm-2.11.2.so b7e12000-b7e13000 rw-p 00024000 03:47 3170377 /lib/i686/cmov/libm-2.11.2.so b7e13000-b7efc000 r-xp 00000000 03:47 1552397 /usr/lib/libstdc++.so.6.0.13 b7efc000-b7f00000 r--p 000e9000 03:47 1552397 /usr/lib/libstdc++.so.6.0.13 b7f00000-b7f01000 rw-p 000ed000 03:47 1552397 /usr/lib/libstdc++.so.6.0.13 b7f01000-b7f09000 rw-p 00000000 00:00 0 b7f23000-b7f25000 r-xp 00000000 03:47 1896416 /usr/lib/gconv/ISO8859-15.so b7f25000-b7f26000 r--p 00001000 03:47 1896416 /usr/lib/gconv/ISO8859-15.so b7f26000-b7f27000 rw-p 00002000 03:47 1896416 /usr/lib/gconv/ISO8859-15.so b7f27000-b7f2e000 r--s 00000000 03:47 2222984 /usr/lib/gconv/gconv-modules.cache b7f2e000-b7f2f000 r--p 0041e000 03:47 3365415 /usr/lib/locale/locale-archive b7f2f000-b7f35000 r--p 0027e000 03:47 3365415 /usr/lib/locale/locale-archive b7f35000-b7f36000 rw-p 00000000 00:00 0 b7f36000-b7f37000 r-xp 00000000 00:00 0 [vdso] b7f37000-b7f52000 r-xp 00000000 03:47 3156756 /lib/ld-2.11.2.so b7f52000-b7f53000 r--p 0001a000 03:47 3156756 /lib/ld-2.11.2.so b7f53000-b7f54000 rw-p 0001b000 03:47 3156756 /lib/ld-2.11.2.so bfae8000-bfb1b000 rw-p 00000000 00:00 0 [stack] sh: line 4: 17938 Abortito heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list" heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. + cat stdout heirloom-make TEST_LOGS="bar.log baz.log " bla `bla' is up to date. heirloom-make TEST_LOGS="bar.log baz.log " check-TESTS *** Error code 134 (bu21) The following command caused the error: list='bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list" *** Error code 1 (bu21) *** Error code 1 (bu21) The following command caused the error: target=`echo recheck | sed 's,^re,,'`; \ list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test -f $f || continue; \ if read line < $f; then \ case $line in FAIL*|XPASS*) echo $f;; esac; \ else echo $f; fi; \ done | tr '\012\015' ' '`; \ heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"' + grep foo.test stdout + grep bar.test stdout + Exit 1 + set +e + exit 1 + exit 1 + exit_status=1 + set +e + cd /home/stefano/src/automake/tests + case $exit_status,$keep_testdirs in + test 0 '!=' 0 + echo 'parallel-tests9: exit 1' parallel-tests9: exit 1 + exit 1
+ export MALLOC_CHECK_=0 /home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin === Running test ./parallel-tests9.test ++ pwd /home/stefano/src/automake/tests/parallel-tests9.dir + set -e + cat + cat + cat + cat + cat + chmod a+x foo.test bar.test baz.test + aclocal-1.11a -Werror + autoconf + automake-1.11a --foreign -Werror -Wall -a + ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether heirloom-make sets $(MAKE)... yes configure: creating ./config.status config.status: creating Makefile + heirloom-make check heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. + cat stdout heirloom-make bla echo bla > bla heirloom-make check-TESTS PASS: foo.test FAIL: bar.test FAIL: baz.test =================== 2 of 3 tests failed See ./mylog.log =================== *** Error code 1 (bu21) The following command caused the error: case $- in *e*) set +e;; esac; \ list='foo.log bar.log baz.log'; \ results=`for f in $list; do \ read line < $f && echo "$line" || echo FAIL; \ done`; \ all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$results" | grep -c '^FAIL'`; \ pass=`echo "$results" | grep -c '^PASS'`; \ skip=`echo "$results" | grep -c '^SKIP'`; \ xfail=`echo "$results" | grep -c '^XFAIL'`; \ xpass=`echo "$results" | grep -c '^XPASS'`; \ failures=`expr $fail + $xpass`; \ all=`expr $all - $skip`; \ if test "$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$fail:xpass=$xpass:xfail=$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$All$all $tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$All$all $tests behaved as expected"; \ if test "$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$msg ($xfail expected $xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$fail of $all $tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$failures of $all $tests did not behave as expected"; \ if test "$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$msg ($xpass unexpected $xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$skip" -ne 0; then \ if test "$skip" -eq 1; then \ msg="$msg($skip test was not run). "; \ else \ msg="$msg($skip tests were not run). "; \ fi; \ fi; \ { \ echo "parallel-tests9 1.0: ./mylog.log" | \ sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'; \ echo "$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $list; do \ read line < $f; \ case $line in \ PASS:*|XFAIL:*);; \ *) echo; cat $f;; \ esac; \ done; \ } >mylog.log.tmp; \ mv mylog.log.tmp mylog.log; \ if test "$failures" -ne 0; then \ msg="${msg}See ./mylog.log. "; \ if test -n ""; then \ msg="${msg}Please report to . "; \ fi; \ fi; \ test x"$VERBOSE" = x || $exit || cat mylog.log; \ red=; grn=; lgn=; blu=; std=; \ if $exit; then \ echo -n "$grn"; \ else \ echo -n "$red"; \ fi; \ echo "$msg" | gawk '{ n = split($0, lines, "\\. "); max = 0; for (i = 1; i <= n; ++i) if (max < length(lines[i])) max = length(lines[i]); for (i = 0; i < max; ++i) line = line "="; print line; for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line; }'; \ echo -n "$std"; \ $exit *** Error code 1 (bu21) The following command caused the error: list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ heirloom-make mylog.log TEST_LOGS="$list" *** Error code 1 (bu21) + heirloom-make recheck sh: line 4: 23267 Segmentation fault heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list" heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. + cat stdout heirloom-make TEST_LOGS="bar.log baz.log " bla `bla' is up to date. heirloom-make TEST_LOGS="bar.log baz.log " check-TESTS *** Error code 139 (bu21) The following command caused the error: list='bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list" *** Error code 1 (bu21) *** Error code 1 (bu21) The following command caused the error: target=`echo recheck | sed 's,^re,,'`; \ list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test -f $f || continue; \ if read line < $f; then \ case $line in FAIL*|XPASS*) echo $f;; esac; \ else echo $f; fi; \ done | tr '\012\015' ' '`; \ heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"' + grep foo.test stdout + grep bar.test stdout + Exit 1 + set +e + exit 1 + exit 1 + exit_status=1 + set +e + cd /home/stefano/src/automake/tests + case $exit_status,$keep_testdirs in + test 0 '!=' 0 + echo 'parallel-tests9: exit 1' parallel-tests9: exit 1 + exit 1
+ export MALLOC_CHECK_=1 /home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin === Running test ./parallel-tests9.test ++ pwd /home/stefano/src/automake/tests/parallel-tests9.dir + set -e + cat + cat + cat + cat + cat + chmod a+x foo.test bar.test baz.test + aclocal-1.11a -Werror + autoconf + automake-1.11a --foreign -Werror -Wall -a + ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether heirloom-make sets $(MAKE)... yes configure: creating ./config.status config.status: creating Makefile + heirloom-make check heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. + cat stdout heirloom-make bla echo bla > bla heirloom-make check-TESTS PASS: foo.test FAIL: bar.test FAIL: baz.test =================== 2 of 3 tests failed See ./mylog.log =================== *** Error code 1 (bu21) The following command caused the error: case $- in *e*) set +e;; esac; \ list='foo.log bar.log baz.log'; \ results=`for f in $list; do \ read line < $f && echo "$line" || echo FAIL; \ done`; \ all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$results" | grep -c '^FAIL'`; \ pass=`echo "$results" | grep -c '^PASS'`; \ skip=`echo "$results" | grep -c '^SKIP'`; \ xfail=`echo "$results" | grep -c '^XFAIL'`; \ xpass=`echo "$results" | grep -c '^XPASS'`; \ failures=`expr $fail + $xpass`; \ all=`expr $all - $skip`; \ if test "$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$fail:xpass=$xpass:xfail=$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$All$all $tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$All$all $tests behaved as expected"; \ if test "$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$msg ($xfail expected $xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$fail of $all $tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$failures of $all $tests did not behave as expected"; \ if test "$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$msg ($xpass unexpected $xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$skip" -ne 0; then \ if test "$skip" -eq 1; then \ msg="$msg($skip test was not run). "; \ else \ msg="$msg($skip tests were not run). "; \ fi; \ fi; \ { \ echo "parallel-tests9 1.0: ./mylog.log" | \ sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'; \ echo "$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $list; do \ read line < $f; \ case $line in \ PASS:*|XFAIL:*);; \ *) echo; cat $f;; \ esac; \ done; \ } >mylog.log.tmp; \ mv mylog.log.tmp mylog.log; \ if test "$failures" -ne 0; then \ msg="${msg}See ./mylog.log. "; \ if test -n ""; then \ msg="${msg}Please report to . "; \ fi; \ fi; \ test x"$VERBOSE" = x || $exit || cat mylog.log; \ red=; grn=; lgn=; blu=; std=; \ if $exit; then \ echo -n "$grn"; \ else \ echo -n "$red"; \ fi; \ echo "$msg" | gawk '{ n = split($0, lines, "\\. "); max = 0; for (i = 1; i <= n; ++i) if (max < length(lines[i])) max = length(lines[i]); for (i = 0; i < max; ++i) line = line "="; print line; for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line; }'; \ echo -n "$std"; \ $exit *** Error code 1 (bu21) The following command caused the error: list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ heirloom-make mylog.log TEST_LOGS="$list" *** Error code 1 (bu21) + heirloom-make recheck *** glibc detected *** heirloom-make: malloc: top chunk is corrupt: 0x09a75410 *** heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. + cat stdout heirloom-make TEST_LOGS="bar.log baz.log " bla `bla' is up to date. heirloom-make TEST_LOGS="bar.log baz.log " check-TESTS FAIL: bar.test FAIL: baz.test =================== 2 of 2 tests failed See ./mylog.log =================== *** Error code 1 (bu21) The following command caused the error: case $- in *e*) set +e;; esac; \ list='bar.log baz.log'; \ results=`for f in $list; do \ read line < $f && echo "$line" || echo FAIL; \ done`; \ all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$results" | grep -c '^FAIL'`; \ pass=`echo "$results" | grep -c '^PASS'`; \ skip=`echo "$results" | grep -c '^SKIP'`; \ xfail=`echo "$results" | grep -c '^XFAIL'`; \ xpass=`echo "$results" | grep -c '^XPASS'`; \ failures=`expr $fail + $xpass`; \ all=`expr $all - $skip`; \ if test "$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$fail:xpass=$xpass:xfail=$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$All$all $tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$All$all $tests behaved as expected"; \ if test "$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$msg ($xfail expected $xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$fail of $all $tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$failures of $all $tests did not behave as expected"; \ if test "$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$msg ($xpass unexpected $xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$skip" -ne 0; then \ if test "$skip" -eq 1; then \ msg="$msg($skip test was not run). "; \ else \ msg="$msg($skip tests were not run). "; \ fi; \ fi; \ { \ echo "parallel-tests9 1.0: ./mylog.log" | \ sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'; \ echo "$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $list; do \ read line < $f; \ case $line in \ PASS:*|XFAIL:*);; \ *) echo; cat $f;; \ esac; \ done; \ } >mylog.log.tmp; \ mv mylog.log.tmp mylog.log; \ if test "$failures" -ne 0; then \ msg="${msg}See ./mylog.log. "; \ if test -n ""; then \ msg="${msg}Please report to . "; \ fi; \ fi; \ test x"$VERBOSE" = x || $exit || cat mylog.log; \ red=; grn=; lgn=; blu=; std=; \ if $exit; then \ echo -n "$grn"; \ else \ echo -n "$red"; \ fi; \ echo "$msg" | gawk '{ n = split($0, lines, "\\. "); max = 0; for (i = 1; i <= n; ++i) if (max < length(lines[i])) max = length(lines[i]); for (i = 0; i < max; ++i) line = line "="; print line; for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line; }'; \ echo -n "$std"; \ $exit *** Error code 1 (bu21) The following command caused the error: list='bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list" *** Error code 1 (bu21) *** Error code 1 (bu21) The following command caused the error: target=`echo recheck | sed 's,^re,,'`; \ list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test -f $f || continue; \ if read line < $f; then \ case $line in FAIL*|XPASS*) echo $f;; esac; \ else echo $f; fi; \ done | tr '\012\015' ' '`; \ heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"' + grep foo.test stdout + grep bar.test stdout FAIL: bar.test + grep baz.test stdout FAIL: baz.test + grep '2 of 2.*failed' stdout 2 of 2 tests failed + chmod a-r foo.log + test '!' -r foo.log + heirloom-make recheck sh: line 7: foo.log: Permission denied *** glibc detected *** heirloom-make: malloc: top chunk is corrupt: 0x0910d420 *** heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir heirloom-make: fatal error. + cat stdout heirloom-make TEST_LOGS="foo.log bar.log baz.log " bla `bla' is up to date. heirloom-make TEST_LOGS="foo.log bar.log baz.log " check-TESTS PASS: foo.test FAIL: bar.test FAIL: baz.test =================== 2 of 3 tests failed See ./mylog.log =================== *** Error code 1 (bu21) The following command caused the error: case $- in *e*) set +e;; esac; \ list='foo.log bar.log baz.log'; \ results=`for f in $list; do \ read line < $f && echo "$line" || echo FAIL; \ done`; \ all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$results" | grep -c '^FAIL'`; \ pass=`echo "$results" | grep -c '^PASS'`; \ skip=`echo "$results" | grep -c '^SKIP'`; \ xfail=`echo "$results" | grep -c '^XFAIL'`; \ xpass=`echo "$results" | grep -c '^XPASS'`; \ failures=`expr $fail + $xpass`; \ all=`expr $all - $skip`; \ if test "$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$fail:xpass=$xpass:xfail=$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$All$all $tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$All$all $tests behaved as expected"; \ if test "$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$msg ($xfail expected $xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$fail of $all $tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$failures of $all $tests did not behave as expected"; \ if test "$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$msg ($xpass unexpected $xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$skip" -ne 0; then \ if test "$skip" -eq 1; then \ msg="$msg($skip test was not run). "; \ else \ msg="$msg($skip tests were not run). "; \ fi; \ fi; \ { \ echo "parallel-tests9 1.0: ./mylog.log" | \ sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'; \ echo "$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $list; do \ read line < $f; \ case $line in \ PASS:*|XFAIL:*);; \ *) echo; cat $f;; \ esac; \ done; \ } >mylog.log.tmp; \ mv mylog.log.tmp mylog.log; \ if test "$failures" -ne 0; then \ msg="${msg}See ./mylog.log. "; \ if test -n ""; then \ msg="${msg}Please report to . "; \ fi; \ fi; \ test x"$VERBOSE" = x || $exit || cat mylog.log; \ red=; grn=; lgn=; blu=; std=; \ if $exit; then \ echo -n "$grn"; \ else \ echo -n "$red"; \ fi; \ echo "$msg" | gawk '{ n = split($0, lines, "\\. "); max = 0; for (i = 1; i <= n; ++i) if (max < length(lines[i])) max = length(lines[i]); for (i = 0; i < max; ++i) line = line "="; print line; for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line; }'; \ echo -n "$std"; \ $exit *** Error code 1 (bu21) The following command caused the error: list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ heirloom-make TEST_LOGS="foo.log bar.log baz.log " mylog.log TEST_LOGS="$list" *** Error code 1 (bu21) *** Error code 1 (bu21) The following command caused the error: target=`echo recheck | sed 's,^re,,'`; \ list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test -f $f || continue; \ if read line < $f; then \ case $line in FAIL*|XPASS*) echo $f;; esac; \ else echo $f; fi; \ done | tr '\012\015' ' '`; \ heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"' + grep foo.test stdout PASS: foo.test + heirloom-make clean test -z "bla" || rm -f bla test -z "foo.log bar.log baz.log" || rm -f foo.log bar.log baz.log test -z "foo.log-t bar.log-t baz.log-t" || rm -f foo.log-t bar.log-t baz.log-t test -z "mylog.html" || rm -f mylog.html test -z "mylog.log" || rm -f mylog.log + heirloom-make recheck heirloom-make TEST_LOGS="" bla echo bla > bla heirloom-make TEST_LOGS="" check-TESTS ================== All 0 tests passed ================== + test -f bla + test '!' -f foo.log + test '!' -f bar.log + test '!' -f baz.log + test -f mylog.log + : + exit_status=0 + set +e + cd /home/stefano/src/automake/tests + case $exit_status,$keep_testdirs in + find parallel-tests9.dir -type d '!' -perm -200 -exec chmod u+w '{}' ';' + rm -rf parallel-tests9.dir + test 0 '!=' 0 + echo 'parallel-tests9: exit 0' parallel-tests9: exit 0 + exit 0
FAIL: parallel-tests9.test (exit: 1) ==================================== === Running test ../../tests/parallel-tests9.test /scratch/latta/tmp/automake-1.11a/_build/tests:/home/latta/dev/xpath/automake:/usr/bin:/usr/sbin:/sbin:/usr/ucb + pwd /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir + set -e + cat + cat + cat + cat + cat + chmod a+x foo.test bar.test baz.test + aclocal-1.11a -Werror + autoconf + automake-1.11a --foreign -Werror -Wall -a + ./configure checking for a BSD-compatible install... ./install-sh -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /opt/sfw/bin/mkdir -p checking for gawk... no checking for mawk... no checking for nawk... nawk checking whether make sets $(MAKE)... yes configure: creating ./config.status config.status: creating Makefile + run_command -e FAIL make check + set +x + cat stderr make: Fatal error: Command failed for target `mylog.log' Current working directory /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir make: Fatal error: Command failed for target `check-TESTS' Current working directory /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir make: Fatal error: Command failed for target `check-am' + cat stdout /usr/xpg4/bin/make bla echo bla > bla /usr/xpg4/bin/make check-TESTS PASS: foo.test FAIL: bar.test FAIL: baz.test =================== 2 of 3 tests failed See ./mylog.log =================== *** Error code 1 The following command caused the error: case $- in *e*) set +e;; esac; \ list='foo.log bar.log baz.log'; \ results=`for f in $list; do \ read line < $f && echo "$line" || echo FAIL; \ done`; \ all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$results" | grep -c '^FAIL'`; \ pass=`echo "$results" | grep -c '^PASS'`; \ skip=`echo "$results" | grep -c '^SKIP'`; \ xfail=`echo "$results" | grep -c '^XFAIL'`; \ xpass=`echo "$results" | grep -c '^XPASS'`; \ failures=`expr $fail + $xpass`; \ all=`expr $all - $skip`; \ if test "$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$fail:xpass=$xpass:xfail=$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$All$all $tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$All$all $tests behaved as expected"; \ if test "$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$msg ($xfail expected $xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$fail of $all $tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$failures of $all $tests did not behave as expected"; \ if test "$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$msg ($xpass unexpected $xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$skip" -ne 0; then \ if test "$skip" -eq 1; then \ msg="$msg($skip test was not run). "; \ else \ msg="$msg($skip tests were not run). "; \ fi; \ fi; \ { \ echo "parallel-tests9 1.0: ./mylog.log" | \ sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'; \ echo "$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $list; do \ read line < $f; \ case $line in \ PASS:*|XFAIL:*);; \ *) echo; cat $f;; \ esac; \ done; \ } >mylog.log.tmp; \ mv mylog.log.tmp mylog.log; \ if test "$failures" -ne 0; then \ msg="${msg}See ./mylog.log. "; \ if test -n ""; then \ msg="${msg}Please report to . "; \ fi; \ fi; \ test x"$VERBOSE" = x || $exit || cat mylog.log; \ red=; grn=; lgn=; blu=; std=; \ if $exit; then \ echo -n "$grn"; \ else \ echo -n "$red"; \ fi; \ echo "$msg" | nawk '{ n = split($0, lines, "\\. "); max = 0; for (i = 1; i <= n; ++i) if (max < length(lines[i])) max = length(lines[i]); for (i = 0; i < max; ++i) line = line "="; print line; for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line; }'; \ echo -n "$std"; \ $exit *** Error code 1 The following command caused the error: list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ /usr/xpg4/bin/make mylog.log TEST_LOGS="$list" *** Error code 1 + set +x run_command: exit status 1 (expecting FAIL) + test xyes = xyes + run_command -e FAIL make recheck + set +x + cat stderr make: Fatal error: Command failed for target `mylog.log' Current working directory /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir make: Fatal error: Command failed for target `check-TESTS' Current working directory /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir make: Fatal error: Command failed for target `check-am' Current working directory /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir make: Fatal error: Command failed for target `recheck' + cat stdout /usr/xpg4/bin/make TEST_LOGS="bar.log baz.log " bla `bla' is updated. /usr/xpg4/bin/make TEST_LOGS="bar.log baz.log " check-TESTS FAIL: bar.test FAIL: baz.test =================== 2 of 2 tests failed See ./mylog.log =================== *** Error code 1 The following command caused the error: case $- in *e*) set +e;; esac; \ list='bar.log baz.log'; \ results=`for f in $list; do \ read line < $f && echo "$line" || echo FAIL; \ done`; \ all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$results" | grep -c '^FAIL'`; \ pass=`echo "$results" | grep -c '^PASS'`; \ skip=`echo "$results" | grep -c '^SKIP'`; \ xfail=`echo "$results" | grep -c '^XFAIL'`; \ xpass=`echo "$results" | grep -c '^XPASS'`; \ failures=`expr $fail + $xpass`; \ all=`expr $all - $skip`; \ if test "$all" -eq 1; then tests=test; All=; \ else tests=tests; All="All "; fi; \ case fail=$fail:xpass=$xpass:xfail=$xfail in \ fail=0:xpass=0:xfail=0) \ msg="$All$all $tests passed. "; \ exit=true;; \ fail=0:xpass=0:xfail=*) \ msg="$All$all $tests behaved as expected"; \ if test "$xfail" -eq 1; then xfailures=failure; \ else xfailures=failures; fi; \ msg="$msg ($xfail expected $xfailures). "; \ exit=true;; \ fail=*:xpass=0:xfail=*) \ msg="$fail of $all $tests failed. "; \ exit=false;; \ fail=*:xpass=*:xfail=*) \ msg="$failures of $all $tests did not behave as expected"; \ if test "$xpass" -eq 1; then xpasses=pass; \ else xpasses=passes; fi; \ msg="$msg ($xpass unexpected $xpasses). "; \ exit=false;; \ *) \ echo >&2 "incorrect case"; exit 4;; \ esac; \ if test "$skip" -ne 0; then \ if test "$skip" -eq 1; then \ msg="$msg($skip test was not run). "; \ else \ msg="$msg($skip tests were not run). "; \ fi; \ fi; \ { \ echo "parallel-tests9 1.0: ./mylog.log" | \ sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//'; \ echo "$msg"; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for f in $list; do \ read line < $f; \ case $line in \ PASS:*|XFAIL:*);; \ *) echo; cat $f;; \ esac; \ done; \ } >mylog.log.tmp; \ mv mylog.log.tmp mylog.log; \ if test "$failures" -ne 0; then \ msg="${msg}See ./mylog.log. "; \ if test -n ""; then \ msg="${msg}Please report to . "; \ fi; \ fi; \ test x"$VERBOSE" = x || $exit || cat mylog.log; \ red=; grn=; lgn=; blu=; std=; \ if $exit; then \ echo -n "$grn"; \ else \ echo -n "$red"; \ fi; \ echo "$msg" | nawk '{ n = split($0, lines, "\\. "); max = 0; for (i = 1; i <= n; ++i) if (max < length(lines[i])) max = length(lines[i]); for (i = 0; i < max; ++i) line = line "="; print line; for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line; }'; \ echo -n "$std"; \ $exit *** Error code 1 The following command caused the error: list='bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ /usr/xpg4/bin/make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list" *** Error code 1 *** Error code 1 The following command caused the error: target=`echo recheck | sed 's,^re,,'`; \ list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test -f $f || continue; \ if read line < $f; then \ case $line in FAIL*|XPASS*) echo $f;; esac; \ else echo $f; fi; \ done | tr '\012\015' ' '`; \ /usr/xpg4/bin/make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"' + set +x run_command: exit status 1 (expecting FAIL) + test xyes = xyes + grep foo.test stdout + grep bar.test stdout FAIL: bar.test + grep baz.test stdout FAIL: baz.test + grep 2 of 2.*failed stdout 2 of 2 tests failed + chmod a-r foo.log + test ! -r foo.log + run_command -e FAIL make recheck + set +x + cat stderr bash: line 7: foo.log: Permission denied bash: line 4: 14242 Segmentation Fault (core dumped) /usr/xpg4/bin/make TEST_LOGS="foo.log bar.log baz.log " mylog.log TEST_LOGS="$list" make: Fatal error: Command failed for target `check-TESTS' Current working directory /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir make: Fatal error: Command failed for target `check-am' Current working directory /scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir make: Fatal error: Command failed for target `recheck' + cat stdout /usr/xpg4/bin/make TEST_LOGS="foo.log bar.log baz.log " bla `bla' is updated. /usr/xpg4/bin/make TEST_LOGS="foo.log bar.log baz.log " check-TESTS *** Error code 139 The following command caused the error: list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test .log = $f || echo $f; \ done | tr '\012\015' ' '`; \ /usr/xpg4/bin/make TEST_LOGS="foo.log bar.log baz.log " mylog.log TEST_LOGS="$list" *** Error code 1 *** Error code 1 The following command caused the error: target=`echo recheck | sed 's,^re,,'`; \ list='foo.log bar.log baz.log'; \ list=`for f in $list; do \ test -f $f || continue; \ if read line < $f; then \ case $line in FAIL*|XPASS*) echo $f;; esac; \ else echo $f; fi; \ done | tr '\012\015' ' '`; \ /usr/xpg4/bin/make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"' + set +x run_command: exit status 1 (expecting FAIL) + test xyes = xyes + grep foo.test stdout + Exit 1 + set +e + exit 1 + exit 1 exit_status=1 + set +e + cd /scratch/latta/tmp/automake-1.11a/_build/tests + test 0 != 0 + echo parallel-tests9: exit 1 parallel-tests9: exit 1 + exit 1