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

Re: t5545: reduced test coverage

From
Junio C Hamano <gitster@pobox.com>
Date
May 18, 2017, 02:52 UTC
Message-ID
<xmqqo9uqvpuj.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<17124bdc-c6cb-5f1a-5021-7c92ad7e669c@ramsayjones.plus.com>
Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
> I would probably have simply split the test file into two, but ...
>
Hmph, that's a thought.
> ... this looks good to me. (tested on Linux and cygwin).
Thanks.
-- >8 --
Subject: [PATCH] test: allow skipping the remainder

Because TAP output does not like to see the remainder of the test getting skipped after running one or more tests, bf4b7219 ("test-lib.sh: Add check for invalid use of 'skip_all' facility", 2012-09-01) made sure that test_done errors out when this happens.

Instead, loosen the check so that we only pretend that the rest of the test script did not exist in such a case. We'd lose a bit of information (i.e. TAP does not notice that we are skipping some tests), but not very much (i.e. TAP wasn't told how many tests are skipped anyway).

This will allow inclusion of lib-httpd.sh in the middle of a test, which will skip the remainder of the test scripts when tests that involve web server are declined with GIT_TEST_HTTPD=false, for example.

Acked-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 t/test-lib.sh | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 13b5696822..30eb743719 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -745,20 +745,25 @@ test_done () {
 	fi
 	case "$test_failure" in
 	0)
-		# Maybe print SKIP message
-		if test -n "$skip_all" && test $test_count -gt 0
-		then
-			error "Can't use skip_all after running some tests"
-		fi
-		test -z "$skip_all" || skip_all=" # SKIP $skip_all"
-
 		if test $test_external_has_tap -eq 0
 		then
 			if test $test_remaining -gt 0
 			then
 				say_color pass "# passed all $msg"
 			fi
-			say "1..$test_count$skip_all"
+
+			# Maybe print SKIP message
+			test -z "$skip_all" || skip_all="# SKIP $skip_all"
+			case "$test_count" in
+			0)
+				say "1..$test_count${skip_all:+ $skip_all}"
+				;;
+			*)
+				test -z "$skip_all" ||
+				say_color warn "$skip_all"
+				say "1..$test_count"
+				;;
+			esac
 		fi
 
 		test -d "$remove_trash" &&
-- 
2.13.0-427-gdfae0f5495
Previous: Ramsay Jones
Message 7 of 7 in “t5545: reduced test coverage”
  1. Ramsay JonesMay 16, 2017
  2. Junio C HamanoMay 17, 2017
  3. t5545: enhance test coverage when no http server is installedStefan Beller, May 17, 2017
  4. Junio C HamanoMay 17, 2017
  5. Junio C HamanoMay 17, 2017
  6. Ramsay JonesMay 17, 2017
  7. Junio C HamanoMay 18, 2017

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.