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