summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git-remote-testpy.py8
-rwxr-xr-xt/t5800-remote-testpy.sh21
2 files changed, 29 insertions, 0 deletions
diff --git a/git-remote-testpy.py b/git-remote-testpy.py
index e4533b187d..d94a66a870 100644
--- a/git-remote-testpy.py
+++ b/git-remote-testpy.py
@@ -164,6 +164,11 @@ def do_import(repo, args):
ref = line[7:].strip()
refs.append(ref)
+ print "feature done"
+
+ if os.environ.get("GIT_REMOTE_TESTGIT_FAILURE"):
+ die('Told to fail')
+
repo = update_local_repo(repo)
repo.exporter.export_repo(repo.gitdir, refs)
@@ -177,6 +182,9 @@ def do_export(repo, args):
if not repo.gitdir:
die("Need gitdir to export")
+ if os.environ.get("GIT_REMOTE_TESTGIT_FAILURE"):
+ die('Told to fail')
+
update_local_repo(repo)
changed = repo.importer.do_import(repo.gitdir)
diff --git a/t/t5800-remote-testpy.sh b/t/t5800-remote-testpy.sh
index 6750961507..1e683d4220 100755
--- a/t/t5800-remote-testpy.sh
+++ b/t/t5800-remote-testpy.sh
@@ -145,4 +145,25 @@ test_expect_failure 'push new branch with old:new refspec' '
compare_refs clone HEAD server refs/heads/new-refspec
'
+test_expect_success 'proper failure checks for fetching' '
+ (GIT_REMOTE_TESTGIT_FAILURE=1 &&
+ export GIT_REMOTE_TESTGIT_FAILURE &&
+ cd localclone &&
+ test_must_fail git fetch 2>&1 | \
+ grep "Error while running fast-import"
+ )
+'
+
+# We sleep to give fast-export a chance to catch the SIGPIPE
+test_expect_failure 'proper failure checks for pushing' '
+ (GIT_REMOTE_TESTGIT_FAILURE=1 &&
+ export GIT_REMOTE_TESTGIT_FAILURE &&
+ GIT_REMOTE_TESTGIT_SLEEPY=1 &&
+ export GIT_REMOTE_TESTGIT_SLEEPY &&
+ cd localclone &&
+ test_must_fail git push --all 2>&1 | \
+ grep "Error while running fast-export"
+ )
+'
+
test_done