37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
|
import thread
|
||
|
import synchronize
|
||
|
import unittest
|
||
|
import test.test_support
|
||
|
from java.lang import Runnable, Thread
|
||
|
from java.util.concurrent import CountDownLatch
|
||
|
|
||
|
class AllocateLockTest(unittest.TestCase):
|
||
|
|
||
|
def test_lock_type(self):
|
||
|
"thread.LockType should exist"
|
||
|
t = thread.LockType
|
||
|
self.assertEquals(t, type(thread.allocate_lock()),
|
||
|
"thread.LockType has wrong value")
|
||
|
|
||
|
class SynchronizeTest(unittest.TestCase):
|
||
|
def test_make_synchronized(self):
|
||
|
doneSignal = CountDownLatch(10)
|
||
|
class SynchedRunnable(Runnable):
|
||
|
i = 0
|
||
|
def run(self):
|
||
|
self.i += 1
|
||
|
doneSignal.countDown()
|
||
|
run = synchronize.make_synchronized(run)
|
||
|
runner = SynchedRunnable()
|
||
|
for _ in xrange(10):
|
||
|
Thread(runner).start()
|
||
|
doneSignal.await()
|
||
|
self.assertEquals(10, runner.i)
|
||
|
|
||
|
|
||
|
def test_main():
|
||
|
test.test_support.run_unittest(AllocateLockTest, SynchronizeTest)
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
test_main()
|