[Zope3-checkins] CVS: Zope3/src/zodb/zeo/tests - threadtests.py:1.3

Jeremy Hylton jeremy@zope.com
Mon, 27 Jan 2003 15:09:37 -0500


Update of /cvs-repository/Zope3/src/zodb/zeo/tests
In directory cvs.zope.org:/tmp/cvs-serv29616

Modified Files:
	threadtests.py 
Log Message:
Change checkMTStores to use an explicit thread object.
Reduce the same of the large objects to make the tests go faster.


=== Zope3/src/zodb/zeo/tests/threadtests.py 1.2 => 1.3 ===
--- Zope3/src/zodb/zeo/tests/threadtests.py:1.2	Wed Dec 25 09:12:22 2002
+++ Zope3/src/zodb/zeo/tests/threadtests.py	Mon Jan 27 15:09:35 2003
@@ -89,6 +89,21 @@
         except Disconnected:
             self.gotDisconnected = 1
 
+class MTStoresThread(threading.Thread):
+
+    def __init__(self, dostore):
+        threading.Thread.__init__(self)
+        self._dostore = dostore
+        self.done = threading.Event()
+
+    def run(self):
+        objs = []
+        for i in range(10):
+            objs.append(MinPO("X" * 20000))
+            objs.append(MinPO("X"))
+        for obj in objs:
+            self._dostore(data=obj)
+        self.done.set()
 
 class ThreadTests:
     # Thread 1 should start a transaction, but not get all the way through it.
@@ -150,11 +165,12 @@
     def checkMTStores(self):
         threads = []
         for i in range(5):
-            t = threading.Thread(target=self.mtstorehelper)
+            t = MTStoresThread(self._dostore)
             threads.append(t)
             t.start()
         for t in threads:
-            t.join(30)
+            t.done.wait()
+            t.join(5)
         for i in threads:
             self.failUnless(not t.isAlive())