[Python-checkins] python/dist/src/Lib/bsddb/test test_thread.py,1.3,1.4

bwarsaw@users.sourceforge.net bwarsaw@users.sourceforge.net
2003年1月10日 11:03:32 -0800


Update of /cvsroot/python/python/dist/src/Lib/bsddb/test
In directory sc8-pr-cvs1:/tmp/cvs-serv6333
Modified Files:
	test_thread.py 
Log Message:
Cleanups, and conversion of assert to assertEqual()
Index: test_thread.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/bsddb/test/test_thread.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** test_thread.py	30 Dec 2002 20:52:08 -0000	1.3
--- test_thread.py	10 Jan 2003 19:03:29 -0000	1.4
***************
*** 1,22 ****
! """
! TestCases for multi-threaded access to a DB.
 """
 
! import sys, os, string
! import tempfile
 import time
 from pprint import pprint
 from whrandom import random
 
 try:
 from threading import Thread, currentThread
! have_threads = 1
 except ImportError:
! have_threads = 0
! 
 
 import unittest
 from test_all import verbose
- 
 from bsddb import db, dbutils
 
--- 1,30 ----
! """TestCases for multi-threaded access to a DB.
 """
 
! import os
! import sys
 import time
+ import errno
+ import shutil
+ import tempfile
 from pprint import pprint
 from whrandom import random
 
 try:
+ True, False
+ except NameError:
+ True = 1
+ False = 0
+ 
+ DASH = '-'
+ 
+ try:
 from threading import Thread, currentThread
! have_threads = True
 except ImportError:
! have_threads = False
 
 import unittest
 from test_all import verbose
 from bsddb import db, dbutils
 
***************
*** 29,33 ****
 envflags = 0
 
- 
 def setUp(self):
 if verbose:
--- 37,40 ----
***************
*** 36,41 ****
 homeDir = os.path.join(os.path.dirname(sys.argv[0]), 'db_home')
 self.homeDir = homeDir
! try: os.mkdir(homeDir)
! except os.error: pass
 self.env = db.DBEnv()
 self.setEnvOpts()
--- 43,50 ----
 homeDir = os.path.join(os.path.dirname(sys.argv[0]), 'db_home')
 self.homeDir = homeDir
! try:
! os.mkdir(homeDir)
! except OSError, e:
! if e.errno <> errno.EEXIST: raise
 self.env = db.DBEnv()
 self.setEnvOpts()
***************
*** 48,67 ****
 self.d.open(self.filename, self.dbtype, self.dbopenflags|db.DB_CREATE)
 
- 
 def tearDown(self):
 self.d.close()
 self.env.close()
! import glob
! files = glob.glob(os.path.join(self.homeDir, '*'))
! for file in files:
! os.remove(file)
! 
 
 def setEnvOpts(self):
 pass
 
- 
 def makeData(self, key):
! return string.join([key] * 5, '-')
 
 
--- 57,70 ----
 self.d.open(self.filename, self.dbtype, self.dbopenflags|db.DB_CREATE)
 
 def tearDown(self):
 self.d.close()
 self.env.close()
! shutil.rmtree(self.homeDir)
 
 def setEnvOpts(self):
 pass
 
 def makeData(self, key):
! return DASH.join([key] * 5)
 
 
***************
*** 76,80 ****
 records = 1000
 
- 
 def test01_1WriterMultiReaders(self):
 if verbose:
--- 79,82 ----
***************
*** 103,111 ****
 t.join()
 
- 
 def writerThread(self, d, howMany, writerNum):
 #time.sleep(0.01 * writerNum + 0.01)
 name = currentThread().getName()
! start, stop = howMany * writerNum, howMany * (writerNum + 1) - 1
 if verbose:
 print "%s: creating records %d - %d" % (name, start, stop)
--- 105,113 ----
 t.join()
 
 def writerThread(self, d, howMany, writerNum):
 #time.sleep(0.01 * writerNum + 0.01)
 name = currentThread().getName()
! start = howMany * writerNum
! stop = howMany * (writerNum + 1) - 1
 if verbose:
 print "%s: creating records %d - %d" % (name, start, stop)
***************
*** 118,122 ****
 print "%s: records %d - %d finished" % (name, start, x)
 
! if verbose: print "%s: finished creating records" % name
 
 ## # Each write-cursor will be exclusive, the only one that can update the DB...
--- 120,125 ----
 print "%s: records %d - %d finished" % (name, start, x)
 
