
    6bh#6                         	 d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZ ej                  ej                  j                  d      d       G d dej                               Zedk(  r ej                          yy)    N)	os_helperdarwinzrequires OS Xc                   x    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y)Test_OSXSupportc                 *   d | _         d| _        t        j                  j	                  t        j
                               | _        | j                  t        j                               | _
        | j                  j                  dddddddd	d
dddd       y )Nbogus_program_xxxxCFLAGSLDFLAGSCPPFLAGS
BASECFLAGS	BLDSHAREDLDSHAREDCCCXX	PY_CFLAGS
PY_LDFLAGSPY_CPPFLAGSPY_CORE_CFLAGSPY_CORE_LDFLAGS)maxDiff	prog_nameospathabspathgetcwdtemp_path_direnterContextr   EnvironmentVarGuardenvunsetselfs    @/opt/python-3.12.12/usr/lib/python3.12/test/test__osx_support.pysetUpzTest_OSXSupport.setUp   su    -WW__RYY[9$$Y%B%B%DEi+z4;m/		
    c                 >    j                  fdD               y )Nc              3   H   K   | ]  }|   |   k7  rd |z   |   f  yw)_OSX_SUPPORT_INITIAL_N ).0kconfig_varsexpected_varss     r#   	<genexpr>zDTest_OSXSupport.add_expected_saved_initial_values.<locals>.<genexpr>"   s;      ;)4A"1~q)99 6q8A )4s   ")updater"   r,   r-   s    ``r#   !add_expected_saved_initial_valuesz1Test_OSXSupport.add_expected_saved_initial_values   s      	 ;)4; 	;r%   c                     | j                   d   r| j                   d   dz   | j                   d<   | j                   d   t        j                  j                  | j                        z   | j                   d<   t        j                  | j                         | j                  t        j                  | j                               | j                  t
        j                  | j                         t        | j                  d      5 }|j                  d       d d d        t        j                  | j                  t        j                          | j#                  | j                  t        j                  | j                               y # 1 sw Y   qxY w)NPATH:wz#!/bin/sh
/bin/echo OK
)r   r   r   r   r   r   unlinkr   assertIsNone_osx_support_find_executable
addCleanupopenwritechmodstatS_IRWXUassertEqualr"   fs     r#   test__find_executablez%Test_OSXSupport.test__find_executable&   s   88F#xx/#5DHHV88F+bggood>P>P.QQ(,77GH	(($..9$..#&!GG/0 '
.(99$..I	K '&s   FFc                    | j                   d   r| j                   d   dz   | j                   d<   | j                   d   t        j                  j                  | j                        z   | j                   d<   t        j                  | j                         | j                  t
        j                  | j                         t        | j                  d      5 }|j                  d       d d d        t        j                  | j                  t        j                         | j                  dt        j                   | j                               y # 1 sw Y   gxY w)Nr3   r4   r5   z##!/bin/sh
/bin/echo ExpectedOutput
ExpectedOutput)r   r   r   r   r   r   r6   r   r:   r;   r<   r=   r>   r?   r@   r8   _read_outputrA   s     r#   test__read_outputz!Test_OSXSupport.test__read_output3   s    88F#xx/#5DHHV88F+bggood>P>P.QQ(	(($..9$..#&!GG;< '
.)(55dnnE	G '&s   EEc                     t        j                  d      }| j                  t        j                  j                  |      d       y )Nccz!cc not found - check xcode-select)r8   _find_build_tool
assertTruer   r   isfile)r"   outs     r#   test__find_build_toolz%Test_OSXSupport.test__find_build_tool?   s1    ++D1s+?	Ar%   c                     | j                  t        j                         d   j                  t	        j
                                      y )Nr   )rK   platformmac_ver
