diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-04-29 17:51:23 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-04-29 17:51:24 -0700 |
commit | f61977ff8d1a420573e99a8a88df479c37f70162 (patch) | |
tree | f5430bb986d0b7744dbd8f5dbd4fc592ac041b89 | |
parent | 9e234af281107d44116ecf31eef65de145c46d15 (diff) | |
parent | 7fb8e163bdfdc5ffb69b98f3f05ef0dbade4e677 (diff) | |
download | git-f61977ff8d1a420573e99a8a88df479c37f70162.tar.gz git-f61977ff8d1a420573e99a8a88df479c37f70162.tar.xz |
Merge branch 'pw/t5800-import-race-fix'
Longstanding bug in a test scaffolding that occasionally made t5800
hang was fixed.
By Pete Wyckoff
* pw/t5800-import-race-fix:
git-remote-testgit: fix race when spawning fast-import
-rw-r--r-- | git-remote-testgit.py | 7 | ||||
-rwxr-xr-x | t/t5800-remote-helpers.sh | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/git-remote-testgit.py b/git-remote-testgit.py index 3dc4851cf..5f3ebd244 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 1c62001fc..570233451 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) |