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

[PATCH 2/2] t9402-git-cvsserver-refs: don't check the stderr of a subshell

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Mar 8, 2018, 12:38 UTC
Message-ID
<20180308123844.15163-3-szeder.dev@gmail.com>
In-Reply-To
<20180308123844.15163-1-szeder.dev@gmail.com>

Four 'cvs diff' related tests in 't9402-git-cvsserver-refs.sh' fail when the test script is run with '-x' tracing (and using a shell other than a Bash version supporting BASH_XTRACEFD). The reason for those failures is that the tests check the emptiness of a subshell's stderr, which includes the trace of commands executed in that subshell as well, throwing off the emptiness check.

Save the stdout and stderr of the invoked 'cvs' command instead of the whole subshell, so the latter remains free from tracing output. (Note that changing how stdout is saved is only done for the sake of consistency, it's not necessary for correctness.)

After this change t9402 passes with '-x', even when running with /bin/sh.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 t/t9402-git-cvsserver-refs.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/t/t9402-git-cvsserver-refs.sh b/t/t9402-git-cvsserver-refs.sh
index 6d2d3c8739..cf31ace667 100755
--- a/t/t9402-git-cvsserver-refs.sh
+++ b/t/t9402-git-cvsserver-refs.sh
@@ -455,20 +455,20 @@ test_expect_success 'cvs up -r $(git rev-parse v1)' '
 '
 
 test_expect_success 'cvs diff -r v1 -u' '
-	( cd cvswork && cvs -f diff -r v1 -u ) >cvsDiff.out 2>cvs.log &&
+	( cd cvswork && cvs -f diff -r v1 -u >../cvsDiff.out 2>../cvs.log ) &&
 	test_must_be_empty cvsDiff.out &&
 	test_must_be_empty cvs.log
 '
 
 test_expect_success 'cvs diff -N -r v2 -u' '
-	( cd cvswork && ! cvs -f diff -N -r v2 -u ) >cvsDiff.out 2>cvs.log &&
+	( cd cvswork && ! cvs -f diff -N -r v2 -u >../cvsDiff.out 2>../cvs.log ) &&
 	test_must_be_empty cvs.log &&
 	test -s cvsDiff.out &&
 	check_diff cvsDiff.out v2 v1 >check_diff.out 2>&1
 '
 
 test_expect_success 'cvs diff -N -r v2 -r v1.2' '
-	( cd cvswork && ! cvs -f diff -N -r v2 -r v1.2 -u ) >cvsDiff.out 2>cvs.log &&
+	( cd cvswork && ! cvs -f diff -N -r v2 -r v1.2 -u >../cvsDiff.out 2>../cvs.log ) &&
 	test_must_be_empty cvs.log &&
 	test -s cvsDiff.out &&
 	check_diff cvsDiff.out v2 v1.2 >check_diff.out 2>&1
@@ -487,7 +487,7 @@ test_expect_success 'apply early [cvswork3] diff to b3' '
 '
 
 test_expect_success 'check [cvswork3] diff' '
-	( cd cvswork3 && ! cvs -f diff -N -u ) >"$WORKDIR/cvsDiff.out" 2>cvs.log &&
+	( cd cvswork3 && ! cvs -f diff -N -u >"$WORKDIR/cvsDiff.out" 2>../cvs.log ) &&
 	test_must_be_empty cvs.log &&
 	test -s cvsDiff.out &&
 	test $(grep Index: cvsDiff.out | wc -l) = 3 &&
-- 
2.16.2.603.g180c1428f0
Previous: SZEDER GáborNext: SZEDER Gábor
Message 2 of 14 in “Make cvs tests pass with '-x' tracing and /bin/sh”
  1. 0/2 Make cvs tests pass with '-x' tracing and /bin/shSZEDER Gábor, Mar 8, 2018
  2. 2/2 t9402-git-cvsserver-refs: don't check the stderr of a subshellSZEDER Gábor, Mar 8, 2018
  3. 1/2 t9400-git-cvsserver-server: don't rely on the output of 'test_cmp'SZEDER Gábor, Mar 8, 2018
  4. Eric SunshineMar 8, 2018
  5. SZEDER GáborMar 8, 2018
  6. Eric SunshineMar 8, 2018
  7. Eric SunshineMar 8, 2018
  8. SZEDER GáborMar 8, 2018
  9. 1/2 t9400-git-cvsserver-server: don't rely on the output of 'test_cmp'SZEDER Gábor, Mar 8, 2018
  10. Junio C HamanoMar 8, 2018
  11. SZEDER GáborMar 8, 2018
  12. Junio C HamanoMar 8, 2018
  13. SZEDER GáborMar 9, 2018
  14. Jeff KingMar 13, 2018

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.