This way the test reliably succeeds (in catching the failure). Not sure what's the proper way to do this, but here it is for the record. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- git-remote-testgit | 1 + t/t5801-remote-helpers.sh | 2 +- transport-helper.c | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/git-remote-testgit b/git-remote-testgit index ca0cf09..6ae1b7f 100755 --- a/git-remote-testgit +++ b/git-remote-testgit @@ -75,6 +75,7 @@ do export) if test -n "$GIT_REMOTE_TESTGIT_FAILURE" then + sleep 1 # don't let fast-export get SIGPIPE exit -1 fi diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh index efe67e2..d6702b4 100755 --- a/t/t5801-remote-helpers.sh +++ b/t/t5801-remote-helpers.sh @@ -176,7 +176,7 @@ test_expect_success 'proper failure checks for fetching' ' ' # We sleep to give fast-export a chance to catch the SIGPIPE -test_expect_failure 'proper failure checks for pushing' ' +test_expect_success 'proper failure checks for pushing' ' (GIT_REMOTE_TESTGIT_FAILURE=1 && export GIT_REMOTE_TESTGIT_FAILURE && cd local && diff --git a/transport-helper.c b/transport-helper.c index dfdfa7a..f0d28aa 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -823,6 +823,9 @@ static int push_refs_with_export(struct transport *transport, if (finish_command(&exporter)) die("Error while running fast-export"); + if (getenv("GIT_REMOTE_TESTGIT_FAILURE")) + sleep(2); + if (!check_command(data->helper)) die("Error while running helper"); -- 1.8.2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html