tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
X\¬Qc@sDdZddlZddlZddlZddlZddlmZdZyeWn'ek
r}de    fd„ƒYZnXddl
Z
ddl m Z m Z mZmZmZmZmZer ddlmZejd    d
krúdd lmZq 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__(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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„Z RS(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_flagstdbtypet dbopenflags(tself((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pytsetUp&s 
     cCs.|jjƒ|jjƒtj|jƒdS(N(RtcloseRRtrmtreeR(R"((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyttearDown5s  cCsdS(N((R"((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR:scCstj|gdƒS(Ni(tDASHtjoin(R"tkey((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pytmakeData=s( RRRt
DB_UNKNOWNR R!RRR#R&RR*(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR s                tConcurrentDataStoreBasecBsUeZejZejejBejBZdZdZ    dZ
d„Z d„Z d„Z RS(iièc    CsTtr%dGddGHd|jjGHnt|jƒ}ddl}|j|ƒ|j|j}|j|j}|j    |j|j|ƒ|j    |j|j|ƒ|j
||dkƒg}x{t |jƒD]j}t d|j d|j|fd    d
|ƒ}tjdd kr"|jtƒn    t|_|j|ƒqÎWg}xŽt |jƒD]}}|||||d !}    |    jƒ|||||d !}
t d|jd|j|    |
fd    d |ƒ} |j| ƒqRWxD|D]<} tjdd kr| jtƒn    t| _| jƒqÚWx|D]} | jƒq!Wx|D]} | jƒq<WdS(Ns
s-=is(Running %s.test01_1WriterMultiReaders...iÿÿÿÿittargettargstnames    reader %diis    writer %d(RRRtrangetrecordsRtshuffletwriterstreaderst assertEqualt
assertTruetxrangeR t readerThreadRRt version_infot    setDaemontTruetdaemontappendtsortt writerThreadtstartR(( R"tkeysRtrecords_per_writertreaders_per_writerR4txtrtR3tatbtwttt((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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%04dt max_retriesi ids%s: records %d - %d finishedis%s: finished creating recordss%s: thread finished(RR9R tgetNameR/RR@tstoptlenRt DeadlockWraptputR*tpop(    R"RRAR4R/tcounttcount2RDR)((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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
ƒ}qeWt rÂd||fGHn|j ƒq>Wt râd|GHndS(Niiiis%s: found %d recordss%s: thread finished( RR9R RLR/R7tcursortfirstR5R*tnextRR$(
R"Rt    readerNumR/titcRRtrecR)tdata((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR8šs"       
 (RRRt    DB_THREADR!t DB_INIT_CDBt DB_INIT_MPOOLRR4R3R1RJR?R8(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR,Ds        2    tBTreeConcurrentDataStorecBs#eZejZdZdZdZRS(ii
iè(RRRtDB_BTREER R3R4R1(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR_±s    tHashConcurrentDataStorecBs#eZejZdZdZdZRS(ii
iè(RRRtDB_HASHR R3R4R1(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyRa¸s    tSimpleThreadedBasecBs^eZejZejejBejBZdZdZ    dZ
d„Z d„Z d„Z d„ZRS(i
iiècCs|jjtjƒdS(N(Rt set_lk_detectRtDB_LOCK_DEFAULT(R"((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyRÈsc    CsTtr%dGddGHd|jjGHnt|jƒ}ddl}|j|ƒ|j|j}|j|j}|j    |j|j|ƒ|j    |j|j|ƒ|j
||dkƒg}x{t |jƒD]j}t d|j d|j|fd    d
|ƒ}tjdd kr"|jtƒn    t|_|j|ƒqÎWg}xŽt |jƒD]}}|||||d !}    |    jƒ|||||d !}
t d|jd|j|    |
fd    d |ƒ} |j| ƒqRWxD|D]<} tjdd kr| jtƒn    t| _| jƒqÚWx|D]} | jƒq!Wx|D]} | jƒq<WdS(Ns
s-=is Running %s.test02_SimpleLocks...iÿÿÿÿiR-R.R/s    reader %diis    writer %d(RRRR0R1RR2R3R4R5R6R7R R8RRR9R:R;R<R=R>R?R@R(( R"RARRBRCR4RDRER3RFRGRHRI((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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%04dRKi ids%s: records %d - %d finishedis%s: thread finished(RR9R RLR/RR@RMRNRRORPR*RQ(    R"RRAR4R/RRRSRDR)((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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|j ddƒ}q^Wt rÇd||fGHn|j ƒt rãd|GHndS(NiiRKi
is%s: found %d recordss%s: thread finished(RR9R RLR/RTRRORUR5R*RVRR$(    R"RRWR/RYRRRZR)R[((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR8s       
 
(RRRR\R!R^t DB_INIT_LOCKRR4R3R1RRfR?R8(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyRcÁs            2    tBTreeSimpleThreadedcBseZejZRS((RRRR`R (((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyRh-stHashSimpleThreadedcBseZejZRS((RRRRbR (((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyRi1stThreadedTransactionsBasecBs‚eZejejBZejejBejBejBej    BZ
dZ dZ dZ dZd„Zd„Zd„Zd„Zd„ZRS(iiÐcCsdS(N((R"((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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
||dkƒg}x{t |jƒD]j}t d|j d|j|fd    d
|ƒ}tjdd kr"|jtƒn    t|_|j|ƒqÎWg}x„t |jƒD]s}|||||d !}    |||||d !}
t d|jd|j|    |
fd    d |ƒ} |j| ƒqRWt d|jƒ} tjdd krþ| jtƒn    t| _| jƒxD|D]<} tjdd krA| jtƒn    t| _| jƒqWx|D]} | jƒq_Wx|D]} | jƒqzWt|_| jƒdS(Ns
s-=is)Running %s.test03_ThreadedTransactions...iÿÿÿÿiR-R.R/s    reader %diis    writer %d(RRRR0R1RR2R3R4R5R6R7R R8RRR9R:R;R<R=R?tdeadlockThreadR@R(tFalset doLockDetect(R"RARRBRCR4RDRER3RFRGRHtdtRI((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyttest03_ThreadedTransactionsIsZ             
           c CsŒ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 rdtjd krKd||
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(RR9R RLR/RNRt    txn_begintNonettxnFlagRPR*RR@tcommitRQRtDBLockDeadlockErrortDBLockNotGrantedErrorR.tabort( R"RRAR4R/RRttxntkeys2RDR)tval((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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(RR9R RLR/RlRRpRqRrRTRUR5R*RVRR$RsR;RRtRuR.Rv( R"RRWR/tfinishedRwRYRRRZR)R[Ry((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR8£s<          
 
 
 
 
cCsxt|_xh|jrstjdƒy7|jjtjtjƒ}t    rX|rXd|GHnWq tj
k
roq Xq WdS(Ngš™™™™™©?s.deadlock: Aborted %d deadlocked transaction(s)( R;RmttimetsleepRt lock_detectRtDB_LOCK_RANDOMtDB_LOCK_CONFLICTRtDBError(R"taborted((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyRkÆs            (RRRR\tDB_AUTO_COMMITR!R^Rgt DB_INIT_LOGt DB_INIT_TXNRR4R3R1RrRRoR?R8Rk(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyRj8s
        ;        #tBTreeThreadedTransactionscBs#eZejZdZdZdZRS(ii
iè(RRRR`R R3R4R1(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR…Ôs    tHashThreadedTransactionscBs#eZejZdZdZdZRS(ii
iè(RRRRbR R3R4R1(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR†Ús    tBTreeThreadedNoWaitTransactionscBs,eZejZdZdZdZejZ    RS(ii
iè(
RRRR`R R3R4R1t DB_TXN_NOWAITRr(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyR‡às
    tHashThreadedNoWaitTransactionscBs,eZejZdZdZdZejZ    RS(ii
iè(
RRRRbR R3R4R1RˆRr(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/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_RaRhRiR…R†R‡R‰(tsuite((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyt
test_suiteñs t__main__t defaultTestR((t__doc__tosRR{terrnoRR'Rt    NameErrort    ExceptionRŠttest_allRRRRR    R
R t    threadingR R9R RtTestCaseRR,R_RaRcRhRiRjR…R†R‡R‰RRtmain(((s^/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/bsddb/test/test_thread.pyt<module>s@      4$m    lœ