
    /hh#6                         S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKr\R                  " \R                  R                  S5      S5       " S S\R                  5      5       r\S:X  a  \R                  " 5         gg)	z=
Test suite for _osx_support: shared OS X support functions.
    N)	os_helperdarwinzrequires OS Xc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)Test_OSXSupport   c                 .   S U l         SU l        [        R                  R	                  [        R
                  " 5       5      U l        U R                  [        R                  " 5       5      U l
        U R                  R                  SSSSSSSS	S
SSSS5        g )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.13.8/usr/lib/python3.13/test/test__osx_support.pysetUpTest_OSXSupport.setUp   su    -WW__RYY[9$$Y%B%B%DEi+z4;m/		
    c                 @   ^^ TR                  UU4S jT 5       5        g )Nc              3   T   >#    U  H  nTU   TU   :w  d  M  S U-   TU   4v   M     g7f)_OSX_SUPPORT_INITIAL_N ).0kconfig_varsexpected_varss     r$   	<genexpr>DTest_OSXSupport.add_expected_saved_initial_values.<locals>.<genexpr>"   s=      ;)4A"1~q)99 5q8A )4s   (()updater#   r.   r/   s    ``r$   !add_expected_saved_initial_values1Test_OSXSupport.add_expected_saved_initial_values   s      	 ;)4; 	;r'   c                 <   U R                   S   (       a  U R                   S   S-   U R                   S'   U R                   S   [        R                  R                  U R                  5      -   U R                   S'   [
        R                  " U R                  5        U R                  [        R                  " U R                  5      5        U R                  [
        R                  U R                  5        [        U R                  S5       nUR                  S5        S S S 5        [        R                  " U R                  [        R                   5        U R#                  U R                  [        R                  " U R                  5      5        g ! , (       d  f       Nx= f)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_executable%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                    U R                   S   (       a  U R                   S   S-   U R                   S'   U R                   S   [        R                  R                  U R                  5      -   U R                   S'   [
        R                  " U R                  5        U R                  [
        R                  U R                  5        [        U R                  S5       nUR                  S5        S S S 5        [        R                  " U R                  [        R                  5        U R                  S[        R                   " U R                  5      5        g ! , (       d  f       Nn= f)Nr7   r8   r9   z##!/bin/sh
/bin/echo ExpectedOutput
ExpectedOutput)r    r   r   r   r   r   r:   r   r>   r?   r@   rA   rB   rC   rD   r<   _read_outputrE   s     r$   test__read_output!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                     [         R                  " S5      nU R                  [        R                  R                  U5      S5        g )Nccz!cc not found - check xcode-select)r<   _find_build_tool
assertTruer   r   isfile)r#   outs     r$   test__find_build_tool%Test_OSXSupport.test__find_build_tool?   s1    ++D1s+?	Ar'   c                     U R                  [        R                  " 5       S   R                  [        R
                  " 5       5      5        g )Nr   )rQ   platformmac_ver
startswithr<   _get_system_versionr"   s    r$   test__get_system_version(Test_OSXSupport.test__get_system_versionD   s7    ((*1-88$0$D$D$FH 	Ir'   c                     SS0nSS0nSnSn[         R                  " XU5        U R                  X!5        [         R                  " U5        U R	                  X!5        g Nr   gcc-test -pthreadsclang -pthreads)r<   _save_modified_valueassertNotEqual_remove_original_valuesrD   r#   r.   r/   cvnewvalues        r$   test__remove_original_values,Test_OSXSupport.test__remove_original_valuesH   sd    "
 	
 $))+8DM7,,[94r'   c                     SS0nSS0nU R                  X5        SnSn[        R                  " XU5        U R                  X!5        g r^   )r4   r<   ra   rD   rd   s        r$   test__save_modified_value)Test_OSXSupport.test__save_modified_valueV   sV    "
 	
 	..{J$))+8D4r'   c                     SS0nUR                  5       nSnSn[        R                  " XU5        U R                  X!5        g )Nr   r_   )copyr<   ra   rD   rd   s        r$   #test__save_modified_value_unchanged3Test_OSXSupport.test__save_modified_value_unchangedc   sG    "
 $((*'))+8D4r'   c                     SS K n[        S UR                  " 5       S   R                  S5      SS  5       5      nU R	                  US:  [
        R                  " 5       5        g )Nr   c              3   8   #    U  H  n[        U5      v   M     g 7f)N)int)r,   is     r$   r0   BTest_OSXSupport.test__supports_universal_builds.<locals>.<genexpr>o   s      CA *+c!ffAs   .   )
      )rW   tuplerX   splitrD   r<   _supports_universal_builds)r#   rW   mac_ver_tuples      r$   test__supports_universal_builds/Test_OSXSupport.test__supports_universal_buildsm   sa     C$,,.q177<QqAC C'1(CCE	Gr'   c                    SnSSSSSSSS	.nS
SSSSSSS	.nU R                  X#5        U R                  S   (       a  SU R                  S   -   OSn[        R                  R	                  U R
                  5      U-   U R                  S'   U H  u  pV[        R                  " U5        U R                  [        R                  U5        [        US5       nUR                  SU-   5        S S S 5        [        R                  " U[        R                  5        M     U R                  U[        R                   " U5      5        g ! , (       d  f       N^= f)N))zgcc-testz i686-apple-darwin11-llvm-gcc-4.2)clangzclang version 3.1r_   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   r`   zclang++z%clang -bundle -arch ppc -arch i386 -gzOclang -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gr7   r8    r9   z#!/bin/sh
/bin/echo )r4   r    r   r   r   r   r   r:   r>   r?   r@   rA   rB   rC   rD   r<   _find_appropriate_compiler)r#   	compilersr.   r/   suffixc_namec_outputrF   s           r$   test__find_appropriate_compiler/Test_OSXSupport.test__find_appropriate_compilert   s1   	
 #G.C?G	
  G.C<G	
 	..{J-1XXf-=#((277??4+=+=>G )FV$OOI,,f5fc"a/(:; #HHVT\\* !* 	(CC$/1	2 #"s   D??
E	c                     SSSSSS.nSSS	S
SS.nU R                  X5        U R                  U[        R                  " U5      5        g )Nr   r   r   (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r4   rD   r<   _remove_universal_flagsr3   s      r$   test__remove_universal_flags,Test_OSXSupport.test__remove_universal_flags   sd    G.C?G
 5,-
 	..{J(@@$/1	2r'   c                     SSSSSS.nSSS	S
SS.nU R                  X5        U R                  U[        R                  " U5      5        g )Nr   r   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   r3   s      r$   &test__remove_universal_flags_alternate6Test_OSXSupport.test__remove_universal_flags_alternate   sg     H.B?F
 5,-
 	..{J(@@$/1	2r'   c                    SSSSSSS.nSSS	SS
SS.nU R                  X5        U R                  S   (       a  SU R                  S   -   OSn[        R                  R	                  U R
                  5      U-   U R                  S'   Sn[        R                  " U5        U R                  [        R                  U5        [        US5       nUR                  S5        S S S 5        [        R                  " U[        R                  5        U R                  U[        R                   " U5      5        g ! , (       d  f       NZ= f)Nr   r   r   r   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 -gr7   r8   r   r9   z#!/bin/sh
exit 255)r4   r    r   r   r   r   r   r:   r>   r?   r@   rA   rB   rC   rD   r<   _remove_unsupported_archs)r#   r.   r/   r   r   rF   s         r$   test__remove_unsupported_archs.Test_OSXSupport.test__remove_unsupported_archs   s   G.C?G
 >%C6G
 	..{J-1XXf-=#((277??4+=+=>G 	((&1&#!GG)* 
&(BB$/1	2 s   	D//
D=c                     SU R                   S'   SSSSSSS	.nSS
SSSSS	.nU R                  X5        U R                  U[        R                  " U5      5        g )Nz-arch x86_64	ARCHFLAGSr   r   r   r   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    r4   rD   r<   _override_all_archsr3   s      r$   test__override_all_archs(Test_OSXSupport.test__override_all_archs   s{     .G.C?G
 A(C9J
 	..{J(<<$/1	2r'   c                     SSSSSSS.nSSSS	SS
S.nU R                  X5        U R                  U[        R                  " U5      5        g )Nr   [-fno-strict-aliasing  -g -O3 -arch ppc -arch i386  -isysroot /Developer/SDKs/MacOSX10.1.sdkr   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r4   rD   r<   _check_for_unavailable_sdkr3   s      r$   test__check_for_unavailable_sdk/Test_OSXSupport.test__check_for_unavailable_sdk  sq    C.B?F	
 .?	
 	..{J(CC$/1	2r'   c                     SSSSSSS.nSSSS	SS
S.nU R                  X5        U R                  U[        R                  " U5      5        g )Nr   zZ-fno-strict-aliasing  -g -O3 -arch ppc -arch i386  -isysroot/Developer/SDKs/MacOSX10.1.sdkr   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   r3   s      r$   )test__check_for_unavailable_sdk_alternate9Test_OSXSupport.test__check_for_unavailable_sdk_alternate  ss     B.A?E	
 .?	
 	..{J(CC$/1	2r'   c                 d    SSS.n[         R                  " USSS5      nU R                  SU5        g )Nr   10.6)r
   MACOSX_DEPLOYMENT_TARGET )macosxr   fat)r<   get_platform_osxrD   )r#   r.   results      r$   test_get_platform_osx%Test_OSXSupport.test_get_platform_osx;  s;    C$*

 ..{CcJ2F;r'   )r    r   r   r   N)__name__
__module____qualname____firstlineno__r%   r4   rG   rL   rT   r[   rg   rj   rn   r}   r   r   r   r   r   r   r   r   __static_attributes__r+   r'   r$   r   r      sc    
;K
GA
I555G%2N2,2. 2D242628	<r'   r   __main__)__doc__r   rW   rB   sysunittesttest.supportr   r<   
skipUnlessrY   TestCaser   r   mainr+   r'   r$   <module>r      sy    
   
  " 	S\\,,X6Ht<h'' t< It<l	 zMMO r'   