ó {G_Tc@sæddlmZmZmZmZmZmZmZddlZddl Z ddl Z ddl Z ddl Z ddl Z edƒZejZdejfd„ƒYZdejfd„ƒYZd„Zed krâeƒndS( iÿÿÿÿ(tTESTFNt run_unittestt import_moduletunlinktrequirest_2Gt_4GNtmmapt MmapTestscBs¯eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z e j e ed ƒd ƒd „ƒZe j e ed ƒd ƒd „ƒZe j e ed ƒd ƒd „ƒZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Ze j e edƒdƒd„ƒZd„Zd„Ze j ejdkdƒd„ƒZe j ejdkdƒd„ƒZ e j ejdkdƒd„ƒZ!RS( cCs&tjjtƒr"tjtƒndS(N(tostpathtexistsRR(tself((s*/usr/local/lib/python2.7/test/test_mmap.pytsetUp scCs)ytjtƒWntk r$nXdS(N(R RRtOSError(R ((s*/usr/local/lib/python2.7/test/test_mmap.pyttearDowns cCs®ttdƒ}zu|jdtƒ|jdƒ|jdtdƒ|jƒtj|jƒdtƒ}|jƒtt |ƒƒ}|j |j dƒtƒ|j t |ƒdtƒ|j |ddƒ|j |dd!dƒ|j t|jt |ƒƒ|j t|jt |ƒdƒd|dªsiiÿÿÿÿiiiii,iþÿÿÿiáÿÿÿiÔþÿÿ( iNiiii,iÿÿÿÿiþÿÿÿiáÿÿÿiÔþÿÿ(tjointreversedR\RR!RR((R tsR2tindicesR5tstoptstep((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_extended_getslice¨s%  c Cs djd„ttdƒƒDƒƒ}tjdt|ƒƒ}d }xÀ|D]¸}x¯|D]§}xž|dD]’}||(|j||ƒt|ƒ}||||…}djt|ƒƒ}|||||…<|||||…<|j|dj|ƒƒqhWqWWqJWdS(NR€css|]}t|ƒVqdS(N(R}(RRA((s*/usr/local/lib/python2.7/test/test_mmap.pys ¸siiÿÿÿÿiiiii,iþÿÿÿiáÿÿÿiÔþÿÿ( iNiiii,iÿÿÿÿiþÿÿÿiáÿÿÿiÔþÿÿ(R‚RƒR\RR!R(Rtlist( R R„R2R…R5R†R‡tLR]((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_extended_set_del_slice¶s%   cCsS|jd|ƒ|jdƒ|jd|dƒ|jƒtj|jƒdƒS(NRRii(RRRR(R R1thalfsize((s*/usr/local/lib/python2.7/test/test_mmap.pytmake_mmap_fileÊs   c Cs`ttdƒ}|jƒttdƒ2}|jtdtj|jƒddtjƒWdQXdS(Nsw+bR;scannot mmap an empty fileiR<(RRRtassertRaisesRegexpR-RRRG(R R1((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_empty_fileÒs  cCs6ttdƒ}zðtj}|j||ƒ}|jƒ|jƒ|d}ttdƒ}xvdddgD]e}y2tj|jƒ|d|ƒ}|jddƒWnt t t fk r¾qjX|jddƒqjW|jƒttdƒ}tj|jƒ||d|ƒ}|j|dd !d ƒ|jƒy|j d ƒWnt k rSn¡X|jt|ƒd ƒ|jt |jd dƒ|j|dd !d ƒttƒ}|jddƒ|j|jƒ|d ƒ|jƒ|j|jƒ|d ƒ|jƒWd|jƒytjtƒWntk r0nXXdS( Nsw+bisr+biþÿÿÿiÿÿÿÿRkiiiRii(RRRtALLOCATIONGRANULARITYRRR(RRR-RHt OverflowErrorR.R/R!R"R+R,R0R RR(R R1RŒR2RURk((s*/usr/local/lib/python2.7/test/test_mmap.pyt test_offsetÛsL     "      cCs'dtjfd„ƒY}|tƒdS(Nt anon_mmapcBseZd„ZRS(c_stjj|d||ŽS(Niÿÿÿÿ(Rt__new__(tklasstargstkwargs((s*/usr/local/lib/python2.7/test/test_mmap.pyR”s(t__name__t __module__R”(((s*/usr/local/lib/python2.7/test/test_mmap.pyR“s(RR(R R“((s*/usr/local/lib/python2.7/test/test_mmap.pyt test_subclasssRSsneeds mmap.PROT_READcCstd}ttdƒjd|ƒttdƒ}tj|jƒ|dtjƒ}|jt|jdƒ|jƒdS(Ni R9R:R;RDR( RRRRRRSR"RHR(R RUR1R2((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_prot_readonlys !cCs6|jttjtƒƒ|jdttjƒƒdS(Ns mmap.error(t assertTruet issubclassRRXtEnvironmentErrortassertInR(R ((s*/usr/local/lib/python2.7/test/test_mmap.pyt test_error#scCs d}ttdƒjdt|ƒƒttdƒ}tj|jƒt|ƒƒ}|jƒx[tt|ƒƒD]G}|j|j ƒ|ƒ|j ||ƒ|j|j ƒ|dƒqpW|j t |j dƒ|j||ƒ|j dƒxdtt|ƒƒD]P}|j|j ƒ|ƒ|j|jƒ||ƒ|j|j ƒ|dƒqW|j t |jƒ|j dƒ|j|jdƒdƒ|j|j ƒd ƒ|j dƒ|jd ƒ|j|j ƒd ƒ|j|d ƒ|j d ƒ|j t |jd ƒdS( NRpR9R[sr+biiit345iRt 012bar6789i(RRRR!RRRR|RR,RIR"R-R+t read_byteRJ(R R]R1R2ti((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_io_methods's4       tntsrequires WindowscCsd}d}tjdt|ƒddƒ}||(tjdt|ƒddƒ}||(|j||ƒ|j||ƒ|jƒ|jƒtjdt|ƒddƒ}||(tjdt|ƒddƒ}||(|j||ƒ|j||ƒ|jƒ|jƒdS(NRpt abcdefghijiÿÿÿÿttagnameRtboo(RR!RR(R tdata1tdata2tm1tm2((s*/usr/local/lib/python2.7/test/test_mmap.pyt test_tagnameGs$   cCsÊtjddddƒ}ytjddddƒWnnX|jƒttdƒjd ƒttd ƒ}tj|jƒd ƒ}|jƒy|jd ƒWnnXy |WnnX|jƒdS( NiÿÿÿÿièR¨RiˆR9R[i sr+bit xxxxxxxxxx(RRRRRRR.(R R2R1((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_crasher_on_windowsas&   cCsStjƒ}z5|jtjƒtj|jƒdƒ}WdQXWd|jƒXdS(Ni (tsocketR"RRXRR(R R„R2((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_invalid_descriptorzs  "("R˜R™R RR8RWRYRaRdRfRhtunittestt skipUnlessthasattrR RjRlRmR{RRˆR‹RRR’RšRR›R R¥RQR®R°R²(((s*/usr/local/lib/python2.7/test/test_mmap.pyR s4   a „     $$$ 1    9 $  $$tLargeMmapTestscBs†eZd„Zd„Zd„Zd„Zd„Zd„Zej e j e kdƒd„ƒZ ej e j e kdƒd„ƒZRS( cCsttƒdS(N(RR(R ((s*/usr/local/lib/python2.7/test/test_mmap.pyR ‰scCsttƒdS(N(RR(R ((s*/usr/local/lib/python2.7/test/test_mmap.pyRŒscCsªtjd dks"tjdkr<tddtdƒƒnttdƒ}y(|j|ƒ|j|ƒ|jƒWn0t t fk r¥|j ƒt j dƒ‚nX|S( NiR@tdarwint largefiles-test requires %s bytes and a long time to runI€sw+bs*filesystem does not have largefile support(RKRLRRRRR+RRtIOErrorR‘RR³tSkipTest(R t num_zeroesttailR1((s*/usr/local/lib/python2.7/test/test_mmap.pyt_make_test_files"   c Csl|jddƒT}tj|jƒddddtjƒ}z|j|ddƒWd|jƒXWdQXdS(NIÿÿÿOt iRkI@R<iÿÿÿ(R½RRRGRR(R R1R2((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_large_offsets 'cCsä|jddƒÌ}tjdkr‘|jtƒ$tj|jƒddtjƒWdQX|jtƒ$tj|jƒddtjƒWdQXntj|jƒddtjƒ}z|j |j ƒdƒWd|j ƒXWdQXdS(NIÿÿÿR¾I€R<ii( R½RKtmaxsizeR"R‘RRRGR-RR0R(R R1R2((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_large_filesize¥s%(!c Cs“d}|t|ƒd}|t|ƒ}|j||ƒQ}tj|jƒddtjƒ}z|j|||!|ƒWd|jƒXWdQXdS(Ns DEARdear iiR<(R!R½RRRGRR(R tboundaryR¼R5R6R1R2((s*/usr/local/lib/python2.7/test/test_mmap.pyt_test_around_boundary¶s!s!test cannot run on 32-bit systemscCs|jtƒdS(N(RÃR(R ((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_around_2GBÁscCs|jtƒdS(N(RÃR(R ((s*/usr/local/lib/python2.7/test/test_mmap.pyttest_around_4GBÅs(R˜R™R RR½R¿RÁRÃR³R´RKRÀRRÄRÅ(((s*/usr/local/lib/python2.7/test/test_mmap.pyR¶‡s      $cCstttƒdS(N(RRR¶(((s*/usr/local/lib/python2.7/test/test_mmap.pyt test_mainÊst__main__(ttest.test_supportRRRRRRRR³R R&RsR±RKRRtTestCaseRR¶RÆR˜(((s*/usr/local/lib/python2.7/test/test_mmap.pyts4 <  ÿÿC