Ñò
à"Ic           @   s   d  d k  l Z l Z d  d k Z d  d k Z d  d k Z d  d k Z e i Z d e i f d „  ƒ  YZ	 d „  Z
 e d j o e
 ƒ  n d S(   iÿÿÿÿ(   t   TESTFNt   run_unittestNt	   MmapTestsc           B   s³   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s(   t  i i t ƒ o t  i t ƒ n d  S(   N(   t   ost   patht   existsR    t   unlink(   t   self(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   setUp
   s    c         C   s+   y t  i t ƒ Wn t j
 o n Xd  S(   N(   R   R   R    t   OSError(   R   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   tearDown   s    c         C   sy  t  t d ƒ } z>| i d t ƒ | i d ƒ | i d t d ƒ | i ƒ  t i | i ƒ  d t ƒ } | i ƒ  t t	 | ƒ ƒ } |  i
 | i d ƒ t ƒ |  i
 t | ƒ d t ƒ |  i
 | d d ƒ |  i
 | d d !d ƒ d | d <d	 | t d t d d +|  i
 | d d ƒ |  i
 | d d !d
 ƒ |  i
 | t d t d !d ƒ | i ƒ  t i d | ƒ } | d  j o |  i d ƒ nD | i d ƒ \ } } | | } |  i
 | t ƒ |  i
 | t d ƒ | i d d ƒ |  i
 | i ƒ  d ƒ | i d d ƒ |  i
 | i ƒ  d ƒ | i d d ƒ |  i
 | i ƒ  t | ƒ ƒ |  i t | i d ƒ |  i t | i d d ƒ |  i t | i t | ƒ d d ƒ y | i d ƒ Wn t j
 o nƒ X|  i
 t | ƒ d ƒ |  i t | i d d ƒ t  t ƒ } | i d d ƒ |  i
 | i ƒ  d ƒ | i ƒ  |  i
 | i ƒ  d ƒ | i ƒ  Wd  y | i ƒ  Wn t j
 o n XXd  S(   Ns   w+t    t   fooi   i   i    t      t   3t   bart   3  i   i   t    foobar s	   [A-Za-z]+s   regex match on mmap failed!i   i*   iÿÿÿÿi   i  (   t   openR    t   writet   PAGESIZEt   flusht   mmapt   filenot   closet   strt   typet   assertEqualt   findt   lent   ret   searcht   Nonet   failt   spant   seekt   tellt   assertRaisest
   ValueErrort   resizet   SystemErrort   sizeR	   (   R   t   ft   mt   tpt   matcht   startt   endt   length(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt
   test_basic   sf    




$
c      !   C   sÀ  d } t  t d ƒ i d | ƒ t  t d ƒ } t i | i ƒ  | d t i ƒ} |  i | d | d ƒ y d | | (Wn t j
 o n X|  i d ƒ y d | d	 <Wn t j
 o n X|  i d ƒ y! | i	 d	 d	 ƒ | i d
 ƒ Wn t j
 o n X|  i d ƒ y! | i	 d	 d	 ƒ | i
 d ƒ Wn t j
 o n X|  i d ƒ y | i d | ƒ Wn% t j
 o n! t j
 o n X|  i d ƒ | i ƒ  ~ ~ |  i t  t d ƒ i ƒ  d | d ƒ d d  k } t  t d ƒ } y  t i | i ƒ  | d ƒ } Wn7 t j
 o+ | i i d ƒ o |  i d ƒ qvn0 X| i i d ƒ p |  i d ƒ n | i ƒ  | i ƒ  | i i d ƒ o* t  t d ƒ } | i | ƒ | i ƒ  n t  t d ƒ } t i | i ƒ  | d t i ƒ} d | | (|  i | d | d ƒ | i ƒ  | i ƒ  | i ƒ  t  t d ƒ } | i ƒ  } | i ƒ  |  i | d | d ƒ t  t d ƒ } t i | i ƒ  | d t i ƒ} d | | (|  i | d | d ƒ | i ƒ  |  i t  t d ƒ i ƒ  d | d ƒ |  i t | i d | ƒ | i ƒ  ~ ~ t  t d ƒ } |  i t t i | i ƒ  | d d ƒ| i ƒ  t i d j oW t  t d ƒ } |  i t t i | i ƒ  | d t i d t i d t i ƒ| i ƒ  n d  S(   Ni
   t   wbt   at   rbt   accesss#   Readonly memory map data incorrect.t   bs$   Able to write to readonly memory mapi    t   abct   di   s"   Able to resize readonly memory maps*   Readonly memory map data file was modifiediÿÿÿÿs   r+bi   t   wins0   Opening mmap with size+1 should work on Windows.s1   Opening mmap with size+1 should raise ValueError.t   cs5   Write-through memory map memory not updated properly.s8   Write-through memory map data file not updated properly.s4   Copy-on-write memory map data not written correctly.s4   Copy-on-write test data file should not be modified.i   t   posixt   flagst   prot(   R   R    R   R   R   t   ACCESS_READR   t	   TypeErrorR!   R#   t
   write_byteR'   R(   R   t   readt   sysR&   t   platformt
   startswitht   truncatet   ACCESS_WRITER   t   ACCESS_COPYR%   R   t   namet   MAP_PRIVATEt	   PROT_READ(   R   t   mapsizeR*   R+   RB   t   stuff(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_access_parameterq   s¬    !
 

!



!

%
	c         C   s    |  i  t i t i d d ƒ d  S(   Niþÿÿÿi   (   R%   R   t   error(   R   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_bad_file_descí   s    c         C   sí   t  t d ƒ } d } t | ƒ } | i | ƒ | i ƒ  t i | i ƒ  | ƒ } | i ƒ  x‚ t | d ƒ D]p } xg t | | d ƒ D]R } | | | !} |  i	 | i
 | ƒ | i
 | ƒ ƒ |  i	 | i
 | d ƒ d ƒ q… Wqk W| i ƒ  d  S(   Ns   w+t   aabaac deef  aa i   t   xiÿÿÿÿ(   R   R    R   R   R   R   R   R   t   rangeR   R   (   R   R*   t   datat   nR+   R.   t   finisht   slice(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_tougher_findñ   s    

  "%c         C   s	  t  t d ƒ } d } t | ƒ } | i | ƒ | i ƒ  t i | i ƒ  | ƒ } | i ƒ  |  i | i	 d ƒ d ƒ |  i | i	 d ƒ d ƒ |  i | i	 d d d ƒ d ƒ |  i | i	 d d ƒ d ƒ |  i | i	 d d d ƒ d ƒ |  i | i	 d d d	 ƒ d ƒ d  S(
   Ns   w+s   one two onest   onei    t   onesi   iÿÿÿÿi   iþÿÿÿ(
   R   R    R   R   R   R   R   R   R   R   (   R   R*   RS   RT   R+   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_find_end  s    

c         C   s  t  t d ƒ } d } t | ƒ } | i | ƒ | i ƒ  t i | i ƒ  | ƒ } | i ƒ  |  i | i	 d ƒ d ƒ |  i | i	 d ƒ d ƒ |  i | i	 d d d ƒ d ƒ |  i | i	 d d d ƒ d ƒ |  i | i	 d d	 d ƒ d ƒ |  i | i	 d d	 d ƒ d ƒ d  S(
   Ns   w+s   one two onesRX   i   s   one i    iÿÿÿÿiþÿÿÿi   (
   R   R    R   R   R   R   R   R   R   t   rfind(   R   R*   RS   RT   R+   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt
   test_rfind  s    

c         C   sy   t  t d ƒ } | i d d ƒ | i ƒ  t  t ƒ } t i | i ƒ  d d t i ƒ} | i ƒ  | i ƒ  | i ƒ  d  S(   Ns   w+i   i   R3   R5   i   i   (   R   R    R   R   R   R   R>   (   R   R*   t   mf(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_double_close(  s    
!

c         C   s³   t  t d ƒ oŸ t t d ƒ } | i d	 d ƒ | i ƒ  t t d ƒ } t i | i ƒ  d ƒ } |  i t	 | ƒ d
 d ƒ |  i | i
 d ƒ d d ƒ | i ƒ  | i ƒ  n d  S(   Nt   stats   w+i   i   R+   s   rb+i    s    Map size should equal file size.i   i   i   i   (   t   hasattrR   R   R    R   R   R   R   R   R   RA   (   R   R*   R]   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_entire_file5  s    

c         C   s}   t  t d ƒ } | i d ƒ | i ƒ  t i | i ƒ  d ƒ } | i d d d ƒ |  i | d d ƒ | i ƒ  | i ƒ  d  S(   Ns   w+t
   ABCDEabcdei
   i   i    t
   ABCDEABCDEs'   Map move should have duplicated front 5(	   R   R    R   R   R   R   t   moveR   R   (   R   R*   R]   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt	   test_moveD  s    

c         C   s‡   t  i  d t ƒ } x+ t t ƒ D] } |  i | | d d ƒ q Wx@ t t ƒ D]2 } t | d @ƒ | | <} |  i | | | ƒ qM Wd  S(   NiÿÿÿÿR   s+   anonymously mmap'ed contents should be zeroiÿ   (   R   R   t   xrangeR   t   chr(   R   R+   RQ   t   ch(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_anonymousQ  s      c         C   sÀ   d i  d „  t t d ƒ ƒ Dƒ ƒ } t i d t | ƒ ƒ } | | (|  i | | ƒ d } x^ | D]V } xM | D]E } x< | d D]0 } |  i | | | | … | | | | … ƒ q€ Wqo Wqb Wd  S(   Nt    c         s   s   x |  ] } t  | ƒ Vq Wd  S(   N(   Rg   (   t   .0R:   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pys	   <genexpr>]  s   	 i   iÿÿÿÿi    i   i   i   i,  iþÿÿÿiáÿÿÿiÔþÿÿ(
   i    Ni   i   i   i,  iÿÿÿÿiþÿÿÿiáÿÿÿiÔþÿÿ(   t   joint   reversedRR   R   R   R   R    (   R   t   sR+   t   indicesR.   t   stopt   step(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_extended_getslice[  s    %   c   	   
   C   s
  d i  d „  t t d ƒ ƒ Dƒ ƒ } t i d t | ƒ ƒ } d } xÀ | D]¸ } x¯ | D]§ } xž | d D]’ } | | (|  i | | ƒ t | ƒ } | | | | … } d i  t | ƒ ƒ } | | | | | … <| | | | | … <|  i | d i  | ƒ ƒ qh WqW WqJ Wd  S(   NRj   c         s   s   x |  ] } t  | ƒ Vq Wd  S(   N(   Rg   (   Rk   R:   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pys	   <genexpr>k  s   	 i   iÿÿÿÿi    i   i   i   i,  iþÿÿÿiáÿÿÿiÔþÿÿ(
   i    Ni   i   i   i,  iÿÿÿÿiþÿÿÿiáÿÿÿiÔþÿÿ(	   Rl   Rm   RR   R   R   R    R   t   listt   assertEquals(	   R   Rn   R+   Ro   R.   Rp   Rq   t   LRS   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_extended_set_del_slicei  s"    %   c         C   sS   | i  d | ƒ | i  d ƒ | i  d | d ƒ | i ƒ  t i | i ƒ  d ƒ S(   NR   R   i   i    (   R   R   R   R   (   R   R*   t   halfsize(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   make_mmap_file}  s
    
c         C   su  t  t d ƒ } z-t i } |  i | | ƒ } | i ƒ  | i ƒ  | d } t  t d ƒ } xx d d d  g D]g } y2 t i | i ƒ  | d | ƒ} |  i d d ƒ Wn t	 t
 t f j
 o qj X|  i d d ƒ qj W| i ƒ  t  t d ƒ } t i | i ƒ  | | d | ƒ} |  i | d d	 !d
 ƒ | i ƒ  | i ƒ  Wd  | i ƒ  y t i t ƒ Wn t j
 o n XXd  S(   Ns   w+bi   s   r+biþÿÿÿiÿÿÿÿt   offseti    i   i   R   (   R   R    R   t   ALLOCATIONGRANULARITYRx   R   R    R   R   R&   R?   t   OverflowErrorR   R   R	   (   R   R*   Rw   R+   RK   Ry   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_offset…  s6    	


 
"

c         C   s'   d t  i  f d „  ƒ  Y} | t ƒ d  S(   Nt	   anon_mmapc           B   s   e  Z d  „  Z RS(   c         _   s   t  i  i |  d | | Ž S(   Niÿÿÿÿ(   R   t   __new__(   t   klasst   argst   kwargs(    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyR~   «  s    (   t   __name__t
   __module__R~   (    (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyR}   ª  s   (   R   R   (   R   R}   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_subclass©  s    c         C   s‰   t  t d ƒ p d  Sd } t t d ƒ i d | ƒ t t d ƒ } t i | i ƒ  | d t i ƒ} |  i t | i d ƒ | i	 ƒ  d  S(   NRJ   i
   R2   R3   R4   R=   R   (
   R`   R   R   R    R   R   RJ   R%   R?   R   (   R   RK   R*   R+   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   test_prot_readonly¯  s    !c         C   s9   |  i  t t i t ƒ ƒ |  i  d t t i ƒ j ƒ d  S(   Ns
   mmap.error(   t   assert_t
   issubclassR   RN   t   EnvironmentErrorR   (   R   (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt
   test_error¹  s    (   R‚   Rƒ   R   R
   R1   RM   RO   RW   RZ   R\   R^   Ra   Re   Ri   Rr   Rv   Rx   R|   R„   R…   R‰   (    (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyR      s&   			]	|								
				$		
c           C   s   t  t ƒ d  S(   N(   R   R   (    (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt	   test_main¾  s    t   __main__(   t   test.test_supportR    R   R   t   unittestR   R   R   t   TestCaseR   RŠ   R‚   (    (    (    s+   /mit/python/lib/python2.6/test/test_mmap.pyt   <module>   s   	ÿ ·	