startswithr8   _get_system_versionr!   s    r#   test__get_system_versionz(Test_OSXSupport.test__get_system_versionD   s7    ((*1-88$0$D$D$FH 	Ir%   c                     ddi}ddi}d}d}t        j                  |||       | j                  ||       t        j                  |       | j	                  ||       y Nr   gcc-test -pthreadsclang -pthreads)r8   _save_modified_valueassertNotEqual_remove_original_valuesr@   r"   r,   r-   cvnewvalues        r#   test__remove_original_valuesz,Test_OSXSupport.test__remove_original_valuesH   sj    "
 	
 $))+r8DM;7,,[94r%   c                     ddi}ddi}| j                  ||       d}d}t        j                  |||       | j                  ||       y rV   )r1   r8   rY   r@   r\   s        r#   test__save_modified_valuez)Test_OSXSupport.test__save_modified_valueV   s\    "
 	
 	..{MJ$))+r8D4r%   c                     ddi}|j                         }d}d}t        j                  |||       | j                  ||       y )Nr   rW   )copyr8   rY   r@   r\   s        r#   #test__save_modified_value_unchangedz3Test_OSXSupport.test__save_modified_value_unchangedc   sK    "
 $((*'))+r8D4r%   c                     dd l }t        d  |j                         d   j                  d      dd D              }| j	                  |dk\  t        j                                y )Nr   c              3   2   K   | ]  }t        |        y w)N)int)r*   is     r#   r.   zBTest_OSXSupport.test__supports_universal_builds.<locals>.<genexpr>o   s      CA *+c!fAs   .   )
      )rP   tuplerQ   splitr@   r8   _supports_universal_builds)r"   rP   mac_ver_tuples      r#   test__supports_universal_buildsz/Test_OSXSupport.test__supports_universal_buildsm   sc     C,H,,.q177<QqAC C'1(CCE	Gr%   c                    d}dddddddd	}d
ddddddd	}| j                  ||       | j                  d   rd| j                  d   z   nd}t        j                  j	                  | j
                        |z   | j                  d<   |D ]  \  }}t        j                  |       | j                  t        j                  |       t        |d      5 }|j                  d|z          d d d        t        j                  |t        j                          | j                  |t        j                   |             y # 1 sw Y   UxY w)N))zgcc-testz i686-apple-darwin11-llvm-gcc-4.2)clangzclang version 3.1rW   z	cc++-test3-fno-strict-aliasing  -g -O3 -arch ppc -arch i386  -arch ppc -arch i386   -g--I. -isysroot /Developer/SDKs/MacOSX10.4u.sdkz(gcc-test -bundle -arch ppc -arch i386 -gzRgcc-test -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -g)r   r   r	   r
   r   r   r   rX   zclang++z%clang -bundle -arch ppc -arch i386 -gzOclang -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gr3   r4    r5   z#!/bin/sh
/bin/echo )r1   r   r   r   r   r   r   r6   r:   r;   r<   r=   r>   r?   r@   r8   _find_appropriate_compiler)r"   	compilersr,   r-   suffixc_namec_outputrB   s           r#   test__find_appropriate_compilerz/Test_OSXSupport.test__find_appropriate_compilert   s5   	
 #G.C?G	
  G.C<G	
 	..{MJ-1XXf-=#((277??4+=+=>G )FHV$OOI,,f5fc"a/(:; #HHVT\\* !* 	(CC$/1	2 #"s   D77E 	c                     dddddd}ddd	d
dd}| j                  ||       | j                  |t        j                  |             y )Nrt   ru   rv   (gcc-4.0 -bundle  -arch ppc -arch i386 -gRgcc-4.0 -bundle  -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gr	   r
   r   r   r    -fno-strict-aliasing  -g -O3        -g-I.  gcc-4.0 -bundle    -ggcc-4.0 -bundle      -gr1   r@   r8   _remove_universal_flagsr0   s      r#   test__remove_universal_flagsz,Test_OSXSupport.test__remove_universal_flags   sf    G.C?G
 5,-
 	..{MJ(@@$/1	2r%   c                     dddddd}ddd	d
dd}| j                  ||       | j                  |t        j                  |             y )Nrt   ru   z,-I. -isysroot/Developer/SDKs/MacOSX10.4u.sdkr   zQgcc-4.0 -bundle  -arch ppc -arch i386 -isysroot/Developer/SDKs/MacOSX10.4u.sdk -gr   r   r   r   r   r   r   r0   s      r#   &test__remove_universal_flags_alternatez6Test_OSXSupport.test__remove_universal_flags_alternate   si     H.B?F
 5,-
 	..{MJ(@@$/1	2r%   c                 h   ddddddd}ddd	dd
dd}| j                  ||       | j                  d   rd| j                  d   z   nd}t        j                  j	                  | j
                        |z   | j                  d<   d}t        j                  |       | j                  t        j                  |       t        |d      5 }|j                  d       d d d        t        j                  |t        j                         | j                  |t        j                   |             y # 1 sw Y   SxY w)Nrs   rt   ru   rv   r   r   r   r	   r
   r   r   r   z*-fno-strict-aliasing  -g -O3  -arch i386  z -arch i386   -gzgcc-4.0 -bundle   -arch i386 -gzIgcc-4.0 -bundle   -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gr3   r4   rw   r5   z#!/bin/sh
