diff options
-rw-r--r-- | git-remote-testgit.py | 8 | ||||
-rwxr-xr-x | t/t5800-remote-helpers.sh | 21 |
2 files changed, 29 insertions, 0 deletions
diff --git a/git-remote-testgit.py b/git-remote-testgit.py index 5f3ebd244d..b8707e6cc4 100644 --- a/git-remote-testgit.py +++ b/git-remote-testgit.py @@ -159,6 +159,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) @@ -172,6 +177,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-helpers.sh b/t/t5800-remote-helpers.sh index e7dc668cef..446cc8e017 100755 --- a/t/t5800-remote-helpers.sh +++ b/t/t5800-remote-helpers.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 |