%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_replication.pyo

ó
Oêáac@sÉdZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
dejfd„ƒYZdefd„ƒYZ
defd	„ƒYZd
„ZedkrÅejdd
ƒndS(s(TestCases for distributed transactions.
iÿÿÿÿN(tdbttest_supportthave_threadstverbosetget_new_environment_pathtget_new_database_patht
DBReplicationcBseZd„Zd„ZRS(cs2tƒˆ_tƒˆ_tjƒˆ_tjƒˆ_ˆjjˆjtjtj	Btj
BtjBtjBtj
BtjBtjBdƒˆjjˆjtjtj	Btj
BtjBtjBtj
BtjBtjBdƒtˆ_ˆ_‡fd†}‡fd†}ˆjj|ƒˆjj|ƒdˆ_ˆ_dS(Ni¶cs|tjkrtˆ_ndS(N(RtDB_EVENT_REP_MASTERtTruetconfirmed_master(tatbtc(tself(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR	!scs|tjkrtˆ_ndS(N(RtDB_EVENT_REP_STARTUPDONERtclient_startupdone(R
RR(R
(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR%s(Rt
homeDirMastert
homeDirClientRtDBEnvtdbenvMastertdbenvClienttopent	DB_CREATEtDB_INIT_TXNtDB_INIT_LOGt
DB_INIT_MPOOLtDB_INIT_LOCKtDB_INIT_REPt
DB_RECOVERt	DB_THREADtFalseR	Rtset_event_notifytNonetdbMastertdbClient(R
R	R((R
s7/usr/local/lib/python2.7/bsddb/test/test_replication.pytsetUps>>cCs™|jr|jjƒn|jr2|jjƒnd„}|jj|ƒ|jj|ƒ|jjƒ|jjƒtj|jƒtj|j	ƒdS(NcWsdS(N((targs((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pytdummy=s(
R"tcloseR!RRRRtrmtreeRR(R
R%((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyttearDown4s			

(t__name__t
__module__R#R((((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyRs	%tDBReplicationManagercBseZd„ZRS(c	Cstjƒ}tjƒ}tjƒdkr#|jjd|ƒ|_|jjtjt	ƒ|jjtj
t	ƒ|jjd|ƒ|_|jjd|ƒ|_
|j
jtjt	ƒ|jjd|ƒ|_|jjtj
t	ƒittt	tgtj6t	tttgtj6ttttgtj6t	ttt	gtj
6ttttgtj6}x‡|jƒD]y\}}xjt|j|j|j
|jg|ƒD]A\}}|rÂ|j|j|ƒƒq—|j|j|ƒƒq—WqcW|j|jjƒ|jjƒƒ|j|j
jƒ|jjƒƒxct|j|j|j
|jg||||gƒD].\}}|jƒ}|j|d|fƒqXWxH|j|jgD]4}|j|jƒ|jj|jƒƒjƒƒqWx·|j
|jgD]4}|j|jƒ|jj|jƒƒjƒƒqèWnl|jjd|ƒ|jjd|ƒ|jjd|ƒ|jjd|ƒ|jjdƒ|jjdƒ|jj dƒ|jj dƒ|jj!tj"dƒ|jj!tj"dƒ|j|jj#tj"ƒdƒ|j|jj#tj"ƒdƒ|jj!tj$dƒ|jj!tj$d	ƒ|j|jj#tj$ƒdƒ|j|jj#tj$ƒd	ƒ|jj!tj%d
ƒ|jj!tj%dƒ|j|jj#tj%ƒd
ƒ|j|jj#tj%ƒdƒ|jj&tj'ƒ|jj&tj'ƒ|jj(dtj)ƒ|jj(dtj*ƒ|j|jj+ƒdƒ|j|jj+ƒdƒ|j|jj,ƒdƒ|j|jj,ƒdƒ|j|jj-ƒtj'ƒ|j|jj-ƒtj'ƒd
dl.}	|	j.ƒd}
x6|	j.ƒ|
kr/|j/o|j0r/|	j1dƒqúW|	j.ƒ|
krdd
dl2}|j3dIJt	}n|jj4ƒ}|jt5|ƒdƒ|j6ƒd}|j|ddƒ|j|d|ƒ|j7|dtj8tj9fƒ|jj4ƒ}|jt5|ƒdƒ|j6ƒd}|j|ddƒ|j|d|ƒ|j7|dtj8tj9fƒtjƒdkr›|jj:dtj;ƒ}|j7d|ƒntj<|jƒ|_=|jj>ƒ}
|j=j?dtj@tjAdd|
ƒ|
jBƒd
dl.}	d
dlC}|	j.ƒd}
xH|	j.ƒ|
kr`|jDjE|jDjF|jGdƒƒr`|	j1dƒqWtj<|jƒ|_Hx™t	r	|jj>ƒ}
y/|jHj?dtj@dtjIddd|
ƒWnCtjJk
r	|
jKƒ|jHjLƒtj<|jƒ|_HqynX|
jBƒPqyW|jj>ƒ}
|j=jMddd|
ƒ|
jBƒd
dl.}	|	j.ƒd}
d}xo|	j.ƒ|
kr×	|dkr×	|jj>ƒ}
|jHjOdd|
ƒ}|
jBƒ|dkri	|	j1dƒqi	qi	W|	j.ƒ|
kr
|r
|jPdƒn|jQ|	j.ƒ|
ƒ|jd|ƒ|jj>ƒ}
|j=jRdd|
ƒ|
jBƒ|	j.ƒd}
xo|	j.ƒ|
krÖ
|dk	rÖ
|jj>ƒ}
|jHjOdd|
ƒ}|
jBƒ|dkrh
|	j1dƒqh
qh
W|jQ|	j.ƒ|
ƒ|jd|ƒdS(Niis	127.0.0.1i
ii‡iá‡iЇiPˆiù‡i¿ˆiiÿÿÿÿi<g{®Gáz”?sBXXX: timeout happened beforestartup was confirmed - see issue 3892iitflagstmsgs_queuedttesti¶ttxng{®Gáz„?tmodetABCt123s>replication test skipped due to random failure, see issue 3892(ii(ii(SRtfind_unused_portRtversionRtrepmgr_sitetsitet
set_configtDB_GROUP_CREATORRt
DB_LOCAL_SITEtsite2Rtsite3tDB_BOOTSTRAP_HELPERtsite4Rt	DB_LEGACYtDB_REPMGR_PEERtitemstzipt
assertTruet
get_configtassertFalsetassertNotEqualtget_eidtget_addresstassertEqualtrepmgr_site_by_eidtrepmgr_set_local_sitetrepmgr_add_remote_sitetrep_set_nsitestrep_set_prioritytrep_set_timeouttDB_REP_CONNECTION_RETRYtrep_get_timeouttDB_REP_ELECTION_TIMEOUTtDB_REP_ELECTION_RETRYtrepmgr_set_ack_policytDB_REPMGR_ACKS_ALLtrepmgr_startt
DB_REP_MASTERt
DB_REP_CLIENTtrep_get_nsitestrep_get_prioritytrepmgr_get_ack_policyttimeR	Rtsleeptsyststderrtrepmgr_site_listtlentvaluestassertIntDB_REPMGR_CONNECTEDtDB_REPMGR_DISCONNECTEDtrepmgr_statt
DB_STAT_CLEARtDBR!t	txn_beginRtDB_HASHRtcommittos.pathtpathtexiststjoinRR"t	DB_RDONLYtDBRepHandleDeadErrortabortR&tputR tgettskipTestt
assertLesstdelete(R
tmaster_porttclient_porttdtitjtktvtaddrR[ttimeoutR]tstartup_timeoutR/tos((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyttest01_basic_replicationHs$1""!#&

(
	  %
%	



!

!
(R)R*R‚(((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR+GstDBBaseReplicationcBs†eZd„Zd„Zd„Zd„Zejƒd
krHd„Znejƒdkrfd„Z	nejƒdkr„d	„Z
nRS(
csãtjˆƒ‡fd†}‡fd†}ˆjj|ƒˆjj|ƒddl}|jƒˆ_|jƒˆ_‡fd†}‡fd†}ˆjjd|ƒˆjj	dƒˆjjd|ƒˆjj	d	ƒˆj
ˆjjƒdƒˆj
ˆjjƒd	ƒ‡fd
†}‡fd†}ddlm
}|d
|ƒ}	|d
|ƒ}
ddl}|jd	dkr“|	jtƒ|
jtƒnt|	_t|
_|	ˆ_|
ˆ_dˆ_ˆ_tgˆ_tgˆ_dS(Ncs.|tjks|tjkr*tˆ_ndS(N(RRtDB_EVENT_REP_ELECTEDRR	(R
RR(R
(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR	scs|tjkrtˆ_ndS(N(RRRR(R
RR(R
(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyRsiÿÿÿÿcsˆjj||fƒdS(N(tm2cRr(tdbenvtcontroltrectlsnptenvidR,(R
(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR…scsˆjj||fƒdS(N(tc2mRr(R†R‡RˆR‰RŠR,(R
(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR‹si
i
iics"ˆjˆjˆjdˆjtƒS(Ni(t	thread_doRR‹tmaster_doing_electionR((R
(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyt
thread_master/scs"ˆjˆjˆjdˆjtƒS(Ni
(RŒRR…tclient_doing_electionR((R
(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyt
thread_client3s(tThreadttarget(RR#RRRtQueueR…R‹trep_set_transportRMRHRYt	threadingR‘R]tversion_infot	setDaemonRtdaemontt_mtt_cR R!R"RRR(R
R	RR“R…R‹RŽRR‘R™RšR]((R
s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR#	s@

				cCsù|jr|jjƒn|jr2|jjƒn|jjdƒ|jjdƒ|jjƒ|j	jƒd„}|j
j|ƒ|jj|ƒ|j
j
d|ƒ|jj
d|ƒ|jjƒ|j
jƒtj|jƒtj|jƒdS(NcWsdS(N((R$((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR%Xsi
i(R"R&R!R…RrR R‹R™RnRšRRRR”RR'RR(R
R%((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR(Ks"		

	

cCs\|jjdtjƒ|jjdtjƒd„}||_|jjƒ|j	jƒdS(NR,cSsHxAtrC|jƒ}|dkr%dS|j|d|d|ƒqWdS(Nii(RRsR trep_process_message(tenvtqRŠtelection_statustmust_be_masterR}((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyRŒhs
	(
Rt	rep_startRRVRRWRŒR™tstartRš(R
RŒ((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pytbasic_rep_threadingds		
c	CsÛ|jƒddl}|jƒd}x6|jƒ|kr^|joJ|jr^|jdƒq)W|j|jƒ|ƒtj|jƒ|_	|jj
ƒ}|j	jdtjtj
dd|ƒ|jƒddl}ddl}|jƒd}xH|jƒ|kr:|jj|jj|jdƒƒr:|jdƒqóWtj|jƒ|_x™trë|jj
ƒ}y/|jjdtjd	tjd
dd|ƒWnCtjk
rÜ|jƒ|jjƒtj|jƒ|_qSnX|jƒPqSW|jjd	tjƒ}|jd|ƒ|jj
ƒ}|j	jdd
d|ƒ|jƒddl}|jƒd}d}xo|jƒ|krÙ|dkrÙ|jj
ƒ}|jj dd|ƒ}|jƒ|dkrk|jdƒqkqkW|j|jƒ|ƒ|j!d
|ƒ|jj
ƒ}|j	j"dd|ƒ|jƒ|jƒd}xo|jƒ|kr°|dk	r°|jj
ƒ}|jj dd|ƒ}|jƒ|dkrB|jdƒqBqBW|j|jƒ|ƒ|j!d|ƒdS(Niÿÿÿÿi<g{®Gáz”?R.i¶R/i
g{®Gáz„?R,R0tmaster_changesR1R2(#R¢R[R	RR\RuRRgRR!RhRRiRRjRkRlRmRnRRR"RRoRpRqR&trep_statRfRbRrR RsRHRv(R
R[RR/RRyR}((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyR‚ssr

%
%	



!

!
iicCse|jƒ|jjƒ\}}|jj|d|dƒ|j|jjƒ|d|dfƒdS(Ni(R¢Rtrep_get_requesttrep_set_requestRH(R
tminimumtmaximum((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyttest02_test_requestºs

icsˆjjdtjƒˆjjdtjƒ‡fd†}|ˆ_ˆjjƒˆjjƒˆjj	tj
dƒˆjj	tj
dƒtˆjd<xFtrßy%ˆjj
ddƒtˆjd<PWqštjk
rÛqšXqšWˆjˆjƒxˆjjƒds	qóWdS(NR,cs#xtr|jƒ}|dkr%dSˆj|d|d|ƒ}|rpˆjrpˆjjdtjƒt	}n|dtj
kr‡‡fd†}ˆdrˆjrddlm}tˆd<|d|ƒ}	ddl
}
|
jddkr|	jtƒn	t|	_|	jƒqqqWdS(	NiiR,csGx@trByˆjddƒtˆd<PWqtjk
r>qXqWdS(Niii(Rt	rep_electRRtDBRepUnavailError((RžRœ(s7/usr/local/lib/python2.7/bsddb/test/test_replication.pytelectÒs	
iÿÿÿÿ(R‘R’i(RRsR R›R	RR RRVRtDB_REP_HOLDELECTIONR•R‘R]R–R—R˜R¡(RœRRŠRžRŸR}trR¬R‘ttR](R
(RžRœs7/usr/local/lib/python2.7/bsddb/test/test_replication.pyRŒÈs&		
	iPÃiiitstartup_complete(RR RRWRRŒR™R¡RšRNRQRRRªRR«RBR	R¤(R
RŒ((R
s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyttest03_master_electionÂs&	


	
cCsLd\}}|jj||ƒ|j||f|jjƒƒ|jƒdS(NiÒiÎ(iÒiÎ(Rtrep_set_clockskewRHtrep_get_clockskewR¢(R
tfasttslow((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyttest04_test_clockskewÿs
(ii(ii(ii(R)R*R#R(R¢R‚RR4R©R±R¶(((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyRƒs	B			F<cCs tjƒ}tjƒdkrœtjƒ}y|jƒt}Wn
t}nX|jƒ~|rz|j	tj
tƒƒntrœ|j	tj
t
ƒƒqœn|S(Nii(ii(tunittestt	TestSuiteRR4RRZRRR&taddTestt	makeSuiteR+RRƒ(tsuiteR†tReplicationManager_available((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyt
test_suites



t__main__tdefaultTestR½(t__doc__RR[R·ttest_allRRRRRRtTestCaseRR+RƒR½R)tmain(((s7/usr/local/lib/python2.7/bsddb/test/test_replication.pyt<module>s.9Áÿ	

Zerion Mini Shell 1.0