Merge branch 'fc/remote-testgit-feature-done'
authorJunio C Hamano <gitster@pobox.com>
Mon, 14 Jan 2013 16:15:46 +0000 (08:15 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 14 Jan 2013 16:15:46 +0000 (08:15 -0800)
In the longer term, tightening rules is a good thing to do, and
because nobody who has worked in the remote helper area seems to be
interested in reviewing this, I would assume they do not think
such a retroactive tightening will affect their remote helpers. So
let's advance this topic to see what happens.

* fc/remote-testgit-feature-done:
remote-testgit: properly check for errors

git-remote-testpy.py
t/t5800-remote-testpy.sh
index e4533b187d024fa5f044ecbbca8c05455a6662e2..d94a66a87094436efcb6cf8dd0171b0683f0376c 100644 (file)
@@ -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)
 
index 6750961507bbfa1733785bb0b15e1e79ac8dd66e..1e683d42203c4a7077481c1ffc262a493612d4bf 100755 (executable)
@@ -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