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

[PATCH 2/3] t0000: simplify HARNESS_ACTIVE hack

From
Jeff King <peff@peff.net>
Date
Dec 28, 2013, 09:31 UTC
Message-ID
<20131228093149.GB21109@sigill.intra.peff.net>
In-Reply-To
<20131228092731.GA26337@sigill.intra.peff.net>

Commit 517cd55 set HARNESS_ACTIVE unconditionally in sub-tests, because that value affects the output of "--verbose". t0000 needs stable output from its sub-tests, and we may or may not be running under a TAP harness.

That commit made the decision to always set the variable, since it has another useful side effect, which is suppressing writes to t/test-results by the sub-tests (which would just pollute the real results).

Since the last commit, though, the sub-tests have their own test-results directories, so this is no longer an issue. We can now update a few comments that are no longer accurate nor necessary.

We can also revisit the choice of HARNESS_ACTIVE. Since we must choose one value for stability, it's probably saner to have it off. This means that future patches could test things like the test-results writing, or the "--quiet" option, which is currently ignored when run under a harness.

Signed-off-by: Jeff King <peff@peff.net>
---
I do not have any plans to write such tests, and I'd be OK if we wanted
to stop this just at fixing up the comments. But it took me a while to
figure out what is going on, and I believe unsetting HARNESS_ACTIVE in
the sub-tests is the choice that is least likely to cause somebody in
the future to have to re-figure it out. :)
 t/t0000-basic.sh | 14 +++++---------
 t/test-lib.sh    |  2 --
 2 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
index bc4e3e2..e6c5b63 100755
--- a/t/t0000-basic.sh
+++ b/t/t0000-basic.sh
@@ -50,11 +50,11 @@ run_sub_test_lib_test () {
 	shift 2
 	mkdir "$name" &&
 	(
-		# Pretend we're a test harness.  This prevents
-		# test-lib from writing the counts to a file that will
-		# later be summarized, showing spurious "failed" tests
-		HARNESS_ACTIVE=t &&
-		export HARNESS_ACTIVE &&
+		# Pretend we're not running under a test harness, whether we
+		# are or not. The test-lib output depends on the setting of
+		# this variable, so we need a stable setting under which to run
+		# the sub-test.
+		sane_unset HARNESS_ACTIVE &&
 		cd "$name" &&
 		cat >"$name.sh" <<-EOF &&
 		#!$SHELL_PATH
@@ -235,16 +235,13 @@ test_expect_success 'test --verbose' '
 	grep -v "^Initialized empty" test-verbose/out+ >test-verbose/out &&
 	check_sub_test_lib_test test-verbose <<-\EOF
 	> expecting success: true
-	> Z
 	> ok 1 - passing test
 	> Z
 	> expecting success: echo foo
 	> foo
-	> Z
 	> ok 2 - test with output
 	> Z
 	> expecting success: false
-	> Z
 	> not ok 3 - failing test
 	> #	false
 	> Z
@@ -267,7 +264,6 @@ test_expect_success 'test --verbose-only' '
 	> Z
 	> expecting success: echo foo
 	> foo
-	> Z
 	> ok 2 - test with output
 	> Z
 	> not ok 3 - failing test
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 1cf78d5..1531c24 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -481,8 +481,6 @@ test_at_end_hook_ () {
 test_done () {
 	GIT_EXIT_OK=t
 
-	# Note: t0000 relies on $HARNESS_ACTIVE disabling the .counts
-	# output file
 	if test -z "$HARNESS_ACTIVE"
 	then
 		test_results_dir="$TEST_OUTPUT_DIRECTORY/test-results"
-- 
1.8.5.1.399.g900e7cd
Previous: Jeff KingNext: Jonathan Nieder
Message 6 of 18 in “t0000 cleanups”
  1. 0/3 t0000 cleanupsJeff King, Dec 28, 2013
  2. 1/3 t0000: set TEST_OUTPUT_DIRECTORY for sub-testsJeff King, Dec 28, 2013
  3. Jonathan NiederDec 28, 2013
  4. Jonathan NiederDec 28, 2013
  5. Jeff KingDec 29, 2013
  6. 2/3 t0000: simplify HARNESS_ACTIVE hackJeff King, Dec 28, 2013
  7. Jonathan NiederDec 28, 2013
  8. 3/3 t0000: drop "known breakage" testJeff King, Dec 28, 2013
  9. Jonathan NiederDec 28, 2013
  10. Jeff KingDec 29, 2013
  11. Jonathan NiederDec 28, 2013
  12. Junio C HamanoDec 30, 2013
  13. Jonathan NiederDec 30, 2013
  14. Junio C HamanoDec 30, 2013
  15. Jeff KingDec 31, 2013
  16. Jonathan NiederJan 2, 2014
  17. Junio C HamanoJan 2, 2014
  18. Jeff KingJan 3, 2014

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.