Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(774)

Unified Diff: tests/gclient_scm_test.py

Issue 2410853002: Revert of gclient: kill git fetch operation that hangs. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gclient_utils.py ('k') | tests/gclient_utils_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/gclient_scm_test.py
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index f3d1b366c4afcfec62315b96d75d53684d359a73..00592244c90ab633a05752319e5e4569aacdf28d 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -16,7 +16,6 @@
import re
import sys
import tempfile
-import threading
import unittest
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
@@ -970,67 +969,6 @@
self.checkstdout('________ unmanaged solution; skipping .\n')
-class GitHungTest(BaseGitWrapperTestCase):
- def setUp(self):
- super(GitHungTest, self).setUp()
- self.old = gclient_scm.gclient_utils.CheckCallAndFilter
- self.old2 = gclient_scm.gclient_utils.subprocess2.Popen
- self.options = self.Options()
- self.options.verbose = False
- self.scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir,
- relpath=self.relpath)
- os.environ['GCLIENT_KILL_GIT_FETCH_AFTER'] = '1.0'
-
- def tearDown(self):
- os.environ.pop('GCLIENT_KILL_GIT_FETCH_AFTER')
- gclient_scm.gclient_utils.CheckCallAndFilter = self.old
- gclient_scm.gclient_utils.subprocess2.Popen = self.old2
- super(GitHungTest, self).tearDown()
-
- def testGitFetchOk(self):
- def subprocess_git_fetch_run(_, filter_fn, kill_timeout, **__):
- self.assertEqual(kill_timeout, 1.0)
- filter_fn('remote: something')
- gclient_scm.gclient_utils.CheckCallAndFilter = subprocess_git_fetch_run
- self.scm._Fetch(self.options)
- self.checkstdout('remote: something\n')
-
- def testGitFetchHungAndRetry(self):
- class Process(object):
- # First process will hang, second process will exit with 0 quickly.
- cv = threading.Condition()
- count = -1
- killed = []
- def __init__(self):
- self.count += 1
- self.stdout = self
- self.data = list('retry' if self.count > 0 else 'hung')
- self.data.reverse()
- self.this_killed = False
- def read(self, _):
- if self.data:
- return self.data.pop()
- if self.count == 0:
- # Simulate hung process.
- with self.cv:
- self.cv.wait(timeout=0)
- return ''
- def kill(self):
- self.this_killed = True
- self.killed.append(self.count)
- with self.cv:
- self.cv.notify()
- def wait(self):
- if self.this_killed:
- return 1
- return 0
-
- gclient_scm.gclient_utils.subprocess2.Popen = lambda *_, **__: Process()
- self.scm._Capture = lambda *_, **__: None
- self.scm._Fetch(self.options)
- self.checkstdout('hung\n')
-
-
if __name__ == '__main__':
level = logging.DEBUG if '-v' in sys.argv else logging.FATAL
logging.basicConfig(
« no previous file with comments | « gclient_utils.py ('k') | tests/gclient_utils_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698