git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Denton Liu" <liu.denton@gmail.com>, "Jeff King" <peff@peff.net>,
	"Eric Sunshine" <sunshine@sunshineco.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 6/6] tests: add a "set -o pipefail" for a patched bash
Date: Fri, 15 Jan 2021 00:35:15 +0100	[thread overview]
Message-ID: <20210114233515.31298-7-avarab@gmail.com> (raw)
In-Reply-To: <20191115040909.GA21654@sigill.intra.peff.net>

Add a "set -o pipefail" test mode to the test suite to detect failures
in "git" its output is fed directly to a pipe. Doing so is a pattern
we discourage[1] in the test suite, but we've got plenty of tests like
that. Now we can reliably detect those failures.

There was a previous attempt in [2] to add such a test mode, but as
noted by Jeff King in [3] adding it is a matter of peeing against the
wind with current bash semantics of failing on SIGPIPE.

This series relies on a patch of mine to bash, which I'm submitting
upstream. Vanilla bash ignores SIGPIPE under "set -e" since version
3.1. It's only under "set -o pipefail" (added in 3.2) that it doesn't
take account of SIGPIPE, in a seeming omission nobody bothered to fix
yet.

Patching bash[4] with:

    diff --git a/jobs.c b/jobs.c
    index a581f305..fa5de82a 100644
    --- a/jobs.c
    +++ b/jobs.c
    @@ -2851,8 +2851,14 @@ raw_job_exit_status (job)
           p = jobs[job]->pipe;
           do
     	{
    -	  if (WSTATUS (p->status) != EXECUTION_SUCCESS)
    -	    fail = WSTATUS(p->status);
    +	  if (WSTATUS (p->status) != EXECUTION_SUCCESS
    +#if defined (DONT_REPORT_SIGPIPE)
    +              && WTERMSIG (p->status) != SIGPIPE
    +#endif
    +              )
    +            {
    +              fail = WSTATUS(p->status);
    +            }
     	  p = p->next;
     	}
           while (p != jobs[job]->pipe);

Makes it useful for something like the git test suite. With vanilla
bash and GIT_TEST_PIPEFAIL=true we'll fail 4 tests in my one-off test.

With my patched bash the only tests we need to skip are those that are
explicitly testing that a piped command returned SIGPIPE.

As Jeff noted in [3] that count isn't reliable, as more will fail in a
way that's hard to reproduce due to the racy nature of vanilla "set -o
pipefail"

1. a378fee5b0 (Documentation: add shell guidelines, 2018-10-05)
2. https://lore.kernel.org/git/cover.1573779465.git.liu.denton@gmail.com/
3. https://lore.kernel.org/git/20191115040909.GA21654@sigill.intra.peff.net/
4. https://github.com/bminor/bash/compare/master...avar:avar/ignore-sigterm-and-sigpipe-on-pipe-fail

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/README              |  6 ++++++
 t/t0000-basic.sh      | 14 ++++++++++++++
 t/t0005-signals.sh    |  4 ++--
 t/t5000-tar-tree.sh   |  2 +-
 t/t9902-completion.sh |  5 +++++
 t/test-lib.sh         | 29 +++++++++++++++++++++++++++++
 6 files changed, 57 insertions(+), 3 deletions(-)

diff --git a/t/README b/t/README
index c730a70770..d9f65bfa6b 100644
--- a/t/README
+++ b/t/README
@@ -439,6 +439,12 @@ GIT_TEST_DEFAULT_HASH=<hash-algo> specifies which hash algorithm to
 use in the test scripts. Recognized values for <hash-algo> are "sha1"
 and "sha256".
 
+GIT_TEST_PIPEFAIL=<boolean>, when true, run 'set -o pipefail' to catch
+failures in commands that aren't the last in a pipe. Defaults to true
+on bash versions which know how to ignore SIGPIPE failures under the
+'set -o pipefail' mode (as of 2021-01-14 only in an out-of-tree patch
+to bash).
+
 Naming Tests
 ------------
 
diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh
index 930cf9d1b7..e70cc37139 100755
--- a/t/t0000-basic.sh
+++ b/t/t0000-basic.sh
@@ -1350,4 +1350,18 @@ test_expect_success 'test_{must,might}_fail accept non-git on "sigpipe"' '
 	test_cmp badobjects out
 '
 
+test_expect_failure BASH_SET_O_PIPEFAIL 'test_{must,might}_fail ok=sigpipe under bash "set -o pipefail"' '
+	grep string </dev/null | true
+'
+
+test_expect_failure BASH_SET_O_PIPEFAIL 'test_{must,might}_fail ok=sigpipe under bash "set -o pipefail"' '
+	test_must_fail grep string </dev/null | true &&
+	test_might_fail grep string </dev/null | true
+'
+
+test_expect_success BASH_SET_O_PIPEFAIL 'test_{must,might}_fail ok=sigpipe under bash "set -o pipefail"' '
+	test_must_fail ok=sigpipe grep string </dev/null | true &&
+	test_might_fail ok=sigpipe grep string </dev/null | true
+'
+
 test_done
diff --git a/t/t0005-signals.sh b/t/t0005-signals.sh
index 4c214bd11c..cc5784a274 100755
--- a/t/t0005-signals.sh
+++ b/t/t0005-signals.sh
@@ -40,12 +40,12 @@ test_expect_success 'create blob' '
 	git add file
 '
 
-test_expect_success !MINGW 'a constipated git dies with SIGPIPE' '
+test_expect_success !MINGW,!BASH_SET_O_PIPEFAIL 'a constipated git dies with SIGPIPE' '
 	OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) &&
 	test_match_signal 13 "$OUT"
 '
 
-test_expect_success !MINGW 'a constipated git dies with SIGPIPE even if parent ignores it' '
+test_expect_success !MINGW,!BASH_SET_O_PIPEFAIL 'a constipated git dies with SIGPIPE even if parent ignores it' '
 	OUT=$( ((trap "" PIPE; large_git; echo $? 1>&3) | :) 3>&1 ) &&
 	test_match_signal 13 "$OUT"
 '
diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh
index 3ebb0d3b65..3adcbce84c 100755
--- a/t/t5000-tar-tree.sh
+++ b/t/t5000-tar-tree.sh
@@ -416,7 +416,7 @@ test_expect_success LONG_IS_64BIT 'set up repository with huge blob' '
 
 # We expect git to die with SIGPIPE here (otherwise we
 # would generate the whole 64GB).
