;
Ìâ"Ic               @   sê   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z m Z m Z m	 Z	 m
 Z
 m Z y( d d l Z e j e j e j ƒ Z Wn e e f k
 o Yn Xd Z Gd „  d e j ƒ Z d „  Z e d k o e ƒ  n d S(	   u9   Test largefile support on system where this makes sense.
i    N(   u   run_unittestu   TESTFNu   verboseu   requiresu   TestSkippedu   unlinkl    y* c             B   sA   |  Ee  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   u@  Test that each file function works as expected for a large
    (i.e. > 2GB, do  we have to check > 4GB) files.

    NOTE: the order of execution of the test methods is important! test_seek
    must run first to create the test file. File cleanup must also be handled
    outside the test instances because of this.

    c          
   C   sÊ   t  o t d ƒ n t t d ƒ j } j ƒ  } zŠ | ~ } | j d ƒ | j d ƒ | j t ƒ | j d ƒ | j	 ƒ  t  o t d ƒ n |  j
 t j | j ƒ  ƒ t j t d ƒ Wd  | ~ QXd  S(   Nu3   create large file via seek (may be sparse file) ...u   wbs   zi    s   au   check file size with os.fstati   (   u   verboseu   printu   openu   TESTFNu   __exit__u	   __enter__u   writeu   seeku   sizeu   flushu   assertEqualu   osu   fstatu   filenou   statu   ST_SIZE(   u   selfu   _[2]u   _[1]u   f(    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu	   test_seek"   s    (
c             C   s=   t  o t d ƒ n |  j t j t ƒ t j t d ƒ d  S(   Nu   check file size with os.stati   (   u   verboseu   printu   assertEqualu   osu   statu   TESTFNu   ST_SIZEu   size(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu   test_osstat/   s    c          
   C   sw  t  o t d ƒ n t t d ƒ j } j ƒ  } z7| ~ } |  j | j ƒ  d ƒ |  j | j d ƒ d ƒ |  j | j ƒ  d ƒ | j	 d ƒ |  j | j ƒ  d ƒ | j	 d d ƒ |  j | j ƒ  d ƒ | j	 d ƒ |  j | j ƒ  d ƒ | j	 d d ƒ |  j | j ƒ  d ƒ | j	 d d ƒ |  j | j ƒ  d ƒ | j	 d d ƒ |  j | j ƒ  d ƒ | j	 d d ƒ |  j | j ƒ  t
 d d ƒ | j	 d	 d ƒ |  j | j ƒ  t
 d d
 ƒ | j	 t
 d d ƒ |  j | j ƒ  d ƒ | j	 t
 ƒ |  j | j ƒ  t
 ƒ |  j | j d ƒ d ƒ | j	 t
 d d ƒ |  j | j d ƒ d ƒ |  j | j ƒ  d ƒ Wd  | ~ QXd  S(   Nu;   play around with seek() and read() with the built largefileu   rbi    i   s   zi*   iT   i   iöÿÿÿi
   s   a(   u   verboseu   printu   openu   TESTFNu   __exit__u	   __enter__u   assertEqualu   tellu   readu   seeku   size(   u   selfu   _[2]u   _[1]u   f(    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu   test_seek_read4   s<    (c             C   s£  t  o t d ƒ n t t d ƒ j } j ƒ  } zc| ~ } |  j t j | j	 ƒ  d d ƒ d ƒ |  j t j | j	 ƒ  d d ƒ d ƒ |  j t j | j	 ƒ  d d ƒ d ƒ |  j t j | j	 ƒ  d d ƒ d ƒ |  j t j | j	 ƒ  d d ƒ t
 d d ƒ |  j t j | j	 ƒ  d d ƒ t
 d d	 ƒ |  j t j | j	 ƒ  t
 d d ƒ d ƒ |  j t j | j	 ƒ  t
 d ƒ t
 ƒ |  j | j d ƒ d
 ƒ Wd  | ~ QXd  S(   Nu4   play around with os.lseek() with the built largefileu   rbi    i*   i   iT   i   iöÿÿÿi
   s   a(   u   verboseu   printu   openu   TESTFNu   __exit__u	   __enter__u   assertEqualu   osu   lseeku   filenou   sizeu   read(   u   selfu   _[2]u   _[1]u   f(    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu
   test_lseekU   s    (%%%%--*%c          
   C   s­  t  o t d ƒ n t t d ƒ j } j ƒ  } zm| ~ } t | d ƒ p t d ƒ ‚ n | j d d ƒ |  j	 | j
 ƒ  t d ƒ t d } | j | ƒ | j ƒ  |  j	 | j
 ƒ  | ƒ | j d d ƒ |  j	 | j
 ƒ  | ƒ | d 8} | j d	 ƒ | j | ƒ |  j	 | j
 ƒ  | ƒ | j d d ƒ |  j	 | j
 ƒ  | ƒ | j d ƒ | j d ƒ |  j	 | j
 ƒ  d ƒ | j d ƒ |  j	 t | j ƒ  ƒ d ƒ Wd  | ~ QXd  S(
   Nu   try truncateu   r+bu   truncateu.   open().truncate() not available on this systemi    i   i   i
   i*   (   u   verboseu   printu   openu   TESTFNu   __exit__u	   __enter__u   hasattru   TestSkippedu   seeku   assertEqualu   tellu   sizeu   truncateu   lenu   read(   u   selfu   _[2]u   _[1]u   fu   newsize(    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu   test_truncated   s0    (


N(   u   __name__u
   __module__u   __doc__u	   test_seeku   test_osstatu   test_seek_readu
   test_lseeku   test_truncate(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu   TestCase   s   
			!	u   TestCasec              C   s   t  j d  d … d k p t  j d k o t d d t t ƒ ƒ n t t d ƒ }  y( |  j d ƒ |  j d ƒ |  j	 ƒ  Wn: t
 t f k
 o( |  j ƒ  t t ƒ t d	 ƒ ‚ Yn X|  j ƒ  t j ƒ  } | j t d
 ƒ ƒ | j t d ƒ ƒ | j t d ƒ ƒ | j t d ƒ ƒ t t d ƒ j } j ƒ  } z4 | ~ }  t |  d ƒ o | j t d ƒ ƒ n Wd  | ~ QXt t ƒ z t | ƒ Wd  t t ƒ Xd  S(   Ni   u   winu   darwinu	   largefileu-   test requires %s bytes and a long time to runu   wbl       s   xu*   filesystem does not have largefile supportu	   test_seeku   test_osstatu   test_seek_readu
   test_lseeku   wu   truncateu   test_truncate(   u   sysu   platformu   requiresu   stru   sizeu   openu   TESTFNu   seeku   writeu   flushu   IOErroru   OverflowErroru   closeu   unlinku   TestSkippedu   unittestu	   TestSuiteu   addTestu   TestCaseu   __exit__u	   __enter__u   hasattru   run_unittest(   u   fu   suiteu   _[2]u   _[1](    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu	   test_main†   s2    *


(#
u   __main__(   u   __doc__u   osu   statu   sysu   unittestu   test.supportu   run_unittestu   TESTFNu   verboseu   requiresu   TestSkippedu   unlinku   signalu   SIGXFSZu   SIG_IGNu
   oldhandleru   ImportErroru   AttributeErroru   sizeu   TestCaseu	   test_mainu   __name__(    (    (    u0   /mit/python/lib/python3.0/test/test_largefile.pyu   <module>   s   .n	(