All of lore.kernel.org
 help / color / mirror / Atom feed
From: Edwin Fernando <edwinfernando734@gmail.com>
To: git@vger.kernel.org
Cc: Edwin Fernando <edwinfernando734@gmail.com>,
	Eric Sunshine <sunshine@sunshineco.com>,
	Andrei Rybak <rybak.a.v@gmail.com>
Subject: [GSOC][PATCH v2] t3701: don't lose "git" exit codes in test scripts
Date: Sat,  1 Apr 2023 20:47:56 +0100	[thread overview]
Message-ID: <20230401194756.5954-1-edwinfernando734@gmail.com> (raw)
In-Reply-To: <20230326173147.39626-1-edwinfernando734@gmail.com>

Exit codes were lost due to piping and command substitution:

- "git ... | <command>"
- "<command> $(git ... )"

Fix these issues using the intermediate step of writing output to file.
---
Changes in response to review:
- addressed code style issues: ">diff" not  "> diff_file"
- a more direct alternative to "test -z $(cat ...)"
- commit message similar to previous commits accomplishing same goals
- revert unnecessary change. keep "<var> = $(git ...)"

 t/t3701-add-interactive.sh | 31 +++++++++++++++----------------
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
index 80446b311d..77aad9032a 100755
--- a/t/t3701-add-interactive.sh
+++ b/t/t3701-add-interactive.sh
@@ -292,10 +292,10 @@ test_expect_success FILEMODE 'patch does not affect mode' '
 	echo content >>file &&
 	chmod +x file &&
 	printf "n\\ny\\n" | git add -p &&
-	git show :file > show_file &&
-	grep content show_file &&
-	git diff file > diff_file &&
-	grep "new mode" diff_file
+	git show :file >show &&
+	grep content show &&
+	git diff file >diff &&
+	grep "new mode" diff
 '
 
 test_expect_success FILEMODE 'stage mode but not hunk' '
@@ -303,10 +303,10 @@ test_expect_success FILEMODE 'stage mode but not hunk' '
 	echo content >>file &&
 	chmod +x file &&
 	printf "y\\nn\\n" | git add -p &&
-	git diff --cached file > diff_file &&
-	grep "new mode" diff_file &&
-	git diff file > diff_file &&
-	grep "+content" diff_file
+	git diff --cached file >diff &&
+	grep "new mode" diff &&
+	git diff file >diff &&
+	grep "+content" diff
 '
 
 
@@ -315,12 +315,11 @@ test_expect_success FILEMODE 'stage mode and hunk' '
 	echo content >>file &&
 	chmod +x file &&
 	printf "y\\ny\\n" | git add -p &&
-	git diff --cached file > diff_file &&
-	grep "new mode" diff_file &&
-	git diff --cached file diff_file &&
-	grep "+content" diff_file &&
-	git diff file > diff_file &&
-	test -z $(cat diff_file)
+	git diff --cached file >diff &&
+	grep "new mode" diff &&
+	grep "+content" diff &&
+	git diff file >diff &&
+	test_must_be_empty diff
 '
 
 # end of tests disabled when filemode is not usable
@@ -977,8 +976,8 @@ test_expect_success 'handle submodules' '
 
 	force_color git -C for-submodules add -p dirty-head >output 2>&1 <y &&
 	git -C for-submodules ls-files --stage dirty-head >actual &&
-	git -C for-submodules/dirty-head rev-parse HEAD > rev &&
-	grep -f rev actual
+	rev="$(git -C for-submodules/dirty-head rev-parse HEAD)" &&
+	grep "$rev" actual
 '
 
 test_expect_success 'set up pathological context' '
-- 
2.40.0


  parent reply	other threads:[~2023-04-01 19:48 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-26 17:31 [GSOC][PATCH 0/1] Avoid suppression of git's exit code in tests Edwin Fernando
2023-03-26 17:31 ` [GSOC][PATCH 1/1] t3701: Avoid suppression of exit status of git Edwin Fernando
2023-03-26 20:14   ` Andrei Rybak
2023-03-27 10:11     ` Eric Sunshine
2023-04-01 19:47 ` Edwin Fernando [this message]
2023-04-02 10:41   ` [GSOC][PATCH v2] t3701: don't lose "git" exit codes in test scripts Andrei Rybak
2023-04-02 11:36   ` [GSOC][PATCH v3] " Edwin Fernando
2023-04-02 17:17     ` Eric Sunshine
2023-04-02 19:17     ` [GSOC][PATCH v4] " Edwin Fernando
2023-04-03  6:24       ` Eric Sunshine
2023-04-03  9:21         ` Edwin Fernando
2023-04-03  9:34         ` Edwin Fernando
2023-04-03 17:03           ` Eric Sunshine

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

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

  git send-email \
    --in-reply-to=20230401194756.5954-1-edwinfernando734@gmail.com \
    --to=edwinfernando734@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=rybak.a.v@gmail.com \
    --cc=sunshine@sunshineco.com \
    /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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.