! if verbose:
! print "%s: finished creating records" % name
 
 ## # Each write-cursor will be exclusive, the only one that can update the DB...
***************
*** 131,136 ****
 
 ## c.close()
! if verbose: print "%s: thread finished" % name
! 
 
 def readerThread(self, d, readerNum):
--- 134,139 ----
 
 ## c.close()
! if verbose:
! print "%s: thread finished" % name
 
 def readerThread(self, d, readerNum):
***************
*** 143,156 ****
 rec = c.first()
 while rec:
! count = count + 1
 key, data = rec
! assert self.makeData(key) == data
 rec = c.next()
! if verbose: print "%s: found %d records" % (name, count)
 c.close()
 time.sleep(0.05)
 
! if verbose: print "%s: thread finished" % name
! 
 
 
--- 146,160 ----
 rec = c.first()
 while rec:
! count += 1
 key, data = rec
! self.assertEqual(self.makeData(key), data)
 rec = c.next()
! if verbose:
! print "%s: found %d records" % (name, count)
 c.close()
 time.sleep(0.05)
 
! if verbose:
! print "%s: thread finished" % name
 
 
***************
*** 168,171 ****
--- 172,176 ----
 records = 1000
 
+ 
 #----------------------------------------------------------------------
 
***************
*** 177,185 ****
 records = 1000
 
- 
 def setEnvOpts(self):
 self.env.set_lk_detect(db.DB_LOCK_DEFAULT)
 
- 
 def test02_SimpleLocks(self):
 if verbose:
--- 182,188 ----
***************
*** 206,214 ****
 t.join()
 
- 
- 
 def writerThread(self, d, howMany, writerNum):
 name = currentThread().getName()
! start, stop = howMany * writerNum, howMany * (writerNum + 1) - 1
 if verbose:
 print "%s: creating records %d - %d" % (name, start, stop)
--- 209,216 ----
 t.join()
 
 def writerThread(self, d, howMany, writerNum):
 name = currentThread().getName()
! start = howMany * writerNum
! stop = howMany * (writerNum + 1) - 1
 if verbose:
 print "%s: creating records %d - %d" % (name, start, stop)
***************
*** 228,232 ****
 key = '%04d' % x
 data = dbutils.DeadlockWrap(d.get, key, max_retries=12)
! assert data == self.makeData(key)
 
 # flush them
--- 230,234 ----
 key = '%04d' % x
 data = dbutils.DeadlockWrap(d.get, key, max_retries=12)
! self.assertEqual(data, self.makeData(key))
 
 # flush them
***************
*** 243,247 ****
 if verbose and x % 100 == 0:
 print "%s: fetched record (%s, %s)" % (name, key, data)
! assert data == self.makeData(key), (key, data, self.makeData(key))
 if random() <= 0.10:
 dbutils.DeadlockWrap(d.delete, key, max_retries=12)
--- 245,249 ----
 if verbose and x % 100 == 0:
 print "%s: fetched record (%s, %s)" % (name, key, data)
! self.assertEqual(data, self.makeData(key))
 if random() <= 0.10:
 dbutils.DeadlockWrap(d.delete, key, max_retries=12)
***************
*** 249,254 ****
 print "%s: deleted record %s" % (name, key)
 
! if verbose: print "%s: thread finished" % name
! 
 
 def readerThread(self, d, readerNum):
--- 251,256 ----
 print "%s: deleted record %s" % (name, key)
 
! if verbose:
! print "%s: thread finished" % name
 
 def readerThread(self, d, readerNum):
***************
*** 261,275 ****
 rec = c.first()
 while rec:
! count = count + 1
 key, data = rec
! assert self.makeData(key) == data
 rec = c.next()
! if verbose: print "%s: found %d records" % (name, count)
 c.close()
 time.sleep(0.05)
 
! if verbose: print "%s: thread finished" % name
! 
! 
 
 
--- 263,277 ----
 rec = c.first()
 while rec:
! count += 1
 key, data = rec
! self.assertEqual(self.makeData(key), data)
 rec = c.next()
! if verbose:
! print "%s: found %d records" % (name, count)
 c.close()
 time.sleep(0.05)
 
! if verbose:
! print "%s: thread finished" % name
 
 
***************
*** 285,289 ****
 
 
- 
 class ThreadedTransactionsBase(BaseThreadedTestCase):
 dbopenflags = db.DB_THREAD | db.DB_AUTO_COMMIT
