git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>, "Junio C Hamano" <gitster@pobox.com>,
	"SZEDER Gábor" <szeder.dev@gmail.com>
Subject: [PATCH 04/11] t3030-merge-recursive: don't check the stderr of a subshell
Date: Sat, 24 Feb 2018 00:39:44 +0100	[thread overview]
Message-ID: <20180223233951.11154-5-szeder.dev@gmail.com> (raw)
In-Reply-To: <20180223233951.11154-1-szeder.dev@gmail.com>

The two test checking 'git mmerge-recursive' in an empty worktree in
't3030-merge-recursive.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.

Note that both subshells execute four git commands each, meaning that
checking the emptiness of the whole subshell implicitly ensures that
not only 'git merge-recursive' but none of the other three commands
outputs anything to their stderr.  Note also that if one of those
commands were to output anything on its stderr, then the current
combined check would not tell us which one of those four commands the
unexpected output came from.

Save the stderr of those four commands only instead of the whole
subshell, so it remains free from tracing output, and save and check
them individually, so they will show us from which command the
unexpected output came from.

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

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 t/t3030-merge-recursive.sh | 36 ++++++++++++++++++++----------------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh
index cdc38fe5d1..cbeea1cf94 100755
--- a/t/t3030-merge-recursive.sh
+++ b/t/t3030-merge-recursive.sh
@@ -525,20 +525,22 @@ test_expect_success 'merge-recursive w/ empty work tree - ours has rename' '
 		GIT_INDEX_FILE="$PWD/ours-has-rename-index" &&
 		export GIT_INDEX_FILE &&
 		mkdir "$GIT_WORK_TREE" &&
-		git read-tree -i -m $c7 &&
-		git update-index --ignore-missing --refresh &&
-		git merge-recursive $c0 -- $c7 $c3 &&
-		git ls-files -s >actual-files
-	) 2>actual-err &&
-	>expected-err &&
+		git read-tree -i -m $c7 2>actual-err &&
+		test_must_be_empty expected-err &&
+		git update-index --ignore-missing --refresh 2>actual-err &&
+		test_must_be_empty expected-err &&
+		git merge-recursive $c0 -- $c7 $c3 2>actual-err &&
+		test_must_be_empty expected-err &&
+		git ls-files -s >actual-files 2>actual-err &&
+		test_must_be_empty expected-err
+	) &&
 	cat >expected-files <<-EOF &&
 	100644 $o3 0	b/c
 	100644 $o0 0	c
 	100644 $o0 0	d/e
 	100644 $o0 0	e
 	EOF
-	test_cmp expected-files actual-files &&
-	test_cmp expected-err actual-err
+	test_cmp expected-files actual-files
 '
 
 test_expect_success 'merge-recursive w/ empty work tree - theirs has rename' '
@@ -548,20 +550,22 @@ test_expect_success 'merge-recursive w/ empty work tree - theirs has rename' '
 		GIT_INDEX_FILE="$PWD/theirs-has-rename-index" &&
 		export GIT_INDEX_FILE &&
 		mkdir "$GIT_WORK_TREE" &&
-		git read-tree -i -m $c3 &&
-		git update-index --ignore-missing --refresh &&
-		git merge-recursive $c0 -- $c3 $c7 &&
-		git ls-files -s >actual-files
-	) 2>actual-err &&
-	>expected-err &&
+		git read-tree -i -m $c3 2>actual-err &&
+		test_must_be_empty expected-err &&
+		git update-index --ignore-missing --refresh 2>>actual-err &&
+		test_must_be_empty expected-err &&
+		git merge-recursive $c0 -- $c3 $c7 2>>actual-err &&
+		test_must_be_empty expected-err &&
+		git ls-files -s >actual-files 2>>actual-err &&
+		test_must_be_empty expected-err
+	) &&
 	cat >expected-files <<-EOF &&
 	100644 $o3 0	b/c
 	100644 $o0 0	c
 	100644 $o0 0	d/e
 	100644 $o0 0	e
 	EOF
-	test_cmp expected-files actual-files &&
-	test_cmp expected-err actual-err
+	test_cmp expected-files actual-files
 '
 
 test_expect_success 'merge removes empty directories' '
-- 
2.16.2.400.g911b7cc0da


  parent reply	other threads:[~2018-02-23 23:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-23 23:39 [PATCH 00/11] Make the test suite pass with '-x' and /bin/sh SZEDER Gábor
2018-02-23 23:39 ` [PATCH 01/11] t: prevent '-x' tracing from interfering with test helpers' stderr SZEDER Gábor
2018-02-24 12:19   ` SZEDER Gábor
2018-02-25 13:40   ` [PATCH v1.1] " SZEDER Gábor
2018-02-23 23:39 ` [PATCH 02/11] t: add means to disable '-x' tracing for individual test scripts SZEDER Gábor
2018-02-23 23:39 ` [PATCH 03/11] t1507-rev-parse-upstream: don't check the stderr of a shell function SZEDER Gábor
2018-02-23 23:39 ` SZEDER Gábor [this message]
2018-02-24  8:04   ` [PATCH 04/11] t3030-merge-recursive: don't check the stderr of a subshell Eric Sunshine
2018-02-27 21:03   ` Junio C Hamano
2018-02-27 21:10     ` Junio C Hamano
2018-02-27 21:27       ` [PATCH] test_must_be_empty: make sure the file exists, not just empty Junio C Hamano
2018-02-27 21:42         ` Stefan Beller
2018-02-27 22:08         ` Jeff King
2018-02-27 21:28       ` [PATCH 04/11] t3030-merge-recursive: don't check the stderr of a subshell SZEDER Gábor
2018-02-27 21:17   ` Junio C Hamano
2018-02-28  0:44     ` SZEDER Gábor
2018-02-23 23:39 ` [PATCH 05/11] t5500-fetch-pack: " SZEDER Gábor
2018-02-23 23:39 ` [PATCH 06/11] t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log file SZEDER Gábor
2018-02-23 23:39 ` [PATCH 07/11] t5570-git-daemon: don't check the stderr of a subshell SZEDER Gábor
2018-02-23 23:39 ` [PATCH 08/11] t9903-bash-prompt: don't check the stderr of __git_ps1() SZEDER Gábor
2018-02-23 23:39 ` [PATCH 09/11] t1510-repo-setup: mark as untraceable with '-x' SZEDER Gábor
2018-02-23 23:39 ` [PATCH 10/11] t/README: add a note about don't saving stderr of compound commands SZEDER Gábor
2018-02-23 23:39 ` [PATCH 11/11] travis-ci: run tests with '-x' tracing SZEDER Gábor
2018-03-02 15:32 ` [PATCH 00/11] Make the test suite pass with '-x' and /bin/sh SZEDER Gábor
2018-03-03  7:12 ` Jeff King
2018-03-05 21:18   ` SZEDER Gábor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180223233951.11154-5-szeder.dev@gmail.com \
    --to=szeder.dev@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).