{G_Tc @sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlmZejdZddlZejdddlZddlZddlZddlZddlZddlmZyddlmZeZWnek rceZnXy ddlm Z m!Z!eZ"Wnek reZ"nXyddl#Z#Wnek rdZ#nXe%Z&ej'Z(d Z)eZ*e*rd\Z+Z,Z-nd\Z+Z,Z-e.ed e Z/ej0dkZ1yej2dZ3Wn dZ3nXy ddl4m5Z5m6Z6m7Z7Wn!ek re8Z5dZ6Z7nXdZ9de8fdYZ:de8fdYZ;dZ<de;fdYZ=dej>fdYZ?de;fdYZ@dZAdZBd e;fd!YZCd"e;fd#YZDd$e;fd%YZEd&e;fd'YZFd(e;fd)YZGd*e;fd+YZHd,e;fd-YZId.e;fd/YZJd0d1ZKd2e;fd3YZLd4ZMd5e;fd6YZNd7e;fd8YZOd9e;fd:YZPdd;lmQZQmRZRmSZSd<e8fd=YZTd>ZUd?eRfd@YZVdAeQfdBYZWeWjXdCdDeTeWjXdEdDeTdFdeWjXdIdDeUdJeVdKe;fdLYZYejZZdMZ[dNeQfdOYZ\e\jXdPdDe[dQeQfdRYZ]e]jXdPdSZ^dTe;fdUYZ_dVe;fdWYZ`e&dXZadYe;fdZYZbd[e;fd\YZcd]e;fd^YZdd_e5fd`YZedae;fdbYZfdce;fddYZgdee;fdfYZhdge;fdhYZidie;fdjYZjdkejkfdlYZldmZmdnZndoe8fdpYZoeneodqdrZpeqjrepdse8fdtYZsenesdqduZteqjretdve8fdwYZueneudqdxZveqjrevdyejkfdzYZwd{Zxd|ejkfd}YZyd~ZzdZ{dZ|dZ}de8fdYZ~dejkfdYZdejkfdYZdejkfdYZdejkfdYZdejkfdYZdejkfdYZeweleyeeeeeeg ZddZdZedkrendS(iN(t test_support(tStringIOt_multiprocessingsmultiprocessing.synchronize(tutil(t reduction(tValuetcopyg?g= ףp=?gffffff?gffffff?tHAVE_BROKEN_SEM_GETVALUEtwin32t SC_OPEN_MAXi(t Structuretc_inttc_doublecCsgd}ytjd}Wnttfk r3dSX|dksL||krPdStjd|dS(sACheck that the system supports enough semaphores to run the test.itSC_SEM_NSEMS_MAXNisHThe OS doesn't support enough semaphores to run the test (required: %d).(tostsysconftAttributeErrort ValueErrortunittesttSkipTest(t nsems_mintnsems((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytcheck_enough_semaphoresbs t TimingWrappercBseZdZdZRS(cCs||_d|_dS(N(tfunctNonetelapsed(tselfR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt__init__ws cOs;tj}z|j||SWdtj||_XdS(N(ttimeRR(Rtargstkwdstt((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt__call__{s (t__name__t __module__RR!(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRus t BaseTestCasecBs/eZdZdZdZdZeZRS(t processestmanagertthreadscCs tr|j||dndS(Ni(t CHECK_TIMINGStassertAlmostEqual(Rtatb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytassertTimingAlmostEqualscGs8y||}Wntk r#nX|j||SdS(N(tNotImplementedErrort assertEqual(RtvalueRRtres((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytassertReturnsIfImplementeds  cGstddS(Ns#shouldn't try to pickle a test case(R-(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt __reduce__s(s processessmanagerR'(R"R#t ALLOWED_TYPESR,R1R2t __reduce_ex__(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR$s   cCsjy|jSWnUtk rey |jSWqftk ray |jSWqbtk r]tqbXqfXnXdS(N(t get_valueRt_Semaphore__valuet_valueR-(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR5s     t _TestProcesscBseZd ZdZedZdZedZdZdZ dZ ed Z d Z ed Z d ZRS(R%R'cCs|jdkr+|jdj|jn|j}|j}|j|j|j|j |j|t |jt |dk|j |j t j|j |jddS(NR'stest not appropriate for {}i(tTYPEtskipTesttformattcurrent_processtauthkeyt assertTruetis_alivetdaemontassertIsInstancetbytestlenR.tidentRtgetpidtexitcodeR(RtcurrentR=((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_currents  cOsr|j}|j||j||j|j|jdkrn|jt|j|j|jndS(NR'(R<tputtnameR9RBR=tpid(tclstqRRRG((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_tests   c Cs<|jd}|j}|ddf}idd6dd6}d}|jd|jd |d |d |}t|_|j}|jd kr|j|j |j n|j|j t |j|jt|j ||j |jt|j tk|j|jd|j|j|jd|j|j t|j||j |j|j|d|j|j||j|j|j|jd kr|j|j|j |j|j|jn|j|j|jd |j|j t |j ||j dS(NiiithellogRQ@tbyet SomeProcessttargetRtkwargsRJR'i(tQueuetEventtProcessRNtTrueR@R<R9R.R=R?tFalset assertNotIntactive_childrenR>ttypetlistRFRtstarttassertIntgetRJRKtjoin(RRMteRRSRJtpRG((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_processs<      cCstjddS(Ni(Rtsleep(RL((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_test_terminatescCs |jdkr+|jdj|jn|jd|j}t|_|j|j|j t|j ||j |j|j d|jt|j}|j|d|j|jd|j|j t|j||j |jdS(NR'stest not appropriate for {}RRg(R9R:R;RVReRWR@R]R.R?R^RZRFRt terminateRR`R,RRXRY(RRbR`((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_terminates   cCsZytj}Wntk r)d}nX|jt|tk|j|dkdS(Ni(tmultiprocessingt cpu_countR-R>R[tint(Rtcpus((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_cpu_counts   cCs|jt|jt|jdtjdtf}|j||jt |_ |j |j ||j|j |j||jdS(NRRR(R.R[RZR\RVRRdtDELTARYRWR@R]R^R`(RRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_active_childrens   cCsddlm}|j|t|dkrxStdD]B}|jd|jd|||gf}|j|jq<WndS(Ni(tforkingiRRR( RhRotsendRCtrangeRVt_test_recursionR]R`(RLtwconntidRotiRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRr's   cCs|jdt\}}|j|gtjtg}x#|jr`|j|jq>Wgdgddgddgdgddgddgg}|j ||dS(Ntduplexii( tPipeRXRrRRdRmtpolltappendtrecvR.(RtrconnRstresulttexpected((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_recursion3s    cCs#t|dt_tj|dS(Ntw(topentsyststderrtexit(RLtreasonttestfn((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_test_sys_exitGsc Csp|jdkr+|jdj|jntj}|jtj|xdddgdfd fD]\}}|jd|jd||f}t |_ |j |j d |j |j|t|d )}|j |jjt|WdQXqcWxht td fD]W}|jdtjd|f}t |_ |j |j d |j |j|qWdS( NR'stest not appropriate for {}iiis ignore thisRRRitri(s ignore thisi(R9R:R;RtTESTFNt addCleanuptunlinkRVRRWR@R]R`R.RFRtreadtrstriptstrRXRR(RRRtcodeRbtf((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_sys_exitLs$ (!   ,   (s processessthreads(R"R#R3RHt classmethodRNRcReRgRlRnRrR~RR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR8s  '    t _UpperCasercBs,eZdZdZdZdZRS(cCs,tjj|tj\|_|_dS(N(RhRVRRwt child_connt parent_conn(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRkscCsT|jjx3t|jjdD]}|jj|jq#W|jjdS(N(RtclosetiterRRzRRptupper(Rts((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytrunos cCs|jj||jjS(N(RRpRz(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytsubmituscCs.|jjd|jj|jjdS(N(RRpRRR(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytstopzs (R"R#RRRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRis   t_TestSubclassingProcesscBseZdZdZRS(R%cCsft}t|_|j|j|jdd|j|jdd|j|jdS(NROtHELLOtworldtWORLD(RRWR@R]R.RRR`(Rt uppercaser((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_subclassings    (s processes(R"R#R3R(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRscCs-t|dr|jS|jdkSdS(Ntemptyi(thasattrRtqsize(RM((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt queue_emptys cCs-t|dr|jS|j|kSdS(Ntfull(RRR(RMtmaxsize((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt queue_fulls t _TestQueuecBsqeZedZdZedZdZedZdZdZ edZ dZ RS( cCs9|jxtdD]}|jqW|jdS(Ni(twaitRqR_tset(RLtqueuetchild_can_starttparent_can_continueRu((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt _test_puts cCsd}|jd|}|j}|j}|jd|jd|||f}t|_|j|jt|t|jt ||t |j d|j dt|j dtd|j dt |j d t d|j dtjt|jt|t |jt ||tt|j }t|j }|jtj|d t |j|jd |jtj|d t d|j|jd |jtj|d |j|jd |jtj|d tt|j|jt|jtj|d t t|j|jd |jtj|d td t|j|jt|j|j|jt|t|jt ||t |jdS( NiRRRRiiiiiiittimeout(RTRURVRRWR@R]R.RRRXRIRt put_nowaitRRdRmRt assertRaisestFullR,RtTIMEOUT1tTIMEOUT2tTIMEOUT3RRR`(RtMAXSIZERRRtprocRIR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_putsN           cCsL|j|jd|jd|jd|jd|jdS(Niiii(RRIR(RLRRR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt _test_gets      cCsP|j}|j}|j}|jd|jd|||f}t|_|j|jt|t|j |j t j t |jt|t|j|jtdd|j|jtd|j|jddd|j|jd|jt|tt|j}t|j}|jtj|t|j|jd |jtj|td|j|jd |jtj||j|jd |jtj|tt|j|jt|jtj|tt|j|jd |jtj|dt|j|jt|jdS( NRRRiiRiiii(RTRURVRRWR@R]R.RRRRRdRmRXR_Rt get_nowaitRRtEmptyR,RRRRR`(RRRRRR_R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_getsB          cCs+x$tddD]}|j|qWdS(Ni i(RqRI(RLRRu((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt _test_forkscCs|j}x!tdD]}|j|qWtjt|jd|jd|f}t|_ |j x*tdD]}|j |j |q{W|j tj|j t|jdS(Ni RRRi(RTRqRIRRdRmRVRRWR@R]R.R_RRRXR`(RRRuRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_fork's    cCs|j}y|j|jdWntk rF|jdnX|jd|j|jd|jd|j|jd|j|j|jd|j|j|jddS(Nisqsize method not implementediii(RTR.RR-R:RIR_(RRM((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_qsizeBs      cCs8x1t|jdD]}tjt|jqWdS(N(RR_RRRdRmt task_done(RLRMtobj((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_test_task_doneQs cCs|j}tjd kr;t|d r;|jdngtdD]$}|jd|jd|f^qH}x!|D]}t|_ |j qyWx!tdD]}|j |qW|j x|D]}|j dqWx|D]}|j qWdS( NiiRs#requires 'queue.task_done()' methodiRRRi (ii(t JoinableQueueRt version_infoRR:txrangeRVRRWR@R]RIR`R(RRRutworkersRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_task_doneWs 4     ( R"R#RRRRRRRRRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs : 4  t _TestLockcBs#eZdZdZdZRS(cCsq|j}|j|jt|j|jtt|j|jd|jtt j f|jdS(N( tLockR.tacquireRWRXtreleaseRRRt threadingt ThreadError(Rtlock((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_lockus  cCs|j}|j|jt|j|jt|j|jt|j|jd|j|jd|j|jd|jttf|jdS(N( tRLockR.RRWRRRtAssertionErrort RuntimeError(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_rlock|s cCs|jWdQXdS(N(R(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_lock_contexts (R"R#RRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRss  t_TestSemaphorecBs,eZdZdZdZdZRS(cCs|jdt||j|jt|jdt||j|jt|jdt||j|jtt|jdt||j|jd|jdt||j|jd|jdt|dS(Niii(R1R5R.RRWRXRR(Rtsem((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_test_semaphorescCsr|jd}|j||j|jd|jdt||j|jd|jdt|dS(Niii(t SemaphoreRR.RRR1R5(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_semaphores  cCs |jd}|j|dS(Ni(tBoundedSemaphoreR(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_bounded_semaphorescCs&|jdkr+|jdj|jn|jd}t|j}|j|tt|j|j d|j|tdt|j|j d|j|tt t|j|j d|j|t t t|j|j t |j|dtt|j|j tdS(NR%stest not appropriate for {}igR(R9R:R;RRRR.RXR,RRRRWRR(RRR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_timeouts(R"R#RRRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs  t_TestConditioncBs>eZeddZdZdZdZdZRS(cCs9|j|j|j||j|jdS(N(RRR(RLtcondtsleepingtwokenR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs     cCss|jdkroyI|jj|jj}|j|d|j|jjdWqotk rkqoXndS(NR%i(R9t_sleeping_countR5t _woken_countR.t_wait_semaphoreR-(RRtsleepers((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytcheck_invariants  cCsc|j}|jd}|jd}|jd|jd|||f}t|_|jtjd|jd|||f}t|_|j|j |j t j t |j dt||j |j|jt j t |j dt||j |j|jt j t |j dt||j||jdS(NiRRRii(t ConditionRRVRRWR@R]RtThreadRRRdRmR1R5tnotifyRRR`(RRRRRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_notifys2 $  $              c Cs,|j}|jd}|jd}xtdD]z}|jd|jd|||tf}t|_|jt j d|jd|||tf}t|_|jq7Wxt dD]}|j qWxt dD]}|j qW|j dt||j|xtdD]t}|jd|jd|||f}t|_|jt j d|jd|||f}t|_|jq$Wxt dD]}|j qWtjt|j dt||j |j|jtjt|j dt||j|dS(NiiRRRi(RRRqRVRRRWR@R]RRRRR1R5RRRdRmt notify_allR(RRRRRuRbR ((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_notify_allsF     $  $      cCsb|j}t|j}|j|t}|j|j|d|j|j tdS(N( RRRRRRR.RR,R(RRRR0((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR<s    N( R"R#RRRRRRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs  + ;t _TestEventcBs eZedZdZRS(cCstjt|jdS(N(RRdRR(RLtevent((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt _test_eventHs cCsD|j}t|j}|j|jt|j|dt|j|jd|j|tt|j|jt|j |j|jt |j|t |j|jd|j|tt |j|jd|j |j d|j d|f}t |_|j|j|t dS(NgRRR(RURRR.tis_setRXR,RRRRWtclearRVRR@R](RRRRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_eventMs$     (R"R#RRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRFst _TestValuecBskeZdZdddd ed ed fgZd ZedZedZ dZ dZ RS(R%Ruii^tdg @gthiitctxtycCsts|jdndS(Ns%requires multiprocessing.sharedctypes(tHAS_SHAREDCTYPESR:(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytsetUp~scCs4x-t||jD]\}}|d|_qWdS(Ni(tzipt codes_valuesR/(RLtvaluestsvtcv((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRNsc Cs|r:g|jD]!\}}}|j||^q}n1g|jD]!\}}}|j||^qD}x7t||jD]#\}}|j|j|dq~W|jd|jd|f}t|_ |j |j x7t||jD]#\}}|j|j|dqWdS(NiRRRi( RtRawValueRRR.R/RVRNRWR@R]R`( RtrawRR/t_RRRR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_values1.   cCs|jdtdS(NR(RRW(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_rawvaluesc CsK|jdd}|j}|j}|jdddd}|j}|j}|j}|jddd|}|j} |j} |j|| |jdddt} |jt| d|jt| d|j t |jdddd|j dd} |jt| d|jt| ddS(NRuiRtget_locktget_objtnavalue( RRRRRR.RXt assertFalseRRRR( Rtval1tlock1tobj1tval2tlock2tobj2Rtval3tlock3tobj3tarr4tarr5((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_getobj_getlocks$       (s processes(Ruii^(Rg @g(Rii( R"R#R3tlatinRRRRNRXRRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRss   t _TestArraycBseZdZedZejed kde dZ ejed kddZ ejed kddZ ejed kddZ ejed kddZRS( R%cCs<x5tdt|D]}||c||d7 I cCs|j}tdd}x|D]}t|||:s( tdictRqR+R.RtsortedtkeysRtitems(RRtindicesRu((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_dict5s  &5cCs|j}d|_d|_d|_|j|j|jfd|`|jt|d|jt|d|jt|d dS(NtBobtBuilderthiddensNamespace(name='Bob')RJtjob(R3R4(t NamespaceRJR6t_hiddenR.RR>R(Rtn((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_namespace?s    (smanager(R"R#R3R*R2R:(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR(s  gcCstj|||S(N(RRd(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytsqrNs t _TestPoolcBskeZdZdZdZdZdZdZdZdZ dZ d Z d Z RS( cCs[|jj}|j|tdtd|j|tdidd6tdddS(NiiR(i((tpooltapplyR.R;(Rtpapply((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_applySs cCsr|jj}|j|ttdtttd|j|ttdddtttddS(Ni idt chunksizei(R=tmapR.R;Rq(Rtpmap((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_mapXs .cCsx|jdkr+|jdj|jndtfdY}|jt"|jjt|gdWdQXdS(NR'stest not appropriate for {}tAcBseZdZRS(cSstddS(Ns cannot pickle(R(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR2cs(R"R#R2(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyREbsi ( R9R:R;tobjectRRR=RBR;(RRE((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_map_unplicklable^s cCsQy)|jjtgddjdtWn!tjk rL|jdnXdS(NRAiRs2pool.map_async with chunksize stalled on null list(R=t map_asyncR;R_RRht TimeoutErrortfail(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_map_chunksizehs)cCsT|jjtdtf}t|j}|j|d|j|jtdS(Nii1( R=t apply_asyncR;RRR_R.R,R(RR0R_((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_asyncnscCs^|jjtdtdf}t|j}|jtj|dt|j |j tdS(Nig?R( R=RLR;RRR_RRhRIR,R(RR0R_((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_async_timeouttscCs|jjttd}|jt|tttd|jjttd}x.tdD] }|j|j||qhW|jt |j|jjttddd}x.tdD] }|j|j||qW|jt |jdS(Ni iRAid( R=timapR;RqR.R\RBtnextRt StopIteration(RtitRu((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_imapzs%!cCs|jjttd}|jt|tttd|jjttddd}|jt|tttddS(NiRAi5(R=timap_unorderedR;RqR.R.RB(RRR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_imap_unordereds%!cCsl|jttjd|jttjdtjd}|jdt|j|j|jdS(Niii( RRRhtPoolR.RCt_poolRR`(RRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_make_pools  cCs}|jd}|jtjgtdD] }d^q(dd}|jt|j}||j|j dkdS(Nii'g?RAig?( RVRHRRdRqRfRR`R>R(RRbRuR|R`((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRgs. cCs|jd}|j|jtgg|jt|jtgg|jt|jtgg|j|jtgjg|j |j dS(Ni( RVR.RBR;R\RORTRHR_RR`(RRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_empty_iterables""" ( R"R#R@RDRGRKRMRNRSRURXRgRY(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR<Qs        cCsdS(NcSsdS(Ni*((((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyts((((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytunpickleable_resultst_TestPoolWorkerErrorscBseZdZdZRS(R%cCspddlm}tjd}x6tdD](}|jt}|j||jq,W|j |j dS(Ni(tMaybeEncodingErrorii( tmultiprocessing.poolR]RhRVRqRLR[RR_RR`(RR]Rbt iterationR0((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_unpickleable_results (s processes(R"R#R3R`(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR\st_TestPoolWorkerLifetimecBs eZdZdZdZRS(R%c Cstjddd}|jdt|jg|jD]}|j^q8}g}x0tdD]"}|j|jt |fq`Wx6t |D](\}}|j|j t |qW|j d}x;|r t d|jD r |d8}tjtqWg|jD]}|j^q} |jd||jd| |jt|t| |j|jdS(Nitmaxtasksperchildi idi2css|]}|jVqdS(N(R?(R,R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pys si(RhRVR.RCRWRKRqRyRLR;t enumerateR_t_repopulate_pooltallRRdRmRYRtassertNotEqualR.RR`( RRbRtorigworkerpidstresultsRutjR0t countdowntfinalworkerpids((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_pool_worker_lifetimes&   #  cCstjddd}g}x3tdD]%}|j|jt|dfq(W|j|jx6t|D](\}}|j |j t|qrWdS(NiRbiig333333?( RhRVRqRyRLR;RR`RcR.R_(RRbRhRuRiR0((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt%test_pool_worker_lifetime_early_closes#  (s processes(R"R#R3RlRm(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRas t_TestZZZNumberOfObjectscBseZdZdZRS(R&cCsnd}tjtj|jj}|jj}||krZ|jjGH|GHn|j||dS(Ni(RhRZtgctcollectR&t_number_of_objectst _debug_infoR.(RtEXPECTED_NUMBERtrefst debug_info((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_number_of_objectss   (smanager(R"R#R3Rv(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRns(t BaseManagert BaseProxyt RemoteErrortFooBarcBs#eZdZdZdZRS(cCsdS(Nsf()((R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR scCs tdS(N(R(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytgscCsdS(Ns_h()((R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_hs(R"R#RR{R|(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRz s  ccs$xtdD]}||Vq WdS(Ni (R(Ru((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytbazst IteratorProxycBs)eZdZdZdZdZRS(RPt__next__cCs|S(N((R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt__iter__scCs |jdS(NRP(t _callmethod(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRPscCs |jdS(NR(R(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs(snexts__next__(R"R#t _exposed_RRPR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR~s  t MyManagercBseZRS((R"R#(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR stFootcallabletBartexposedRR|R}t proxytypet_TestMyManagercBseZdZdZRS(R&c Cst}|j|j}|j}|j}gdD]}t||r>|^q>}gdD]}t||rf|^qf}|j|ddg|j|ddg|j|jd|jt |j |j|j dd|jt |j d|j|jd|j|j d|j|j dd|j|j dd|jt|gtdD]}||^q|jdS( NRR{R|sf()s_h()i (RR{s_h(RR{s_h(RR]RRR}RR.RRRR{RRyR|R\Rqtshutdown( RR&tfootbarR}RJt foo_methodst bar_methodsRu((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_mymanager,s&     ((3(smanager(R"R#R3R(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR(scCstS(N(t_queue(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt get_queueMst QueueManagercBseZdZRS(s$manager class used by server process(R"R#t__doc__(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRPsRt QueueManager2cBseZdZRS(s@manager class which specifies the same interface as QueueManager(R"R#R(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRTst xmlrpclibt_TestRemoteManagercBs&eZdZedZdZRS(R&cCsNtd|d|dt}|j|j}|jddtdfdS(NtaddressR=t serializers hello worldg@(Rt SERIALIZERtconnectRRIRRW(RLRR=R&R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_putter_s   cCstjd}tdtjjdfd|dt}|j|jd|j d|j |f}t |_ |jt d|j d|dt}|j|j}|j|jddt d g|jt|jtj~|jdS( Ni RiR=RRRRs hello worldg@(RturandomRttestRtHOSTRR]RVRRRWR@RRRR.R_RRt ExceptionRIRRdR(RR=R&Rbtmanager2R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_remotehs! $    "(smanager(R"R#R3RRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR[s t_TestManagerRestartcBs eZedZdZRS(cCsBtd|d|dt}|j|j}|jddS(NRR=Rs hello world(RRRRRI(RLRR=R&R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs   cCstjd}tdtjjdfd|dt}|j}|j}|j j |j |j d|j d|j|f}t|_|j |j}|j|jd~|jtd|d|dt}|j |jdS( Ni RiR=RRRRs hello world(RRRRRRRt get_serverRtlistenerRR]RVRRWR@RR.R_R(RR=R&tsrvrtaddrRbR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_rapid_restarts$!    $     (R"R#RRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRstt_TestConnectioncBs+eZdZedZdZdZdZdZedZ ee dZ e j ed d Ze j ed e jejd kd e jed kde j eedddZedZe j ed e jejd kddZRS(R%R'cCs8x't|jtD]}|j|qW|jdS(N(Rt recv_bytestSENTINELt send_bytesR(RLtconntmsg((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_echoscCs@|j\}}|jd|jd|f}t|_|jdddg}td}|d}tjdt d}|j d kr|j t |j tn|j |j|d|j |j||j |j|d|j |j||j d krtjdd gd}t|d gdt|} |j |j|d|j |j|t||j|j t|| tjdd gd}d gd t|d gdt|} |j |j|d|j |j|d |jt||j|j t|| ttd d }|j |j|dy|j|} Wn,tjk r} |j | j|fqX|jd| nt|j} |j | t|j| j d |j | t!t|j| j t!|jdt"j#d|j | t!t|j| j d |j |jdtdd} |j| |j |j| |jt$|j%|j d kr2|j |j&t|j |j't|j(t)|j|j(t)|jn|j*dS(NRRRig@s hello worldi RuiR%iit i(sexpected BufferTooShort, got %sg?tXiiiii(+RwRVRRWR@R]RRRRqR9R.R[tfilenoRjRpRzRRR\RCtrecv_bytes_intotitemsizet bytearrayRhtBufferTooShortRRJRRxRXR,RRRRdRRtreadabletwritableRtEOFErrorR`(RRRRbRRtlongmsgRtbufferR}R0RaRxtreally_big_msg((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_connectionsn    !,     cCs|jdt\}}|j|jdd|j|jd|jdkr|j|jt|j|j t|j|jt|j|j t|j t |jd|j t |j|j t |j ndS(NRviR%i( RwRXR.RpRRzR9RRWRRtIOErrorRx(Rtreadertwriter((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_duplex_falsescCs|j\}}|jd|jd|f}t|_|j|jtd}|j||j |j ||jt |j|j dS(NRRRRO( RwRVRRWR@R]RRRR.RRR`(RRRRbR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_spawn_closes       cCs|jdkr+|jdj|jntd}|j\}}|j||j|j||j|d|j|j|d|j|dd|j|j|dd!|j|d|j|jtd|j|dd |j|jtd|jt |j|d |jt |j|d d|jt |j|dd |jt |j|d |jt |j|dd dS(NR%stest not appropriate for {}tabcdefghijklmnopqrstuvwxyziiiiRiiiiiii( R9R:R;RRwRR.RRR(RRR*R+((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_sendbytes$s&  cCsHytj|Wn,tk r?}|jtjkr9tSnXtSdS(N(RtfstattOSErrorterrnotEBADFRXRW(RLtfdRa((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_is_fd_assignedDscCs|rKxBtddD].}|j|stj|j|qqWntj|}trxtj|tj }ntj ||tj |dS(Nii( RqRRtdup2RRt recv_handletmsvcrttopen_osfhandletO_WRONLYtwriteR(RLRtdatatcreate_dummy_fdsRuR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_writefdOs s$test needs multiprocessing.reductioncCs|jdkr|jdn|jdt\}}|jd|jd|df}t|_|jtt j dA}|j }t rt j |}ntj|||jWdQX|jtt j d}|j|jdWdQXdS( NR%sonly makes sense with processesRvRRRRtwbtrb(R9R:RwRWRVRR@R]RRRRRt get_osfhandleRt send_handleRKR`R.R(RRRRbRR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_fd_transfer[s!    Rs*test semantics don't make sense on Windowsis)largest assignable fd number is too smallRstest needs os.dup2()c CsI|jdkr|jdn|jdt\}}|jd|jd|dtf}t|_|jtt j d}|j }x7t dt D]}|j|sPqqW|jd tj||ztj|||jWdtj|XWdQX|jtt j d }|j|jdWdQXdS( NR%sonly makes sense with processesRvRRRRRis2could not find an unassigned large file descriptorR(R9R:RwRWRVRR@R]RRRRRqtMAXFDRRJRRRRRKRR`R.R(RRRRbRRtnewfd((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_large_fd_transferms& $     cCstj|jddS(Nt(RRR(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_send_data_without_fdssdoesn't make sense on WindowscCs|jdkr|jdn|jdt\}}|jd|jd|f}t|_|j|jt t j ||j dS(NR%sonly makes sense with processesRvRRR( R9R:RwRWRVRR@R]RRRRR`(RRRRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_missing_fd_transfers  (s processessthreads(R"R#R3RRRRRRRRXRRt skipUnlesst HAS_REDUCTIONRR'RtplatformRRRRRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs( L    t_TestListenerClientcBs/eZdZedZdZdZRS(R%R'cCs-|jj|}|jd|jdS(NRO(t connectiontClientRpR(RLRR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRNs cCsx|jjD]}|jjd|}|jd|jd|jf}t|_|j|j }|j |j d|j |j q WdS(NtfamilyRRRRO(RtfamiliestListenerRVRNRRWR@R]tacceptR.RzR`R(RRtlRbR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_listener_clients!    cCs|jj}|jd|jd|jf}t|_|jtj d|j }|j |j d|j |j|j dS(NRRRiRO(RRRVRNRRWR@R]RRdRR.RzRR`(RRRbR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_issue14725s!      (s processessthreads(R"R#R3RRNRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRs t _TestHeapcBs eZdZdZdZRS(R%cCs d}d}g}xzt|D]l}ttjddd}tjj|}|j|t||krtj |}||=qqWtjjj }g}d} |j j |j |j jx]|jjD]L} xC| D];\} } } |j|jj| | | | | dfqWqWxT|jD]I\} } } |j|jj| | | | | df| | | 7} q4W|jx{tt|dD]c}||d \} } } ||dd \}}}|j| |kr|dkp| |kqWdS( Nii2iiitfreetoccupiedi(RRjtrandomtlognormvariateRhtheapt BufferWrapperRyRCt randranget_heapt_lockRRRt _len_to_seqRt_arenastindext_allocated_blockstsortRqR>(Rt iterationst maxblockstblocksRuRR+RReRtLtarenaR]Rtnarenatnstarttnstop((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_heap%s:   cCstjs)tj|jtjntj}|jtj|tjdxJtdD]<}tj j d}tj j d}||_ ||_ qbWdS(Ni ii( Rot isenabledtenableRtdisablet get_thresholdt set_thresholdRqRhRRtbuddy(Rt thresholdsRuR*R+((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_free_from_gcLs     (s processes(R"R#R3RR (((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR!s 't_FoocBs eZdefdefgZRS(RR(R"R#R R t_fields_(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR fs t_TestSharedCTypescBsDeZdZdZedZedZdZdZ RS(R%cCsts|jdndS(Ns%requires multiprocessing.sharedctypes(RR:(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRpscCs||jd9_|jd9_|jd9_|jd9_|jd9_x*tt|D]}||cd9R(RR%RJtmodtattr((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_imports      (s processes(R"R#R3R)(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR"st _TestLoggingcBs/eZdZdZedZdZRS(R%cCsZtj}|jtj|j|dk |jd|jd|jt dS(Nsthis will not be printeds nor will this( Rht get_loggertsetLevelRt SUBWARNINGR>Rtdebugtinfot LOG_LEVEL(Rtlogger((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_enable_loggings    cCs#tj}|j|jdS(N(RhR+RptgetEffectiveLevel(RLRR1((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt _test_levels c Csd}d}tj}tj}|j}tjdt\}}|j||jd|j d|f}t |_ |j |j ||j|jtj|j||jd|j d|f}t |_ |j |j ||j|j||jdtdS(Ni i%RvRRRtlevel(RhR+tloggingt getLoggerR5RwRXR,RVR4RWR@R]R.RztNOTSETR0( RtLEVEL1tLEVEL2R1t root_loggert root_levelRRRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_level s&          (s processes(R"R#R3R2RR4R=(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR*s t_TestPollEintrcBsAeZdZedZejeedddZ RS(R%cCs$tjdtj|tjdS(Ng?(RRdRtkilltsignaltSIGUSR1(RLRK((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_killerCs RAsrequires SIGUSR1cstgfd}tj}tjtj|}z|jd|jd|f}|j|jdtj dd}|j|j |j d|j |j d|j Wdtjtj|XdS(NcstdR.RF(RRDRKt oldhandlertkillerRb((RCs5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_poll_eintrHs     (s processes( R"R#R3RRBRRRR@RG(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR>?stTestInvalidHandlecBs#eZejeddZRS(sskipped on WindowscCs<tjd}|jt|j|jttjddS(NiMi(Rt ConnectionRRRx(RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_invalid_handlesas(R"R#RR'tWIN32RJ(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRH_scCs[i}xN|D]F}t||}t|ttkrIt|}n||| s"        (R"R#RRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR4 s tTestNoForkBombcBseZdZRS(cCstjjtjjtd}trwtjj|\}}}|j d|j d|j d|j dnStjj |\}}}|j d|j dj |j d|j ddS(Nsmp_fork_bomb.pyRtasciiRt123(RtpathR`tdirnamet__file__RKRt script_helpertassert_python_failureR.tdecodeR^tassert_python_okR(RRJtrctoutterr((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_noforkbombW s!(R"R#R(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRV st TestFlagscBs/eZedZedZdZRS(cCs|jttjdS(N(RpttupleRtflags(RLR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytrun_in_grandchildg scCsddl}tjdt\}}tjd|jd|f}|j|j}|j|j |j t t j |f}|j |GHdS(NiRvRRR(tjsonRhRwRXRVRR]RzR`RRRRtdumps(RLRRRRbtgrandchild_flagsR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt run_in_childk s      cCsxddl}ddl}dd}|jtjdddd|g}|j|jd\}}|j||dS( Nis1from test.test_multiprocessing import TestFlags; sTestFlags.run_in_child()s-Es-Bs-Os-cR(Rt subprocesst check_outputRt executabletloadsRR.(RRRtprogRt child_flagsR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_flagsx s(R"R#RRRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRf s tTestForkAwareThreadLockcBs eZedZdZRS(cCsl|dkrHtjd|jd|d|f}|j|jn|jttj|j dS(NiRRR( RhRVRR]R`RpRCRt_afterfork_registryR(RLR9RRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR s  %  cCstjt\}}tj}ttj}tjd|jdd|f}|j |j }|j |j ||dS(NRRRi( RhRwRXRtForkAwareThreadLockRCRRVRR]RzR`tassertLessEqual(RRRRtold_sizeRbtnew_size((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR s !   (R"R#RRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR s tTestIgnoreEINTRcBsneZedZejeedddZedZ ejeedddZ RS(cCsWd}tjtj||jd|j}|j||jdddS(NcSsdS(N((tsignumtframe((s5/usr/local/lib/python2.7/test/test_multiprocessing.pythandler streadyRii(R@RARpRzR(RLRRR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt _test_ignore s     RAsrequires SIGUSR1cCs tj\}}ztjd|jd|f}t|_|j|j|j|j dt j dt j |jtjt j d|jd|j|j dt j dt j |jtj|j|jddt j d|jWd|jXdS( NRRRRg?iRii(RhRwRVRRWR@R]RR.RzRRdRR?RKR@RARpRR`(RRRRb((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_ignore s&         cCsXd}tjtj|tjj}|j|j|j}|jddS(NcSsdS(N((RR((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR stwelcome(R@RARhRRRpRR(RLRRRR*((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyt_test_ignore_listener s   cCstj\}}ztjd|jd|f}t|_|j|j|j}t j dt j |j tjt j dtjj|}|j|jd|jWd|jXdS(NRRRg?R(RhRwRVRRWR@R]RRzRRdRR?RKR@RARRR.R`(RRRRbRtclient((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyttest_ignore_listener s       ( R"R#RRRRRR@RRR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyR s $ cstjjdrHytj}WqHtk rDtjdqHXnt|dkrnddl m }nt j tjjttjdt_tjjdt_tjjtjjtjjdt_ttjddttjddttjdd t}tj j!tj"fd |D}t#j$d t%fd t%fd t&||WdQXtjj'tjj'tjj'tjj(t`t`t`dS(Ntlinuxs1OSError raises on RLock creation, see issue 3111!i(t run_unittestitkeycSs|jS(N(R"(ttc((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRZ scSs|jS(N(R"(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRZ scSs|jS(N(R"(R((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyRZ sc3s|]}|VqdS(N((R,R(tloadTestsFromTestCase(s5/usr/local/lib/python2.7/test/test_multiprocessing.pys ss%.+__(get|set)slice__ has been removedssys.exc_clear\(\) not supportedtquiet()RRRURhRRRRRRttest.test_supportRRt get_temp_dirR+R,R0RVR]R=ReRdR`R&RR]R.ttestcases_processesRttestcases_threadsttestcases_managerttestcases_othertdefaultTestLoaderRt TestSuiteRtcheck_py3k_warningstDeprecationWarningRWRfR(RRt testcasestsuite((Rs5/usr/local/lib/python2.7/test/test_multiprocessing.pyt test_main s:     J        cCsttjddjdS(Nt verbosityi(RRtTextTestRunnerR(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pytmain st__main__(g= ףp=?gffffff?gffffff?(g?g?g?(Rs_h(RRTRRRRoR@RRRR6Rttest.script_helperRRRt import_moduleRRtmultiprocessing.dummyRhtmultiprocessing.connectiontmultiprocessing.managerstmultiprocessing.heapR^RRRWRt ImportErrorRXtmultiprocessing.sharedctypesRRRRRRRR-R0RmR(RRRR&t HAVE_GETVALUERRKRRtctypesR R R RFRRR$R5R8RVRRRRRRRRRRRR(R;R<R[R\RaRnRwRxRyRzR}R~RtregisterRRRRRRRRRRRRR RRR"R*R>RVRHRLR\R]RRSR_R`RRdRRfRqRrR|R~RRRRRRRRRRRRR"(((s5/usr/local/lib/python2.7/test/test_multiprocessing.pyts                                     6-EZ< ] 2  $   *% E69!C     !     " D   0