[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 ----