summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-05-07 20:13:55 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-05-07 20:13:56 (GMT)
commit1d9fd6683c44b6e5f9f9990981de70c2a9f83433 (patch)
tree75ac6c163cfee80afe25af01b3e643721d233c27
parenta28b919f05ed29cd9e6615179bd56edde50c6b63 (diff)
parent7fb8e163bdfdc5ffb69b98f3f05ef0dbade4e677 (diff)
downloadgit-1d9fd6683c44b6e5f9f9990981de70c2a9f83433.zip
git-1d9fd6683c44b6e5f9f9990981de70c2a9f83433.tar.gz
git-1d9fd6683c44b6e5f9f9990981de70c2a9f83433.tar.bz2
Merge branch 'pw/t5800-import-race-fix' into maint
The test scaffolding for fast-import was flaky. By Pete Wyckoff * pw/t5800-import-race-fix: git-remote-testgit: fix race when spawning fast-import
-rw-r--r--git-remote-testgit.py7
-rwxr-xr-xt/t5800-remote-helpers.sh13
2 files changed, 20 insertions, 0 deletions
diff --git a/git-remote-testgit.py b/git-remote-testgit.py
index 3dc4851..5f3ebd2 100644
--- a/git-remote-testgit.py
+++ b/git-remote-testgit.py
@@ -22,6 +22,7 @@ except ImportError:
_digest = sha.new
import sys
import os
+import time
sys.path.insert(0, os.getenv("GITPYTHONLIB","."))
from git_remote_helpers.util import die, debug, warn
@@ -204,6 +205,11 @@ def read_one_line(repo):
"""Reads and processes one command.
"""
+ sleepy = os.environ.get("GIT_REMOTE_TESTGIT_SLEEPY")
+ if sleepy:
+ debug("Sleeping %d sec before readline" % int(sleepy))
+ time.sleep(int(sleepy))
+
line = sys.stdin.readline()
cmdline = line
@@ -258,6 +264,7 @@ def main(args):
more = True
+ sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0)
while (more):
more = read_one_line(repo)
diff --git a/t/t5800-remote-helpers.sh b/t/t5800-remote-helpers.sh
index 1c62001..5702334 100755
--- a/t/t5800-remote-helpers.sh
+++ b/t/t5800-remote-helpers.sh
@@ -72,6 +72,19 @@ test_expect_success 'pushing to local repo' '
compare_refs localclone HEAD server HEAD
'
+# Generally, skip this test. It demonstrates a now-fixed race in
+# git-remote-testgit, but is too slow to leave in for general use.
+: test_expect_success 'racily pushing to local repo' '
+ test_when_finished "rm -rf server2 localclone2" &&
+ cp -a server server2 &&
+ git clone "testgit::${PWD}/server2" localclone2 &&
+ (cd localclone2 &&
+ echo content >>file &&
+ git commit -a -m three &&
+ GIT_REMOTE_TESTGIT_SLEEPY=2 git push) &&
+ compare_refs localclone2 HEAD server2 HEAD
+'
+
test_expect_success 'synch with changes from localclone' '
(cd clone &&
git pull)