| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | #! /bin/sh# Copyright (C) 2011-2017 Free Software Foundation, Inc.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program.  If not, see <http://www.gnu.org/licenses/>.# Check parallel harness features:#  - recovery from unreadable '.trs' files, in various scenarios. test-init.shcat >> configure.ac <<ENDAC_OUTPUTENDcat > Makefile.am << 'END'TESTS = foo.test bar.testTEST_LOG_COMPILER = trueEND: > foo.test: > bar.testTEST_STATUS=0; export TEST_STATUS$ACLOCAL$AUTOCONF$AUTOMAKE -a./configure: > tchmod a-r t && test ! -r t || skip_ "you can still read unreadable files"rm -f t: Create the required log files.$MAKE checktest -f foo.trstest -f bar.trs: Recreate with a sweeping "make check".chmod a-r bar.trs$MAKE checktest -f foo.trstest -r foo.trstest -f bar.trstest -r bar.trs: Again, this time with one .trs file missing and the other: one unreadable.rm -f foo.trschmod a-r bar.trs$MAKE checktest -f foo.trstest -r foo.trstest -f bar.trstest -r bar.trs: Again, but using "make recheck" this time.rm -f foo.trschmod a-r bar.trsrun_make -O rechecktest -f foo.trstest -r foo.trstest -f bar.trstest -r bar.trsgrep '^PASS: foo\.test' stdoutgrep '^PASS: bar\.test' stdout: Recreate by remaking the global test log.chmod a-r foo.trsrm -f test-suite.logrun_make -O test-suite.logtest -f foo.trstest -r foo.trsgrep '^PASS: foo\.test' stdoutgrep 'bar\.test' stdout && exit 1# Also test that have only run before should be counted in the final# testsuite summary.grep '^# TOTAL:  *2$' stdout: Setup for the next check.: > baz.testsed 's/^TESTS =.*/& baz.test/' Makefile > tdiff t Makefile && exit 99mv -f t Makefile$MAKE checktest -f foo.trstest -f bar.trstest -f baz.trs: Interactions with lazy test reruns are OK.chmod a-r foo.trs$sleeptouch stamp$sleeptouch bar.testrun_make -O RECHECK_LOGS= checktest -r foo.trsis_newest bar.trs bar.testgrep '^PASS: foo\.test' stdoutgrep '^PASS: bar\.test' stdoutgrep 'baz\.test' stdout && exit 1# Also test that have only run before should be counted in the final# testsuite summary.grep '^# TOTAL:  *3$' stdout:
 |