ó
Š]c           @   s¢   d  Z  d d l Z d d l Z d d l Z d d l m Z m Z d d l m Z d d l	 m
 Z
 d e j f d „  ƒ  YZ d „  Z e d	 k rž e e ƒ  ƒ n  d S(
   s"   Tests for distutils.unixccompiler.iÿÿÿÿN(   t   EnvironmentVarGuardt   run_unittest(   t	   sysconfig(   t   UnixCCompilert   UnixCCompilerTestCasec           B   s†   e  Z d  „  Z d „  Z e j e j d k d ƒ d „  ƒ Z e j	 e j d k d ƒ d „  ƒ Z
 e j	 e j d k d ƒ d „  ƒ Z RS(	   c         C   s>   t  j |  _ t j |  _ d t f d „  ƒ  Y} | ƒ  |  _ d  S(   Nt   CompilerWrapperc           B   s   e  Z d  „  Z RS(   c         S   s   |  j  d ƒ S(   Ns   /foo(   t   runtime_library_dir_option(   t   self(    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt	   rpath_foo   s    (   t   __name__t
   __module__R   (    (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR      s   (   t   syst   platformt   _backup_platformR   t   get_config_vart   _backup_get_config_varR   t   cc(   R   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt   setUp   s    c         C   s   |  j  t _ |  j t _ d  S(   N(   R   R   R   R   R   R   (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt   tearDown   s    t   win32s   can't test on Windowsc         C   s\  d t  _ |  j |  j j ƒ  d ƒ d t  _ t j } d „  } | t _ |  j |  j j ƒ  d d g ƒ d „  } | t _ |  j |  j j ƒ  d d g ƒ d „  } | t _ |  j |  j j ƒ  d d g ƒ | t _ d	 t  _ |  j |  j j ƒ  d
 d g ƒ d t  _ |  j |  j j ƒ  d
 d g ƒ d t  _ d „  } | t _ |  j |  j j ƒ  d ƒ d t  _ d „  } | t _ |  j |  j j ƒ  d ƒ d t  _ d „  } | t _ |  j |  j j ƒ  d ƒ d t  _ d „  } | t _ |  j |  j j ƒ  d ƒ d t  _ d „  } | t _ |  j |  j j ƒ  d ƒ d t  _ d „  } | t _ |  j |  j j ƒ  d ƒ d  S(   Nt   darwins   -L/foos   hp-uxc         S   s   d S(   Nt   xxx(    (   t   v(    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt   gcv&   s    s   +sc         S   s   d S(   Nt   gcc(    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   +   s    s   -Wl,+sc         S   s   d S(   Ns   g++(    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   0   s    t   irix646s   -rpaths   /foot   osf1V5t   barc         S   s$   |  d k r d S|  d k r  d Sd  S(   Nt   CCR   t   GNULDt   yes(    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   A   s    s
   -Wl,-R/fooc         S   s$   |  d k r d S|  d k r  d Sd  S(   NR   R   R   t   no(    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   K   s    c         S   s$   |  d k r d S|  d k r  d Sd  S(   NR   s   x86_64-pc-linux-gnu-gcc-4.4.2R   R   (    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   V   s    c         S   s$   |  d k r d S|  d k r  d Sd  S(   NR   R   R   R   (    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   a   s    s   -R/fooc         S   s$   |  d k r d S|  d k r  d Sd  S(   NR   R   R   R   (    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   k   s    t   aixc         S   s   d S(   NR   (    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   u   s    (   R   R   t   assertEqualR   R   R   R   (   R   t   old_gcvR   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt   test_runtime_libdir_option   sT    																														R   s   test only relevant for OS Xc         C   sc   d „  } | t  _ t ƒ  ( } d | d <| d =t  j |  j ƒ Wd  QX|  j |  j j d d ƒ d  S(   Nc         S   s   |  d k r d Sd S(   Nt   LDSHAREDs*   gcc-4.2 -bundle -undefined dynamic_lookup s   gcc-4.2(    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   ~   s    t   my_ccR   R$   i    (   R   R   R    t   customize_compilerR   R!   t	   linker_so(   R   R   t   env(    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt   test_osx_cc_overrides_ldsharedz   s    		
c         C   sf   d „  } | t  _ t ƒ  + } d | d <d | d <t  j |  j ƒ Wd  QX|  j |  j j d d ƒ d  S(   Nc         S   s   |  d k r d Sd S(   NR$   s*   gcc-4.2 -bundle -undefined dynamic_lookup s   gcc-4.2(    (   R   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   Ž   s    R%   R   s   my_ld -bundle -dynamicR$   i    t   my_ld(   R   R   R    R&   R   R!   R'   (   R   R   R(   (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt   test_osx_explicit_ldshared‰   s    		

(   R	   R
   R   R   t   unittestt   skipIfR   R   R#   t
   skipUnlessR)   R+   (    (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyR   
   s
   		$b$c           C   s   t  j t ƒ S(   N(   R,   t	   makeSuiteR   (    (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt
   test_suiteš   s    t   __main__(   t   __doc__t   osR   R,   t   test.test_supportR    R   t	   distutilsR   t   distutils.unixccompilerR   t   TestCaseR   R0   R	   (    (    (    s3   lib/python2.7/distutils/tests/test_unixccompiler.pyt   <module>   s   	