ó
q®¸Qc           @   sÈ   d  Z  d d l Z d d l Z d d l Z d d l m Z d d l m Z d d l m	 Z	 d d l
 m Z d d l m Z d e j e j e j f d	 „  ƒ  YZ d
 „  Z e d k rÄ e e ƒ  ƒ n  d S(   s'   Tests for distutils.command.build_clib.iÿÿÿÿN(   t   run_unittest(   t
   build_clib(   t   DistutilsSetupError(   t   support(   t   find_executablet   BuildCLibTestCasec           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sÚ   |  j  ƒ  \ } } t | ƒ } |  j t | j d ƒ |  j t | j d d g ƒ |  j t | j d
 d g ƒ |  j t | j d d g ƒ |  j t | j d i  f d g ƒ d i  f d i d d	 6f g } | j | ƒ d  S(   Nt   foot   foo1t   foo2i   t   names   another/namet   anothert   goodt   ok(   i   R   (   s   nameR   (   s   nameR   (   s   another/nameR   (   R
   R   (   t   create_distR   t   assertRaisesR   t   check_library_list(   t   selft   pkg_dirt   distt   cmdt   libs(    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt   test_check_library_dist   s    
	
c         C   s4  |  j  ƒ  \ } } t | ƒ } d i  f g | _ |  j t | j ƒ d i d d 6f g | _ |  j t | j ƒ d i d d g d 6f g | _ |  j | j ƒ  d d g ƒ d i d	 d 6f g | _ |  j | j ƒ  d d g ƒ d i d
 d 6f d i d d g d 6f g | _ |  j | j ƒ  d d d d g ƒ d  S(   NR	   i   t   sourcest   at   bt   name2t   ct   d(   R   R   (   R   R   (   R   R   t	   librariesR   R   t   get_source_filest   assertEqual(   R   R   R   R   (    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt   test_get_source_files/   s    c         C   s¹   |  j  ƒ  \ } } t | ƒ } d d d „  ƒ  Y} | ƒ  | _ d i d d 6f g } |  j t | j | ƒ d i t ƒ  d 6f g } | j | ƒ d i t ƒ  d 6f g } | j | ƒ d  S(   Nt   FakeCompilerc           B   s   e  Z d  „  Z e Z RS(   c          _   s   d  S(   N(    (   t   argst   kw(    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt   compileJ   s    (   t   __name__t
   __module__R#   t   create_static_lib(    (    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyR    I   s   	R	   t   notvalidR   (    (   R   R   t   compilerR   R   t   build_librariest   listt   tuple(   R   R   R   R   R    t   lib(    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt   test_build_librariesE   s    c         C   s   |  j  ƒ  \ } } t | ƒ } d | _ | j ƒ  |  j | j d g ƒ d  | _ | j ƒ  |  j | j g  ƒ d | j _ |  j t	 | j ƒ d  S(   Ns   one-dirt   WONTWORK(
   R   R   t   include_dirst   finalize_optionsR   t   Nonet   distributionR   R   R   (   R   R   R   R   (    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt   test_finalize_optionsZ   s    	
	
c   
      C   sI  t  j d k r d  S|  j ƒ  \ } } t | ƒ } t j j | d ƒ } |  j | d ƒ d i | g d 6f g | _ t j j | d ƒ } t j	 | ƒ | | _
 | | _ d d l m } d d	 l m } | ƒ  } | | ƒ xC | j j ƒ  D]2 }	 |	 d  k rqé n  t |	 d
 ƒ d  k ré d  Sqé W| j ƒ  |  j d t j | ƒ k ƒ d  S(   Nt   win32s   foo.cs   int main(void) { return 1;}
R   R   t   buildiÿÿÿÿ(   t   new_compiler(   t   customize_compileri    s   libfoo.a(   t   syst   platformR   R   t   ost   patht   joint
   write_fileR   t   mkdirt
   build_tempt   distutils.ccompilerR6   t   distutils.sysconfigR7   t   executablest   valuesR1   R   t   runt
   assertTruet   listdir(
   R   R   R   R   t   foo_cR?   R6   R7   R(   t   ccmd(    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt   test_runi   s,    			

(   R$   R%   R   R   R-   R3   RI   (    (    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyR      s
   				c           C   s   t  j t ƒ S(   N(   t   unittestt	   makeSuiteR   (    (    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt
   test_suiteŽ   s    t   __main__(   t   __doc__RJ   R:   R8   t   test.test_supportR    t   distutils.command.build_clibR   t   distutils.errorsR   t   distutils.testsR   t   distutils.spawnR   t   TempdirManagert   LoggingSilencert   TestCaseR   RL   R$   (    (    (    s5   /sys/lib/python2.7/distutils/tests/test_build_clib.pyt   <module>   s   		