git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/6] We use TAP so the Perl test can run without scaffolding

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
May 7, 2010, 19:37 UTC
Message-ID
<1273261025-31523-5-git-send-email-avarab@gmail.com>
In-Reply-To
<1273261025-31523-1-git-send-email-avarab@gmail.com>

This removes the test_external and test_external_without_stderr functions added by Lea Wiemann in fb32c410087e68d650b31f68e66b3d9cbcce4a56. Nothing else used them, and now that we're using TAP they shouldn't be necessary.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/t9700-perl-git.sh |    7 ++---
 t/t9700/test.pl     |    9 +++++++
 t/test-lib.sh       |   59 ---------------------------------------------------
 3 files changed, 12 insertions(+), 63 deletions(-)
diff --git a/t/t9700-perl-git.sh b/t/t9700-perl-git.sh
index 3999bf7..6c22dbc 100755
--- a/t/t9700-perl-git.sh
+++ b/t/t9700-perl-git.sh
@@ -46,8 +46,7 @@ test_expect_success \
      git config --add test.int 2k
      '
 
-test_external_without_stderr \
-    'Perl API' \
-    "$PERL_PATH" "$TEST_DIRECTORY"/t9700/test.pl
+"$PERL_PATH" "$TEST_DIRECTORY"/t9700/test.pl
 
-test_done
+# The Perl test finalizes the plan, so don't call test_done() here.
+GIT_EXIT_OK=t
diff --git a/t/t9700/test.pl b/t/t9700/test.pl
index 666722d..c1ac913 100755
--- a/t/t9700/test.pl
+++ b/t/t9700/test.pl
@@ -7,6 +7,13 @@ use strict;
 
 use Test::More qw(no_plan);
 
+BEGIN {
+	# t9700-perl-git.sh kicks off our testing, so we have to go from
+	# there.
+	$Test::Builder::Test->{Curr_Test} = 1;
+	$Test::Builder::Test->{No_Ending} = 1;
+}
+
 use Cwd;
 use File::Basename;
 
@@ -105,3 +112,5 @@ my $last_commit = $r2->command_oneline(qw(rev-parse --verify HEAD));
 like($last_commit, qr/^[0-9a-fA-F]{40}$/, 'rev-parse returned hash');
 my $dir_commit = $r2->command_oneline('log', '-n1', '--pretty=format:%H', '.');
 isnt($last_commit, $dir_commit, 'log . does not show last commit');
+
+printf "1..%d\n", $Test::Builder::Test->{Curr_Test};
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 282314c..b3c58f2 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -453,65 +453,6 @@ test_expect_code () {
 	echo >&3 ""
 }
 
-# test_external runs external test scripts that provide continuous
-# test output about their progress, and succeeds/fails on
-# zero/non-zero exit code.  It outputs the test output on stdout even
-# in non-verbose mode, and announces the external script with "* run
-# <n>: ..." before running it.  When providing relative paths, keep in
-# mind that all scripts run in "trash directory".
-# Usage: test_external description command arguments...
-# Example: test_external 'Perl API' perl ../path/to/test.pl
-test_external () {
-	test "$#" = 4 && { prereq=$1; shift; } || prereq=
-	test "$#" = 3 ||
-	error >&5 "bug in the test script: not 3 or 4 parameters to test_external"
-	descr="$1"
-	shift
-	if ! test_skip "$descr" "$@"
-	then
-		# Announce the script to reduce confusion about the
-		# test output that follows.
-		say_color "" " run $test_count: $descr ($*)"
-		# Run command; redirect its stderr to &4 as in
-		# test_run_, but keep its stdout on our stdout even in
-		# non-verbose mode.
-		"$@" 2>&4
-		if [ "$?" = 0 ]
-		then
-			test_ok_ "$descr"
-		else
-			test_failure_ "$descr" "$@"
-		fi
-	fi
-}
-
-# Like test_external, but in addition tests that the command generated
-# no output on stderr.
-test_external_without_stderr () {
-	# The temporary file has no (and must have no) security
-	# implications.
-	tmp="$TMPDIR"; if [ -z "$tmp" ]; then tmp=/tmp; fi
-	stderr="$tmp/git-external-stderr.$$.tmp"
-	test_external "$@" 4> "$stderr"
-	[ -f "$stderr" ] || error "Internal error: $stderr disappeared."
-	descr="no stderr: $1"
-	shift
-	say >&3 "expecting no stderr from previous command"
-	if [ ! -s "$stderr" ]; then
-		rm "$stderr"
-		test_ok_ "$descr"
-	else
-		if [ "$verbose" = t ]; then
-			output=`echo; echo Stderr is:; cat "$stderr"`
-		else
-			output=
-		fi
-		# rm first in case test_failure exits.
-		rm "$stderr"
-		test_failure_ "$descr" "$@" "$output"
-	fi
-}
-
 # This is not among top-level (test_expect_success | test_expect_failure)
 # but is a prefix that can be used in the test script, like:
 #
-- 
1.7.1.dirty
Previous: Jakub NarebskiNext: Ævar Arnfjörð Bjarmason
Message 7 of 17 in “Make test-lib.sh emit valid TAP format”
  1. 1/6 Make test-lib.sh emit valid TAP formatÆvar Arnfjörð Bjarmason, May 7, 2010
  2. 2/6 Move t6000lib.sh to lib-*Ævar Arnfjörð Bjarmason, May 7, 2010
  3. Jakub NarebskiMay 7, 2010
  4. 3/6 Skip tests in a way that makes sense under TAPÆvar Arnfjörð Bjarmason, May 7, 2010
  5. 4/6 Turn setup code in t2007-checkout-symlink.sh into a testÆvar Arnfjörð Bjarmason, May 7, 2010
  6. Jakub NarebskiMay 7, 2010
  7. 5/6 We use TAP so the Perl test can run without scaffoldingÆvar Arnfjörð Bjarmason, May 7, 2010
  8. 6/6 Add test_harness make target for testing with prove(1)Ævar Arnfjörð Bjarmason, May 7, 2010
  9. Jakub NarebskiMay 7, 2010
  10. Junio C HamanoMay 8, 2010
  11. Tor ArntsenMay 9, 2010
  12. Sverre RabbelierMay 7, 2010
  13. Ævar Arnfjörð BjarmasonMay 7, 2010
  14. 1/6 Make test-lib.sh emit valid TAP formatÆvar Arnfjörð Bjarmason, May 7, 2010
  15. Ævar Arnfjörð BjarmasonMay 15, 2010
  16. Jakub NarebskiMay 7, 2010
  17. Ævar Arnfjörð BjarmasonMay 7, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.