From a6d6734fca39448770365e77acb562e6c42a7ea2 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Tue, 24 Dec 2013 16:27:28 +0100 Subject: TAP driver: remove perl implementation (move it into contrib/) That implementation was only meant as a standard against which the portable awk+shell implementation was to be measured. Now, since Automake 1.12, the latter implementation is fully functional and already used in the wild, and in fact feature-par with the perl implementation. So the perl implementation is now just slowing down and complicating our testsuite. Let's move it to 'contrib/' (we don't want to remove it, in case someone is actually using it in the wild). * lib/tap-driver.pl: Move it ... * contrib/tap-driver.pl: ... here. While at it, convert quoting `like this' to quoting 'like this', and remove an obsolescent FIXME comment. * lib/Makefile.inc (dist_script_DATA): Drop '%D%/tap-driver.pl'. * Makefile.am (EXTRA_DIST): Add 'contrib/tap-driver.pl'. * doc/automake.texi: Remove one stray reference to 'tap-driver.pl', and reference 'tap-driver.sh' instead, as intended. * t/ax/am-test-lib.sh ($am_tap_implementation): Delete definition and uses. (fetch_tap_driver): Simplify to unconditionally assume the shell+awk implementation of the TAP driver is used. (get_shell_script): Make more flexible so that it can cater to the needs of 'fetch_tap_driver()'. * t/tap-bad-prog.tap: Likewise. * t/tap-bailout-leading-space.sh: Likewise. * t/tap-signal.tap: Likewise. * t/tap-test-number-0.sh: Likewise. * t/test-driver-cond.sh: Use 'tap-driver.sh' instead of 'tap-driver.pl'. * gen-testsuite-part (%test_generators): Do not generate sister tests that use the perl TAP driver rather than the shell+awk one. * NEWS: Update. Signed-off-by: Stefano Lattarini --- t/ax/am-test-lib.sh | 53 +++++++++++++++++++---------------------------------- 1 file changed, 19 insertions(+), 34 deletions(-) (limited to 't/ax/am-test-lib.sh') diff --git a/t/ax/am-test-lib.sh b/t/ax/am-test-lib.sh index 26e58ef04..cee5c8da8 100644 --- a/t/ax/am-test-lib.sh +++ b/t/ax/am-test-lib.sh @@ -583,17 +583,31 @@ count_test_results () # of /bin/sh. get_shell_script () { - test ! -f "$1" || rm -f "$1" || return 99 + am_source=$1 am_target=${2-$1} + test ! -f "$am_target" || rm -f "$am_target" || return 99 if test x"$am_test_prefer_config_shell" = x"yes"; then - sed "1s|#!.*|#! $SHELL|" "$am_scriptdir/$1" > "$1" \ - && chmod a+x "$1" \ + sed "1s|#!.*|#! $SHELL|" "$am_scriptdir/$am_source" > "$am_target" \ + && chmod a+x "$am_target" \ || return 99 else - cp -f "$am_scriptdir/$1" . || return 99 + cp -f "$am_scriptdir/$am_source" "$am_target" || return 99 fi - sed 10q "$1" # For debugging. + sed 10q "$am_target" # For debugging. + unset am_target am_source } +# fetch_tap_driver +# ---------------- +# Fetch the Automake-provided TAP driver from the 'lib/' directory into +# the current directory, and edit its shebang line so that it will be +# run with the proper shell. +fetch_tap_driver () +{ + AM_TAP_AWK=$AWK; export AM_TAP_AWK + get_shell_script tap-driver.sh tap-driver +} + + # require_xsi SHELL # ----------------- # Skip the test if the given shell fails to support common XSI constructs. @@ -612,35 +626,6 @@ xsi_shell_code=' && eval '\''test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5'\' -# fetch_tap_driver -# ---------------- -# Fetch the Automake-provided TAP driver from the 'lib/' directory into -# the current directory, and edit its shebang line so that it will be -# run with the perl interpreter determined at configure time. -fetch_tap_driver () -{ - # TODO: we should devise a way to make the shell TAP driver tested also - # TODO: with /bin/sh, for better coverage. - case $am_tap_implementation in - # Extra quoting required to avoid maintainer-check spurious failures. - 'perl') - $PERL -MTAP::Parser -e 1 \ - || skip_all_ "cannot import TAP::Parser perl module" - sed "1s|#!.*|#! $PERL -w|" "$am_scriptdir"/tap-driver.pl >tap-driver - ;; - shell) - AM_TAP_AWK=$AWK; export AM_TAP_AWK - sed "1s|#!.*|#! $SHELL|" "$am_scriptdir"/tap-driver.sh >tap-driver - ;; - *) - fatal_ "invalid \$am_tap_implementation '$am_tap_implementation'" ;; - esac \ - && chmod a+x tap-driver \ - || framework_failure_ "couldn't fetch $am_tap_implementation TAP driver" - sed 10q tap-driver # For debugging. -} -am_tap_implementation=${am_tap_implementation-shell} - # $PYTHON and support for PEP-3147. Needed to check our python-related # install rules. python_has_pep3147 () -- cgit v1.2.1