-test_expect_success LONG_IS_64BIT 'generate tar with huge size' '
+test_expect_success LONG_IS_64BIT,!BASH_SET_O_PIPEFAIL 'generate tar with huge size' '
 	{
 		git archive HEAD
 		echo $? >exit-code
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index a1c4f1f6d4..3414ac56f4 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -7,6 +7,11 @@ test_description='test bash completion'
 
 . ./lib-bash.sh
 
+if test -n "$GIT_TEST_PIPEFAIL_TRUE"
+then
+	set +o pipefail
+fi
+
 complete ()
 {
 	# do nothing
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 9fa7c1d0f6..118dc80ffc 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -36,6 +36,31 @@ then
 fi
 GIT_BUILD_DIR="$TEST_DIRECTORY"/..
 
+# Does "set -o pipefail" on this bash version handle SIGPIPE? Use it!
+. "$TEST_DIRECTORY/lib-bash-detection.sh"
+GIT_TEST_PIPEFAIL_TRUE=
+GIT_TEST_PIPEFAIL_DEFAULT=false
+if test -n "$TEST_SH_IS_BIN_BASH" &&
+       $BASH -c 'set -eo pipefail; yes | head -n 1 >/dev/null'
+then
+	GIT_TEST_PIPEFAIL_DEFAULT=true
+fi
+# We're too early for test_bool_env
+if git env--helper --type=bool --default="$GIT_TEST_PIPEFAIL_DEFAULT" \
+       --exit-code GIT_TEST_PIPEFAIL
+then
+	set -o pipefail
+
+	# Only "set -o pipefail" in the main test scripts, not any
+	# sub-programs we spawn.
+	GIT_TEST_PIPEFAIL=
+	export GIT_TEST_PIPEFAIL
+
+	# For the convenience of the prereq for it.
+	GIT_TEST_PIPEFAIL_TRUE=true
+	export GIT_TEST_PIPEFAIL_TRUE
+fi
+
 # If we were built with ASAN, it may complain about leaks
 # of program-lifetime variables. Disable it by default to lower
 # the noise level. This needs to happen at the start of the script,
@@ -1552,6 +1577,10 @@ test_lazy_prereq PIPE '
 	rm -f testfifo && mkfifo testfifo
 '
 
+test_lazy_prereq BASH_SET_O_PIPEFAIL '
+	test -n "$GIT_TEST_PIPEFAIL_TRUE"
+'
+
 test_lazy_prereq SYMLINKS '
 	# test whether the filesystem supports symbolic links
 	ln -s x y && test -h y
-- 
2.29.2.222.g5d2a92d10f8


  parent reply	other threads:[~2021-01-14 23:38 UTC|newest]

Thread overview: 228+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-15  1:00 [PATCH 00/27] t: general test cleanup + `set -o pipefail` Denton Liu
2019-11-15  1:00 ` [PATCH 01/27] lib-bash.sh: move `then` onto its own line Denton Liu
2019-11-15 18:22   ` Eric Sunshine
2019-11-16  2:50     ` Junio C Hamano
2019-11-15  1:00 ` [PATCH 02/27] t0014: remove git command upstream of pipe Denton Liu
2019-11-15  1:00 ` [PATCH 03/27] t0090: stop losing return codes of git commands Denton Liu
2019-11-15  1:00 ` [PATCH 04/27] t3301: " Denton Liu
2019-11-15  1:00 ` [PATCH 05/27] t3600: use test_line_count() where possible Denton Liu
2019-11-15  1:00 ` [PATCH 06/27] t3600: stop losing return codes of git commands Denton Liu
2019-11-15  1:00 ` [PATCH 07/27] t3600: comment on inducing SIGPIPE in `git rm` Denton Liu
2019-11-15  1:00 ` [PATCH 08/27] t4015: stop losing return codes of git commands Denton Liu
2019-11-15  1:00 ` [PATCH 09/27] t4015: use test_write_lines() Denton Liu
2019-11-15  1:00 ` [PATCH 10/27] t4138: stop losing return codes of git commands Denton Liu
2019-11-16  9:00   ` Eric Sunshine
2019-11-15  1:00 ` [PATCH 11/27] t5317: " Denton Liu
2019-11-15  1:00 ` [PATCH 12/27] t5317: use ! grep to check for no matching lines Denton Liu
2019-11-16  9:27   ` Eric Sunshine
2019-11-15  1:01 ` [PATCH 13/27] t5703: stop losing return codes of git commands Denton Liu
2019-11-16 10:11   ` Eric Sunshine
2019-11-15  1:01 ` [PATCH 14/27] t7501: remove spaces after redirect operators Denton Liu
2019-11-15  1:01 ` [PATCH 15/27] t7501: stop losing return codes of git commands Denton Liu
2019-11-16 10:35   ` Eric Sunshine
2019-11-15  1:01 ` [PATCH 16/27] t7700: drop redirections to /dev/null Denton Liu
2019-11-15  1:01 ` [PATCH 17/27] t7700: remove spaces after redirect operators Denton Liu
2019-11-15  1:01 ` [PATCH 18/27] t7700: move keywords onto their own line Denton Liu
2019-11-15  1:01 ` [PATCH 19/27] t7700: s/test -f/test_path_is_file/ Denton Liu
2019-11-15  1:01 ` [PATCH 20/27] t7700: stop losing return codes of git commands Denton Liu
2019-11-15  1:01 ` [PATCH 21/27] t: define test_grep_return_success() Denton Liu
2019-11-15  5:26   ` Junio C Hamano
2019-11-15  1:01 ` [PATCH 22/27] t0090: mask failing grep status Denton Liu
2019-11-15  1:01 ` [PATCH 23/27] t3600: mark git command as failing Denton Liu
2019-11-15  5:35   ` Junio C Hamano
2019-11-15  1:01 ` [PATCH 24/27] t5004: ignore SIGPIPE in zipinfo Denton Liu
2019-11-15  5:36   ` Junio C Hamano
2019-11-15  1:01 ` [PATCH 25/27] t5703: mask failing grep status Denton Liu
2019-11-15  1:01 ` [PATCH 26/27] t9902: disable pipefail Denton Liu
2019-11-15  1:01 ` [PATCH 27/27] t: run tests with `set -o pipefail` on Bash Denton Liu
2019-11-15  4:09 ` [PATCH 00/27] t: general test cleanup + `set -o pipefail` Jeff King
2021-01-14 23:35   ` [PATCH 0/6] tests: add a bash "set -o pipefail" test mode Ævar Arnfjörð Bjarmason
2021-01-16 15:35     ` [PATCH v2 00/11] " Ævar Arnfjörð Bjarmason
2021-01-16 21:50       ` Junio C Hamano
2021-01-17 16:50       ` Jeff King
2021-01-16 15:35     ` [PATCH v2 01/11] cache-tree tests: remove unused $2 parameter Ævar Arnfjörð Bjarmason
2021-01-16 15:35     ` [PATCH v2 02/11] cache-tree tests: use a sub-shell with less indirection Ævar Arnfjörð Bjarmason
2021-01-17 16:55       ` Jeff King
2021-01-17 22:23         ` Eric Sunshine
2021-01-17 23:37         ` Junio C Hamano
2021-01-16 15:35     ` [PATCH v2 03/11] cache-tree tests: refactor overly complex function Ævar Arnfjörð Bjarmason
2021-01-16 21:51       ` Junio C Hamano
2021-01-16 15:35     ` [PATCH v2 04/11] git svn mergeinfo tests: modernize redirection & quoting style Ævar Arnfjörð Bjarmason
2021-01-16 21:51       ` Junio C Hamano
2021-01-16 15:35     ` [PATCH v2 05/11] git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty Ævar Arnfjörð Bjarmason
2021-01-16 15:35     ` [PATCH v2 06/11] git-svn tests: rewrite brittle tests to use "--[no-]merges" Ævar Arnfjörð Bjarmason
2021-01-16 21:51       ` Junio C Hamano
2021-01-17 16:47       ` Jeff King
2021-01-16 15:35     ` [PATCH v2 07/11] rm tests: actually test for SIGPIPE in SIGPIPE test Ævar Arnfjörð Bjarmason
2021-01-16 15:35     ` [PATCH v2 08/11] upload-pack tests: avoid a non-zero "grep" exit status Ævar Arnfjörð Bjarmason
2021-01-16 21:48       ` Junio C Hamano
2021-01-16 15:35     ` [PATCH v2 09/11] archive tests: use a cheaper "zipinfo -h" invocation to get header Ævar Arnfjörð Bjarmason
2021-01-17 17:08       ` Jeff King
2021-01-16 15:35     ` [PATCH v2 10/11] tests: split up bash detection library Ævar Arnfjörð Bjarmason
2021-01-16 15:35     ` [PATCH v2 11/11] tests: add a "set -o pipefail" for a patched bash Ævar Arnfjörð Bjarmason
2021-01-20 13:04       ` SZEDER Gábor
2021-01-23  3:46       ` Junio C Hamano
2021-01-23  7:37         ` Junio C Hamano
2021-01-23  9:32           ` Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 00/10] Miscellaneous "set -o pipefail"-related test cleanups Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 01/10] cache-tree tests: refactor for modern test style Ævar Arnfjörð Bjarmason
2021-01-23 21:34               ` Junio C Hamano
2021-01-23 13:00             ` [PATCH v3 02/10] cache-tree tests: remove unused $2 parameter Ævar Arnfjörð Bjarmason
2021-01-23 21:35               ` Junio C Hamano
2021-01-23 13:00             ` [PATCH v3 03/10] cache-tree tests: use a sub-shell with less indirection Ævar Arnfjörð Bjarmason
2021-01-23 21:35               ` Junio C Hamano
2021-01-23 13:00             ` [PATCH v3 04/10] cache-tree tests: explicitly test HEAD and index differences Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 05/10] git svn mergeinfo tests: modernize redirection & quoting style Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 06/10] git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 07/10] git-svn tests: rewrite brittle tests to use "--[no-]merges" Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 08/10] upload-pack tests: avoid a non-zero "grep" exit status Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 09/10] archive tests: use a cheaper "zipinfo -h" invocation to get header Ævar Arnfjörð Bjarmason
2021-01-23 13:00             ` [PATCH v3 10/10] rm tests: actually test for SIGPIPE in SIGPIPE test Ævar Arnfjörð Bjarmason
2021-01-23  9:40         ` [PATCH v2 11/11] tests: add a "set -o pipefail" for a patched bash Ævar Arnfjörð Bjarmason
2021-01-14 23:35   ` [PATCH 1/6] test-lib: add tests for test_might_fail Ævar Arnfjörð Bjarmason
2021-01-15  9:36     ` Jeff King
2021-01-16 14:41       ` [PATCH] " Ævar Arnfjörð Bjarmason
2021-01-17 16:48         ` Jeff King
2021-01-14 23:35   ` [PATCH 2/6] test-lib: add ok=* support to test_might_fail Ævar Arnfjörð Bjarmason
2021-01-14 23:35   ` [PATCH 3/6] test_lib: allow test_{must,might}_fail to accept non-git on "sigpipe" Ævar Arnfjörð Bjarmason
2021-01-15  8:15     ` Denton Liu
2021-01-15  9:39       ` Ævar Arnfjörð Bjarmason
2021-01-15 10:00         ` Jeff King
2021-01-14 23:35   ` [PATCH 4/6] tests: use "test_might_fail ok=sigpipe grep" when appropriate Ævar Arnfjörð Bjarmason
2021-01-15  9:14     ` Ævar Arnfjörð Bjarmason
2021-01-15  9:48       ` Jeff King
2021-01-14 23:35   ` [PATCH 5/6] tests: split up bash detection library Ævar Arnfjörð Bjarmason
2021-01-15  9:42     ` Ævar Arnfjörð Bjarmason
2021-01-14 23:35   ` Ævar Arnfjörð Bjarmason [this message]
2021-01-15 10:04     ` [PATCH 6/6] tests: add a "set -o pipefail" for a patched bash Jeff King
2019-11-21  0:45 ` [PATCH v2 00/21] t: test cleanup stemming from experimentally enabling pipefail Denton Liu
2019-11-21  0:45   ` [PATCH v2 01/21] lib-bash.sh: move `then` onto its own line Denton Liu
2019-11-21  0:45   ` [PATCH v2 02/21] t0014: remove git command upstream of pipe Denton Liu
2019-11-21  0:45   ` [PATCH v2 03/21] t0090: stop losing return codes of git commands Denton Liu
2019-11-21  0:45   ` [PATCH v2 04/21] t3301: " Denton Liu
2019-11-21  0:45   ` [PATCH v2 05/21] t3600: use test_line_count() where possible Denton Liu
2019-11-21  0:46   ` [PATCH v2 06/21] t3600: stop losing return codes of git commands Denton Liu
2019-11-21  0:46   ` [PATCH v2 07/21] t3600: comment on inducing SIGPIPE in `git rm` Denton Liu
2019-11-21  0:46   ` [PATCH v2 08/21] t4015: stop losing return codes of git commands Denton Liu
2019-11-21  0:46   ` [PATCH v2 09/21] t4015: use test_write_lines() Denton Liu
2019-11-21  0:46   ` [PATCH v2 10/21] t4138: stop losing return codes of git commands Denton Liu
2019-11-21  0:46   ` [PATCH v2 11/21] t5317: " Denton Liu
2019-11-21  0:46   ` [PATCH v2 12/21] t5317: use ! grep to check for no matching lines Denton Liu
2019-11-21 12:59     ` Eric Sunshine
2019-11-21  0:46   ` [PATCH v2 13/21] t5703: simplify one-time-sed generation logic Denton Liu
2019-11-21 13:12     ` Eric Sunshine
2019-11-21 23:22       ` Denton Liu
2019-11-21  0:46   ` [PATCH v2 14/21] t5703: stop losing return codes of git commands Denton Liu
2019-11-21  0:46   ` [PATCH v2 15/21] t7501: remove spaces after redirect operators Denton Liu
2019-11-21  0:46   ` [PATCH v2 16/21] t7501: stop losing return codes of git commands Denton Liu
2019-11-21  0:46   ` [PATCH v2 17/21] t7700: drop redirections to /dev/null Denton Liu
2019-11-21  0:46   ` [PATCH v2 18/21] t7700: remove spaces after redirect operators Denton Liu
2019-11-21  0:46   ` [PATCH v2 19/21] t7700: move keywords onto their own line Denton Liu
2019-11-21  0:46   ` [PATCH v2 20/21] t7700: s/test -f/test_path_is_file/ Denton Liu
2019-11-21  0:46   ` [PATCH v2 21/21] t7700: stop losing return codes of git commands Denton Liu
2019-11-22 18:59   ` [PATCH v3 00/22] t: test cleanup stemming from experimentally enabling pipefail Denton Liu
2019-11-22 18:59     ` [PATCH v3 01/22] lib-bash.sh: move `then` onto its own line Denton Liu
2019-11-22 18:59     ` [PATCH v3 02/22] apply-one-time-sed.sh: modernize style Denton Liu
2019-11-23  1:32       ` Junio C Hamano
2019-11-22 18:59     ` [PATCH v3 03/22] t0014: remove git command upstream of pipe Denton Liu
2019-11-22 18:59     ` [PATCH v3 04/22] t0090: stop losing return codes of git commands Denton Liu
2019-11-22 18:59     ` [PATCH v3 05/22] t3301: " Denton Liu
2019-11-22 18:59     ` [PATCH v3 06/22] t3600: use test_line_count() where possible Denton Liu
2019-11-22 18:59     ` [PATCH v3 07/22] t3600: stop losing return codes of git commands Denton Liu
2019-11-22 19:00     ` [PATCH v3 08/22] t3600: comment on inducing SIGPIPE in `git rm` Denton Liu
2019-11-22 19:00     ` [PATCH v3 09/22] t4015: stop losing return codes of git commands Denton Liu
2019-11-22 19:00     ` [PATCH v3 10/22] t4015: use test_write_lines() Denton Liu
2019-11-22 19:00     ` [PATCH v3 11/22] t4138: stop losing return codes of git commands Denton Liu
2019-11-22 19:00     ` [PATCH v3 12/22] t5317: " Denton Liu
2019-11-22 19:00     ` [PATCH v3 13/22] t5317: use ! grep to check for no matching lines Denton Liu
2019-11-23  6:21       ` Eric Sunshine
2019-11-25 21:43         ` Denton Liu
2019-11-22 19:00     ` [PATCH v3 14/22] t5703: simplify one-time-sed generation logic Denton Liu
2019-11-22 19:00     ` [PATCH v3 15/22] t5703: stop losing return codes of git commands Denton Liu
2019-11-22 19:00     ` [PATCH v3 16/22] t7501: remove spaces after redirect operators Denton Liu
2019-11-22 19:00     ` [PATCH v3 17/22] t7501: stop losing return codes of git commands Denton Liu
2019-11-22 19:00     ` [PATCH v3 18/22] t7700: drop redirections to /dev/null Denton Liu
2019-11-22 19:00     ` [PATCH v3 19/22] t7700: remove spaces after redirect operators Denton Liu
2019-11-22 19:00     ` [PATCH v3 20/22] t7700: move keywords onto their own line Denton Liu
2019-11-22 19:00     ` [PATCH v3 21/22] t7700: s/test -f/test_path_is_file/ Denton Liu
2019-11-22 19:00     ` [PATCH v3 22/22] t7700: stop losing return codes of git commands Denton Liu
2019-11-23  1:49       ` Junio C Hamano
2019-11-25 23:57         ` Denton Liu
2019-11-26  0:58           ` Eric Sunshine
2019-11-26  1:34             ` Junio C Hamano
2019-11-26  4:47               ` Denton Liu
2019-11-26  1:17     ` [PATCH v4 00/27] t: test cleanup stemming from experimentally enabling pipefail Denton Liu
2019-11-26  1:17       ` [PATCH v4 01/27] lib-bash.sh: move `then` onto its own line Denton Liu
2019-11-26  1:17       ` [PATCH v4 02/27] apply-one-time-sed.sh: modernize style Denton Liu
2019-11-26  1:17       ` [PATCH v4 03/27] t0014: remove git command upstream of pipe Denton Liu
2019-11-26  1:17       ` [PATCH v4 04/27] t0090: stop losing return codes of git commands Denton Liu
2019-11-26  1:17       ` [PATCH v4 05/27] t3301: " Denton Liu
2019-11-26  1:17       ` [PATCH v4 06/27] t3600: use test_line_count() where possible Denton Liu
2019-11-26  1:18       ` [PATCH v4 07/27] t3600: stop losing return codes of git commands Denton Liu
2019-11-26  1:18       ` [PATCH v4 08/27] t3600: comment on inducing SIGPIPE in `git rm` Denton Liu
2019-11-26  1:18       ` [PATCH v4 09/27] t4015: stop losing return codes of git commands Denton Liu
2019-11-26  1:18       ` [PATCH v4 10/27] t4015: use test_write_lines() Denton Liu
2019-11-26  1:18       ` [PATCH v4 11/27] t4138: stop losing return codes of git commands Denton Liu
2019-11-26  1:18       ` [PATCH v4 12/27] t5317: " Denton Liu
2019-11-26  1:18       ` [PATCH v4 13/27] t5317: use ! grep to check for no matching lines Denton Liu
2019-11-26  1:18       ` [PATCH v4 14/27] t5703: simplify one-time-sed generation logic Denton Liu
2019-11-26  1:18       ` [PATCH v4 15/27] t5703: stop losing return codes of git commands Denton Liu
2019-11-26  1:18       ` [PATCH v4 16/27] t7501: remove spaces after redirect operators Denton Liu
2019-11-26  1:18       ` [PATCH v4 17/27] t7501: stop losing return codes of git commands Denton Liu
2019-11-26  1:18       ` [PATCH v4 18/27] t7700: drop redirections to /dev/null Denton Liu
2019-11-26  1:18       ` [PATCH v4 19/27] t7700: remove spaces after redirect operators Denton Liu
2019-11-26  1:18       ` [PATCH v4 20/27] t7700: move keywords onto their own line Denton Liu
2019-11-26  1:18       ` [PATCH v4 21/27] t7700: s/test -f/test_path_is_file/ Denton Liu
2019-11-26  1:18       ` [PATCH v4 22/27] t7700: consolidate code into test_no_missing_in_packs() Denton Liu
2019-11-26  2:35         ` Eric Sunshine
2019-11-26  1:18       ` [PATCH v4 23/27] squash! " Denton Liu
2019-11-26  1:18       ` [PATCH v4 24/27] t7700: consolidate code into test_has_duplicate_object() Denton Liu
2019-11-26  1:18       ` [PATCH v4 25/27] t7700: replace egrep with grep Denton Liu
2019-11-26  1:18       ` [PATCH v4 26/27] t7700: make references to SHA-1 generic Denton Liu
2019-11-26  3:15         ` Eric Sunshine
2019-11-26  1:18       ` [PATCH v4 27/27] t7700: stop losing return codes of git commands Denton Liu
2019-11-27 19:53       ` [PATCH v5 00/26] t: test cleanup stemming from experimentally enabling pipefail Denton Liu
2019-11-27 19:53         ` [PATCH v5 01/26] lib-bash.sh: move `then` onto its own line Denton Liu
2019-11-27 19:53         ` [PATCH v5 02/26] apply-one-time-sed.sh: modernize style Denton Liu
2019-11-27 19:53         ` [PATCH v5 03/26] t0014: remove git command upstream of pipe Denton Liu
2019-11-27 19:53         ` [PATCH v5 04/26] t0090: stop losing return codes of git commands Denton Liu
2019-11-27 19:53         ` [PATCH v5 05/26] t3301: " Denton Liu
2019-11-27 19:53         ` [PATCH v5 06/26] t3600: use test_line_count() where possible Denton Liu
2019-11-27 19:53         ` [PATCH v5 07/26] t3600: stop losing return codes of git commands Denton Liu
2019-11-27 19:53         ` [PATCH v5 08/26] t3600: comment on inducing SIGPIPE in `git rm` Denton Liu
2019-11-27 19:53         ` [PATCH v5 09/26] t4015: stop losing return codes of git commands Denton Liu
2019-11-27 19:53         ` [PATCH v5 10/26] t4015: use test_write_lines() Denton Liu
2019-11-27 19:53         ` [PATCH v5 11/26] t4138: stop losing return codes of git commands Denton Liu
2019-11-27 19:53         ` [PATCH v5 12/26] t5317: " Denton Liu
2019-11-27 19:53         ` [PATCH v5 13/26] t5317: use ! grep to check for no matching lines Denton Liu
2019-11-27 19:53         ` [PATCH v5 14/26] t5703: simplify one-time-sed generation logic Denton Liu
2019-11-27 19:53         ` [PATCH v5 15/26] t5703: stop losing return codes of git commands Denton Liu
2019-11-27 19:53         ` [PATCH v5 16/26] t7501: remove spaces after redirect operators Denton Liu
2019-11-27 19:53         ` [PATCH v5 17/26] t7501: stop losing return codes of git commands Denton Liu
2019-11-27 19:53         ` [PATCH v5 18/26] t7700: drop redirections to /dev/null Denton Liu
2019-11-27 19:53         ` [PATCH v5 19/26] t7700: remove spaces after redirect operators Denton Liu
2019-11-27 19:53         ` [PATCH v5 20/26] t7700: move keywords onto their own line Denton Liu
2019-11-27 19:53         ` [PATCH v5 21/26] t7700: s/test -f/test_path_is_file/ Denton Liu
2019-11-27 19:53         ` [PATCH v5 22/26] t7700: consolidate code into test_no_missing_in_packs() Denton Liu
2019-11-29 21:39           ` Junio C Hamano
2019-12-02 20:50             ` Denton Liu
2019-12-02 22:53               ` Junio C Hamano
2019-12-02 23:28                 ` Denton Liu
2019-12-03 15:41                   ` Junio C Hamano
2019-12-04  7:24                     ` Denton Liu
2019-12-04 18:13                       ` Junio C Hamano
2019-12-04 22:03                         ` [PATCH v6 0/5] t: test cleanup stemming from experimentally enabling pipefail Denton Liu
2019-12-04 22:03                           ` [PATCH v6 1/5] t7700: consolidate code into test_no_missing_in_packs() Denton Liu
2019-12-04 22:03                           ` [PATCH v6 2/5] t7700: consolidate code into test_has_duplicate_object() Denton Liu
2019-12-04 22:03                           ` [PATCH v6 3/5] t7700: replace egrep with grep Denton Liu
2019-12-04 22:03                           ` [PATCH v6 4/5] t7700: make references to SHA-1 generic Denton Liu
2019-12-04 22:03                           ` [PATCH v6 5/5] t7700: stop losing return codes of git commands Denton Liu
2019-12-04 22:07                           ` [PATCH v6 0/5] t: test cleanup stemming from experimentally enabling pipefail Junio C Hamano
2019-11-27 19:53         ` [PATCH v5 23/26] t7700: consolidate code into test_has_duplicate_object() Denton Liu
2019-11-27 19:53         ` [PATCH v5 24/26] t7700: replace egrep with grep Denton Liu
2019-11-27 19:54         ` [PATCH v5 25/26] t7700: make references to SHA-1 generic Denton Liu
2019-11-27 19:54         ` [PATCH v5 26/26] t7700: stop losing return codes of git commands Denton Liu
2019-11-30 10:48           ` Danh Doan
2019-11-30 11:31             ` Eric Sunshine
2019-11-30 17:00               ` Junio C Hamano
2019-12-04 12:59                 ` t: remove inappropriate uses of test_must_fail(), was " Denton Liu

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=20210114233515.31298-7-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=liu.denton@gmail.com \
    --cc=peff@peff.net \
    --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.
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).