Mercurial > hg
comparison tests/test-lock.py @ 26385:fb1a424e8bff
test-lock.py: allow PID to be changed in test state
This will be used in upcoming patches to create locks that appear as if they're
being created by child processes.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Thu, 24 Sep 2015 20:40:00 -0700 |
parents | ad6e56d01c30 |
children | 146cccdb282b |
comparison
equal
deleted
inserted
replaced
26384:ad6e56d01c30 | 26385:fb1a424e8bff |
---|---|
20 super(lockwrapper, self).__init__(*args, **kwargs) | 20 super(lockwrapper, self).__init__(*args, **kwargs) |
21 def _getpid(self): | 21 def _getpid(self): |
22 return os.getpid() + self._pidoffset | 22 return os.getpid() + self._pidoffset |
23 | 23 |
24 class teststate(object): | 24 class teststate(object): |
25 def __init__(self, testcase, dir): | 25 def __init__(self, testcase, dir, pidoffset=0): |
26 self._testcase = testcase | 26 self._testcase = testcase |
27 self._acquirecalled = False | 27 self._acquirecalled = False |
28 self._releasecalled = False | 28 self._releasecalled = False |
29 self._postreleasecalled = False | 29 self._postreleasecalled = False |
30 self.vfs = scmutil.vfs(dir, audit=False) | 30 self.vfs = scmutil.vfs(dir, audit=False) |
31 self._pidoffset = pidoffset | |
31 | 32 |
32 def makelock(self, *args, **kwargs): | 33 def makelock(self, *args, **kwargs): |
33 l = lock.lock(self.vfs, testlockname, releasefn=self.releasefn, | 34 l = lockwrapper(self._pidoffset, self.vfs, testlockname, |
34 acquirefn=self.acquirefn, *args, **kwargs) | 35 releasefn=self.releasefn, acquirefn=self.acquirefn, |
36 *args, **kwargs) | |
35 l.postrelease.append(self.postreleasefn) | 37 l.postrelease.append(self.postreleasefn) |
36 return l | 38 return l |
37 | 39 |
38 def acquirefn(self): | 40 def acquirefn(self): |
39 self._acquirecalled = True | 41 self._acquirecalled = True |