#! /bin/sh # Copyright (C) 2012-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 . # Check performance of recheck target in the face of many failed tests. # FIXME: this test is not currently able to detect whether the measured # FIXME: performance is too low, and FAIL accordingly; it just offers an # FIXME: easy way to verify how effective a performance optimization is. . test-init.sh count=5000 cat >> configure.ac <<'END' AC_OUTPUT END cat > Makefile.am <> Makefile.am << 'END' AUTOMAKE_OPTIONS = -Wno-override ## These should never be run. T_LOG_COMPILER = false T_LOG_DRIVER = false # The recipe of this also serves as a sanity check. $(TEST_SUITE_LOG): ## For debugging. @echo "RE-RUN:"; for i in $(TEST_LOGS); do echo " $$i"; done ## All the test cases should have been re-run. @count_got=`for i in $(TEST_LOGS); do echo $$i; done | wc -l` \ && echo "Count expected: $(count_expected)" \ && echo "Count obtained: $$count_got" \ && test $$count_got -eq $(count_expected) ## Pre-existing log files of the tests to re-run should have been ## removed by the 'recheck' target @for i in $(TEST_LOGS); do \ test ! -f $$i.log || { echo "$$i.log exists!"; exit 1; }; \ done ## Actually create the target file, for extra safety. @echo dummy > $@ END # Updated later. : > all # Temporarily disable shell traces, to avoid bloating the log file. set +x for i in $(seq_ 1 $count); do echo dummy $i > $i.log echo :global-test-result: PASS > $i.trs echo :test-result: PASS >> $i.trs echo :recheck: yes >> $i.trs echo TESTS += $i.t >> Makefile.am echo $i >> all done # Re-enable shell traces. set -x # So that we don't need to create a ton of dummy tests. echo '$(TESTS):' >> Makefile.am head -n 100 Makefile.am || : # For debugging. tail -n 100 Makefile.am || : # Likewise. cat $count.trs # Likewise, just the last specimen though. $ACLOCAL $AUTOCONF $AUTOMAKE -a ./configure $MAKE recheck :