t/perf


Log

Author Commit Date CI Message
Stefano Lattarini c2a52bf0 2012-06-24T10:36:15 tests: simpler workaround for shells losing the exit status in exit trap Now that we can assume our tests are run by a decent POSIX shell, we can simplify our workaround aimed at having the exit status propagated correctly to the code in the exit trap. Unfortunately, we cannot dispense with such a workaround altogether, because it's still required by some shells we need to support (at least Solaris 10 /bin/ksh and /usr/xpg4/bin/sh). For more information about the need of that workaround, see the entry about 'trap' in the section "Limitations of Shell Builtins" in the Autoconf manual: <http://www.gnu.org/software/autoconf/manual/autoconf.html#trap> The new workaround has been tested successfully with the following shells: - Bash 4.1 - Bash 3.2 - Bash 3.0 - Bash 2.05b - dash 0.5.5.1 - dash 0.5.2 - AT&T Ksh 93u (from official Debian package) - MirBSD Korn Shell 40.2 (from official Debian package) - Solaris 9, 10 and 11 /bin/ksh - Solaris 9, 10 and 11 /usr/xpg4/bin/sh - NetBSD 5.1 /bin/sh - NetBSD 5.1 /bin/ksh * t/ax/test-init.sh (Exit): Rename ... (_am_exit): ... like this. (exit): New alias for '_am_exit'. We cannot simply redefine 'exit' as a shell function, because some shells (dash 0.5.5.1, Solaris 10 /bin/ksh and /usr/xpg4/bin/sh) do not allow it. (_am_exit, trap): Add extra escaping for 'exit' calls, to ensure we really invoke the 'exit' builtin and not our alias with the same name. * configure.ac: Check that the shell selected to run our testsuite supports aliases named like shell builtins. * t/REAMDE: Adjust. * All tests: Adjust, by simply using 'exit' instead of 'Exit'. * t/self-check-explicit-skips.sh: Adjust: the first usage of 'exit' after it has been redefined as an alias must be on a new line w.r.t. that where the alias is defined, in order for the redefinition to be honored. * syntax-checks.mk (sc_tests_Exit_not_exit): Delete. (sc_tests_exit_not_Exit): New. (syntax_check_rules): Adjust. (sc_tests_automake_fails): Simplify the recipe a little. * Several tests: Remove now useless spurious quoting once required to placate the 'sc_tests_Exit_not_exit' maintainer check. * gen-testsuite-part: Likewise. Also, avoid uses of 'Exit' in the generated scripts. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 465111cd 2012-06-22T23:31:00 tests: more uses of $(...) over `...` for command substitution Somehow missed by the previous changes. No big deal, fix them now. * t/ax/depcomp.sh: Here. * t/autodist.sh: And here. * t/autodist-no-duplicate.sh: And here. * t/autodist-subdir.sh: Ad here. * t/remake11.sh t/self-check-me.tap: And here. * t/perf/testsuite-summary.sh: And here. * t/perf/testsuite-recheck.sh: And here. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini ff022f46 2012-05-29T11:58:02 perf: beginning of a performance testsuite Some tests in the Automake testsuite already aims only at verifying the performance, rather than the correctness, of some operations. Still, they are somewhat shoehorned and forced into the PASS/FAIL framework (say, with the 'ulimit' shell builtin used to verify some operation doesn't take up too much time or memory), but that is conceptually a stretch, and has already caused problems in practice (see automake bug#11512 for an example). So we start moving the "performance tests" out of the testsuite proper, and make them run only "on demand" (when the user exports the variable 'AM_TESTSUITE_PERF' to "yes"). Ideally, we should provide those tests with a custom runner/driver that measures and displays the relevant performance information, but doing that correctly and with the right APIs is definitely more difficult, so we leave it for a later step (an hope we'll take such a step eventually). * t/cond29.sh: Move ... * t/perf/cond.sh: ... here, and adjust. * t/testsuite-recheck-speed.sh: Move ... * t/perf/testsuite-recheck.sh: ... here. * t/testsuite-summary-speed.sh: Move ... * t/perf/testsuite-summary.sh: ... here. * t/list-of-tests.mk (perf_TESTS): New variable, listing the tests in the 't/perf' directory. (handwritten_TESTS): Adjust. * defs: Skip any tests in the 't/perf/' subdirectory unless the 'AM_TESTSUITE_PERF' variable is set to "yes" or "y". * .gitignore: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>