ó
ŠwÛjc           @   sÀ   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 e j
 e j j d ƒ d ƒ d e j f d „  ƒ  Yƒ Z d „  Z e d k r¼ e ƒ  n  d S(	   s=   
Test suite for _osx_support: shared OS X support functions.
iÿÿÿÿNt   darwins   requires OS Xt   Test_OSXSupportc           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 RS(   c         C   s‰   d  |  _ d |  _ t j j t j ƒ  ƒ |  _ t j	 j
 ƒ  |  _ |  j |  j j ƒ x0 d D]( } | |  j k rY |  j j | ƒ qY qY Wd  S(   Nt   bogus_program_xxxxt   CFLAGSt   LDFLAGSt   CPPFLAGSt
   BASECFLAGSt	   BLDSHAREDt   LDSHAREDt   CCt   CXXt	   PY_CFLAGSt
   PY_LDFLAGSt   PY_CPPFLAGSt   PY_CORE_CFLAGS(   R   R   R   R   R   R   R	   R
   R   R   R   R   (   t   Nonet   maxDifft	   prog_namet   ost   patht   abspatht   getcwdt   temp_path_dirt   testt   test_supportt   EnvironmentVarGuardt   envt
   addCleanupt   __exit__t   unset(   t   selft   cv(    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   setUp   s    		  
c            s$   ˆ j  ‡  ‡ f d †  ˆ  Dƒ ƒ d  S(   Nc         3   s7   |  ]- } ˆ  | ˆ | k r d  | ˆ  | f Vq d S(   t   _OSX_SUPPORT_INITIAL_N(    (   t   .0t   k(   t   config_varst   expected_vars(    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pys	   <genexpr>#   s   (   t   update(   R   R$   R%   (    (   R$   R%   sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt!   add_expected_saved_initial_values    s    c         C   sõ   |  j  d r( |  j  d d |  j  d <n  |  j  d t j j |  j ƒ |  j  d <t j j |  j ƒ |  j	 t
 j |  j ƒ ƒ |  j t j j |  j ƒ t |  j d ƒ � } | j d ƒ Wd  QXt j |  j t j ƒ |  j |  j t
 j |  j ƒ ƒ d  S(   Nt   PATHt   :t   ws   #!/bin/sh
/bin/echo OK
(   R   R   R   R   R   R   R   t   unlinkR   t   assertIsNonet   _osx_supportt   _find_executableR   t   opent   writet   chmodt   statt   S_IRWXUt   assertEqual(   R   t   f(    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__find_executable'   s    'c         C   sÙ   |  j  d r( |  j  d d |  j  d <n  |  j  d t j j |  j ƒ |  j  d <t j j |  j ƒ |  j	 t j j |  j ƒ t
 |  j d ƒ � } | j d ƒ Wd  QXt j |  j t j ƒ |  j d t j |  j ƒ ƒ d  S(   NR(   R)   R*   s#   #!/bin/sh
/bin/echo ExpectedOutput
t   ExpectedOutput(   R   R   R   R   R   R   R   R+   R   R   R/   R0   R1   R2   R3   R4   R-   t   _read_output(   R   R5   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__read_output4   s    '	c         C   s/   t  j d ƒ } |  j t j j | ƒ d ƒ d  S(   Nt   ccs!   cc not found - check xcode-select(   R-   t   _find_build_toolt
   assertTrueR   R   t   isfile(   R   t   out(    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__find_build_tool@   s    c         C   s*   |  j  t j ƒ  d j t j ƒ  ƒ ƒ d  S(   Ni    (   R<   t   platformt   mac_vert
   startswithR-   t   _get_system_version(   R   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__get_system_versionE   s    c         C   sj   i d d 6} i d d 6} d } d } t  j | | | ƒ |  j | | ƒ t  j | ƒ |  j | | ƒ d  S(   Ns   gcc-test -pthreadsR	   s   clang -pthreads(   R-   t   _save_modified_valuet   assertNotEqualt   _remove_original_valuesR4   (   R   R$   R%   R   t   newvalue(    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__remove_original_valuesI   s    

c         C   s]   i d d 6} i d d 6} |  j  | | ƒ d } d } t j | | | ƒ |  j | | ƒ d  S(   Ns   gcc-test -pthreadsR	   s   clang -pthreads(   R'   R-   RE   R4   (   R   R$   R%   R   RH   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__save_modified_valueW   s    

c         C   sL   i d d 6} | j  ƒ  } d } d } t j | | | ƒ |  j | | ƒ d  S(   Ns   gcc-test -pthreadsR	   (   t   copyR-   RE   R4   (   R   R$   R%   R   RH   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt#   test__save_modified_value_unchangedd   s    
c         C   s\   d d  l  } t d „  | j ƒ  d j d ƒ d d !Dƒ ƒ } |  j | d k t j ƒ  ƒ d  S(	   Niÿÿÿÿc         s   s   |  ] } t  | ƒ Vq d  S(   N(   t   int(   R"   t   i(    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pys	   <genexpr>p   s    i    t   .i   i
   i   (   i
   i   (   R@   t   tupleRA   t   splitR4   R-   t   _supports_universal_builds(   R   R@   t   mac_ver_tuple(    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__supports_universal_buildsn   s
    	'c         C   sd  d d f } i d d 6d d 6d	 d
 6d d 6d d 6d d 6d d 6} i d d 6d d 6d	 d
 6d d 6d d 6d d 6d d 6} |  j  | | ƒ |  j d r¨ d |  j d n d } t j j |  j ƒ | |  j d <xv | D]n \ } } t j j | ƒ |  j	 t j j | ƒ t
 | d ƒ � } | j d | ƒ Wd  QXt j | t j ƒ qÕ W|  j | t j | ƒ ƒ d  S(   Ns   gcc-tests    i686-apple-darwin11-llvm-gcc-4.2t   clangs   clang version 3.1s   gcc-test -pthreadsR	   s	   cc++-testR
   s3   -fno-strict-aliasing  -g -O3 -arch ppc -arch i386  R   s   -arch ppc -arch i386   -gR   s-   -I. -isysroot /Developer/SDKs/MacOSX10.4u.sdkR   s(   gcc-test -bundle -arch ppc -arch i386 -gR   sR   gcc-test -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gR   s   clang -pthreadss   clang++s%   clang -bundle -arch ppc -arch i386 -gsO   clang -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gR(   R)   t    R*   s   #!/bin/sh
/bin/echo (   s   gcc-tests    i686-apple-darwin11-llvm-gcc-4.2(   RU   s   clang version 3.1(   R'   R   R   R   R   R   R   R   R+   R   R/   R0   R1   R2   R3   R4   R-   t   _find_appropriate_compiler(   R   t	   compilersR$   R%   t   suffixt   c_namet   c_outputR5   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__find_appropriate_compileru   s<    	

$ 	c         C   s   i d d 6d d 6d d 6d d 6d	 d
 6} i d d 6d d 6d d 6d d 6d d
 6} |  j  | | ƒ |  j | t j | ƒ ƒ d  S(   Ns3   -fno-strict-aliasing  -g -O3 -arch ppc -arch i386  R   s   -arch ppc -arch i386   -gR   s-   -I. -isysroot /Developer/SDKs/MacOSX10.4u.sdkR   s(   gcc-4.0 -bundle  -arch ppc -arch i386 -gR   sR   gcc-4.0 -bundle  -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gR   s    -fno-strict-aliasing  -g -O3    s       -gs   -I.  s   gcc-4.0 -bundle    -gs   gcc-4.0 -bundle      -g(   R'   R4   R-   t   _remove_universal_flags(   R   R$   R%   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__remove_universal_flagsœ   s     

	c         C   s5  i d d 6d d 6d d 6d d 6d	 d
 6d d 6} i d d 6d d 6d d 6d d 6d d
 6d d 6} |  j  | | ƒ |  j d rŽ d |  j d n d } t j j |  j ƒ | |  j d <d } t j j | ƒ |  j	 t j j | ƒ t
 | d ƒ � } | j d ƒ Wd  QXt j | t j ƒ |  j | t j | ƒ ƒ d  S(   NRU   R	   s3   -fno-strict-aliasing  -g -O3 -arch ppc -arch i386  R   s   -arch ppc -arch i386   -gR   s-   -I. -isysroot /Developer/SDKs/MacOSX10.4u.sdkR   s(   gcc-4.0 -bundle  -arch ppc -arch i386 -gR   sR   gcc-4.0 -bundle  -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gR   s*   -fno-strict-aliasing  -g -O3  -arch i386  s    -arch i386   -gs   gcc-4.0 -bundle   -arch i386 -gsI   gcc-4.0 -bundle   -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gR(   R)   RV   R*   s   #!/bin/sh
exit 255(   R'   R   R   R   R   R   R   R   R+   R   R/   R0   R1   R2   R3   R4   R-   t   _remove_unsupported_archs(   R   R$   R%   RY   RZ   R5   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__remove_unsupported_archs²   s4    

$ 	c         C   sš   d |  j  d <i d d 6d d 6d d 6d	 d
 6d d 6d d 6} i d d 6d d 6d d 6d	 d
 6d d 6d d 6} |  j | | ƒ |  j | t j | ƒ ƒ d  S(   Ns   -arch x86_64t	   ARCHFLAGSRU   R	   s3   -fno-strict-aliasing  -g -O3 -arch ppc -arch i386  R   s   -arch ppc -arch i386   -gR   s-   -I. -isysroot /Developer/SDKs/MacOSX10.4u.sdkR   s(   gcc-4.0 -bundle  -arch ppc -arch i386 -gR   sQ   gcc-4.0 -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gR   s-   -fno-strict-aliasing  -g -O3     -arch x86_64s       -g -arch x86_64s"   gcc-4.0 -bundle    -g -arch x86_64sK   gcc-4.0 -bundle   -isysroot /Developer/SDKs/MacOSX10.4u.sdk -g -arch x86_64(   R   R'   R4   R-   t   _override_all_archs(   R   R$   R%   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__override_all_archsÔ   s&    

	c         C   s�   i d d 6d d 6d d 6d d 6d	 d
 6d d 6} i d d 6d d 6d d 6d d 6d	 d
 6d d 6} |  j  | | ƒ |  j | t j | ƒ ƒ d  S(   NRU   R	   s[   -fno-strict-aliasing  -g -O3 -arch ppc -arch i386  -isysroot /Developer/SDKs/MacOSX10.1.sdkR   s   -arch ppc -arch i386   -gR   s,   -I. -isysroot /Developer/SDKs/MacOSX10.1.sdkR   s(   gcc-4.0 -bundle  -arch ppc -arch i386 -gR   sQ   gcc-4.0 -bundle  -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.1.sdk -gR   s4   -fno-strict-aliasing  -g -O3 -arch ppc -arch i386   s   -I.  s)   gcc-4.0 -bundle  -arch ppc -arch i386  -g(   R'   R4   R-   t   _check_for_unavailable_sdk(   R   R$   R%   (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test__check_for_unavailable_sdkî   s$    

	c         C   s@   i d d 6d d 6} t  j | d d d ƒ } |  j d | ƒ d  S(	   Ns[   -fno-strict-aliasing  -g -O3 -arch ppc -arch i386  -isysroot /Developer/SDKs/MacOSX10.1.sdkR   s   10.6t   MACOSX_DEPLOYMENT_TARGETt    t   macosxt   fat(   Rh   s   10.6Ri   (   R-   t   get_platform_osxR4   (   R   R$   t   result(    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   test_get_platform_osx	  s
    
(   t   __name__t
   __module__R    R'   R6   R9   R?   RD   RI   RJ   RL   RT   R\   R^   R`   Rc   Re   Rl   (    (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyR      s    									
		'		"		c           C   s&   t  j d k r" t j j t ƒ n  d  S(   NR    (   t   sysR@   R   R   t   run_unittestR   (    (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt	   test_main  s    t   __main__(   t   __doc__R   R@   t   shutilR2   Ro   t   unittestt   test.test_supportR   R-   t
   skipUnlessRB   t   TestCaseR   Rq   Rm   (    (    (    sŒ   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test__osx_support.pyt   <module>   s   ÿ 	