exit 255)r1   r   r   r   r   r   r   r6   r:   r;   r<   r=   r>   r?   r@   r8   _remove_unsupported_archs)r"   r,   r-   rz   r{   rB   s         r#   test__remove_unsupported_archsz.Test_OSXSupport.test__remove_unsupported_archs   s   G.C?G
 >%C6G
 	..{MJ-1XXf-=#((277??4+=+=>G 	((&1&#!GG)* 
&(BB$/1	2 s   D((D1c                     d| j                   d<   ddddddd	}dd
ddddd	}| j                  ||       | j                  |t        j                  |             y )Nz-arch x86_64	ARCHFLAGSrs   rt   ru   rv   r   zQgcc-4.0 -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gr   z--fno-strict-aliasing  -g -O3     -arch x86_64z    -g -arch x86_64z"gcc-4.0 -bundle    -g -arch x86_64zKgcc-4.0 -bundle   -isysroot /Developer/SDKs/MacOSX10.4u.sdk -g -arch x86_64)r   r1   r@   r8   _override_all_archsr0   s      r#   test__override_all_archsz(Test_OSXSupport.test__override_all_archs   s}     .G.C?G
 A(C9J
 	..{MJ(<<$/1	2r%   c                     ddddddd}dddd	dd
d}| j                  ||       | j                  |t        j                  |             y )Nrs   [-fno-strict-aliasing  -g -O3 -arch ppc -arch i386  -isysroot /Developer/SDKs/MacOSX10.1.sdkru   z,-I. -isysroot /Developer/SDKs/MacOSX10.1.sdkr   zQgcc-4.0 -bundle  -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.1.sdk -gr   4-fno-strict-aliasing  -g -O3 -arch ppc -arch i386   r   )gcc-4.0 -bundle  -arch ppc -arch i386  -gr1   r@   r8   _check_for_unavailable_sdkr0   s      r#   test__check_for_unavailable_sdkz/Test_OSXSupport.test__check_for_unavailable_sdk  ss    C.B?F	
 .?	
 	..{MJ(CC$/1	2r%   c                     ddddddd}dddd	dd
d}| j                  ||       | j                  |t        j                  |             y )Nrs   zZ-fno-strict-aliasing  -g -O3 -arch ppc -arch i386  -isysroot/Developer/SDKs/MacOSX10.1.sdkru   z+-I. -isysroot/Developer/SDKs/MacOSX10.1.sdkr   zPgcc-4.0 -bundle  -arch ppc -arch i386 -isysroot/Developer/SDKs/MacOSX10.1.sdk -gr   r   r   r   r   r0   s      r#   )test__check_for_unavailable_sdk_alternatez9Test_OSXSupport.test__check_for_unavailable_sdk_alternate  su     B.A?E	
 .?	
 	..{MJ(CC$/1	2r%   c                 b    ddd}t        j                  |ddd      }| j                  d|       y )Nr   10.6)r	   MACOSX_DEPLOYMENT_TARGET )macosxr   fat)r8   get_platform_osxr@   )r"   r,   results      r#   test_get_platform_osxz%Test_OSXSupport.test_get_platform_osx;  s;    C$*

 ..{CcJ2F;r%   N)__name__
__module____qualname__r$   r1   rC   rG   rN   rT   r_   ra   rd   rq   r}   r   r   r   r   r   r   r   r)   r%   r#   r   r      sc    
;K
GA
I555G%2N2,2. 2D242628	<r%   r   __main__)r   rP   r>   sysunittesttest.supportr   r8   
skipUnlessrR   TestCaser   r   mainr)   r%   r#   <module>r      s}    
   
  " S\\,,X6Ht<h'' t< It<l	 zHMMO r%   