--- 287,290 ----
***************
*** 297,309 ****
 writers = 0
 records = 2000
- 
 txnFlag = 0
 
- 
 def setEnvOpts(self):
 #self.env.set_lk_detect(db.DB_LOCK_DEFAULT)
 pass
 
- 
 def test03_ThreadedTransactions(self):
 if verbose:
--- 298,307 ----
***************
*** 335,344 ****
 t.join()
 
! self.doLockDetect = 0
 dt.join()
 
- 
 def doWrite(self, d, name, start, stop):
! finished = 0
 while not finished:
 try:
--- 333,341 ----
 t.join()
 
! self.doLockDetect = False
 dt.join()
 
 def doWrite(self, d, name, start, stop):
! finished = False
 while not finished:
 try:
***************
*** 350,354 ****
 print "%s: records %d - %d finished" % (name, start, x)
 txn.commit()
! finished = 1
 except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
 if verbose:
--- 347,351 ----
 print "%s: records %d - %d finished" % (name, start, x)
 txn.commit()
! finished = True
 except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
 if verbose:
***************
*** 357,365 ****
 time.sleep(0.05)
 
- 
- 
 def writerThread(self, d, howMany, writerNum):
 name = currentThread().getName()
! start, stop = howMany * writerNum, howMany * (writerNum + 1) - 1
 if verbose:
 print "%s: creating records %d - %d" % (name, start, stop)
--- 354,361 ----
 time.sleep(0.05)
 
 def writerThread(self, d, howMany, writerNum):
 name = currentThread().getName()
! start = howMany * writerNum
! stop = howMany * (writerNum + 1) - 1
 if verbose:
 print "%s: creating records %d - %d" % (name, start, stop)
***************
*** 369,376 ****
 self.doWrite(d, name, x, min(stop, x+step))
 
! if verbose: print "%s: finished creating records" % name
! if verbose: print "%s: deleting a few records" % name
 
! finished = 0
 while not finished:
 try:
--- 365,374 ----
 self.doWrite(d, name, x, min(stop, x+step))
 
! if verbose:
! print "%s: finished creating records" % name
! if verbose:
! print "%s: deleting a few records" % name
 
! finished = False
 while not finished:
 try:
***************
*** 385,390 ****
 recs.append(key)
 txn.commit()
! finished = 1
! if verbose: print "%s: deleted records %s" % (name, recs)
 except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
 if verbose:
--- 383,389 ----
 recs.append(key)
 txn.commit()
! finished = True
! if verbose:
! print "%s: deleted records %s" % (name, recs)
 except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
 if verbose:
***************
*** 393,398 ****
 time.sleep(0.05)
 
! if verbose: print "%s: thread finished" % name
! 
 
 def readerThread(self, d, readerNum):
--- 392,397 ----
 time.sleep(0.05)
 
! if verbose:
! print "%s: thread finished" % name
 
 def readerThread(self, d, readerNum):
***************
*** 401,405 ****
 
 for loop in range(5):
! finished = 0
 while not finished:
 try:
--- 400,404 ----
 
 for loop in range(5):
! finished = False
 while not finished:
 try:
***************
*** 409,420 ****
 rec = c.first()
 while rec:
! count = count + 1
 key, data = rec
! assert self.makeData(key) == data
 rec = c.next()
 if verbose: print "%s: found %d records" % (name, count)
 c.close()
 txn.commit()
! finished = 1
 except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
 if verbose:
--- 408,419 ----
 rec = c.first()
 while rec:
! count += 1
 key, data = rec
! self.assertEqual(self.makeData(key), data)
 rec = c.next()
 if verbose: print "%s: found %d records" % (name, count)
 c.close()
 txn.commit()
! finished = True
 except (db.DBLockDeadlockError, db.DBLockNotGrantedError), val:
 if verbose:
***************
*** 426,434 ****
 time.sleep(0.05)
 
! if verbose: print "%s: thread finished" % name
! 
 
 def deadlockThread(self):
! self.doLockDetect = 1
 while self.doLockDetect:
 time.sleep(0.5)
--- 425,433 ----
 time.sleep(0.05)
 
! if verbose:
! print "%s: thread finished" % name
 
 def deadlockThread(self):
! self.doLockDetect = True
 while self.doLockDetect:
 time.sleep(0.5)
***************
*** 441,445 ****
 except db.DBError:
 pass
- 
 
 
--- 440,443 ----

AltStyle によって変換されたページ (->オリジナル) /