a 5êdgŸ6ã@svdZddlZddlZddlZddlZddlZddlZddlZe  ej  d¡d¡Gdd„dej ƒƒZ e dkrre ¡dS)z= Test suite for _osx_support: shared OS X support functions. éNÚdarwinz requires OS Xc@sœeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%S)&ÚTest_OSXSupportcCs\d|_d|_tj t ¡¡|_tj  ¡|_ |  |j j ¡dD]}||j vr<|j   |¡q"s þÿzDTest_OSXSupport.add_expected_saved_initial_values..)Úupdate©rrrrrrÚ!add_expected_saved_initial_valuessÿz1Test_OSXSupport.add_expected_saved_initial_valuescCsÎ|jdr|jdd|jd<|jdtj |j¡|jd<tj |j¡|  t   |j¡¡|  tjj|j¡t |jdƒ}| d¡Wdƒn1sš0Yt |jtj¡| |jt   |j¡¡dS)NÚPATHú:Úwz#!/bin/sh /bin/echo OK )rr r rrrrÚunlinkr Z assertIsNoneÚ _osx_supportZ_find_executablerÚopenÚwriteÚchmodÚstatÚS_IRWXUÚ assertEqual©rÚfrrrÚtest__find_executable&s ( ÿz%Test_OSXSupport.test__find_executablecCsº|jdr|jdd|jd<|jdtj |j¡|jd<tj |j¡|  tjj|j¡t |jdƒ}|  d¡Wdƒn1sˆ0Yt  |jt j¡| dt |j¡¡dS)Nr$r%r&z##!/bin/sh /bin/echo ExpectedOutput ZExpectedOutput)rr r rrrrr'r rr)r*r+r,r-r.r(Z _read_outputr/rrrÚtest__read_output3s ( ÿz!Test_OSXSupport.test__read_outputcCs"t d¡}| tj |¡d¡dS)NZccz!cc not found - check xcode-select)r(Z_find_build_toolÚ assertTruer r Úisfile)rÚoutrrrÚtest__find_build_tool?s ÿz%Test_OSXSupport.test__find_build_toolcCs | t ¡d t ¡¡¡dS)Nr)r3ÚplatformÚmac_verÚ startswithr(Z_get_system_version)rrrrÚtest__get_system_versionDsÿz(Test_OSXSupport.test__get_system_versioncCsLddi}ddi}d}d}t |||¡| ||¡t |¡| ||¡dS©Nr úgcc-test -pthreadsúclang -pthreads)r(Ú_save_modified_valueZassertNotEqualZ_remove_original_valuesr.©rrrrZnewvaluerrrÚtest__remove_original_valuesHsÿÿ  z,Test_OSXSupport.test__remove_original_valuescCsBddi}ddi}| ||¡d}d}t |||¡| ||¡dSr;)r#r(r>r.r?rrrÚtest__save_modified_valueVsÿÿ z)Test_OSXSupport.test__save_modified_valuecCs6ddi}| ¡}d}d}t |||¡| ||¡dS)Nr r<)Úcopyr(r>r.r?rrrÚ#test__save_modified_value_unchangedcsÿz3Test_OSXSupport.test__save_modified_value_unchangedcCsHddl}tdd„| ¡d d¡dd…Dƒƒ}| |dkt ¡¡dS)Nrcss|]}t|ƒVqdS)N)Úint)rÚirrrr oózBTest_OSXSupport.test__supports_universal_builds..Ú.é)é é)r7Útupler8Úsplitr.r(Z_supports_universal_builds)rr7Z mac_ver_tuplerrrÚtest__supports_universal_buildsmsÿ ÿz/Test_OSXSupport.test__supports_universal_buildsc Csòd}dddddddd œ}d d dddd d d œ}| ||¡|jdrPd|jdnd}tj |j¡||jd<|D]j\}}tj |¡|  tjj|¡t |dƒ}|  d|¡Wdƒn1sÂ0Yt  |t j¡qp| |t |¡¡dS)N))zgcc-testz i686-apple-darwin11-llvm-gcc-4.2)Úclangzclang version 3.1r<z cc++-testú3-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 rrrrrr=zclang++z%clang -bundle -arch ppc -arch i386 -gzOclang -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gr$r%Úr&z#!/bin/sh /bin/echo )r#rr r rrrrr'rr)r*r+r,r-r.r(Z_find_appropriate_compiler)rZ compilersrrÚsuffixÚc_nameZc_outputr0rrrÚtest__find_appropriate_compilerts>ù ù    ,ÿÿz/Test_OSXSupport.test__find_appropriate_compilercCsBddddddœ}ddd d d dœ}| ||¡| |t |¡¡dS) NrOrPrQú(gcc-4.0 -bundle -arch ppc -arch i386 -gúRgcc-4.0 -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -g©rrrrrú -fno-strict-aliasing -g -O3 ú -gú-I. úgcc-4.0 -bundle -gúgcc-4.0 -bundle -g©r#r.r(Z_remove_universal_flagsr"rrrÚtest__remove_universal_flags›s$û û ÿÿz,Test_OSXSupport.test__remove_universal_flagscCsBddddddœ}ddd d d dœ}| ||¡| |t |¡¡dS) NrOrPz,-I. -isysroot/Developer/SDKs/MacOSX10.4u.sdkrVzQgcc-4.0 -bundle -arch ppc -arch i386 -isysroot/Developer/SDKs/MacOSX10.4u.sdk -grXrYrZr[r\r]r^r"rrrÚ&test__remove_universal_flags_alternate±s$û û ÿÿz6Test_OSXSupport.test__remove_universal_flags_alternatecCsÜdddddddœ}ddd dd d dœ}| ||¡|jd rHd |jd nd}tj |j¡||jd <d}tj |¡|  tjj|¡t |dƒ}|  d¡Wdƒn1s®0Yt  |t j¡| |t |¡¡dS)NrNrOrPrQrVrW©r rrrrrz*-fno-strict-aliasing -g -O3 -arch i386 z -arch i386 -gzgcc-4.0 -bundle -arch i386 -gzIgcc-4.0 -bundle -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -gr$r%rRr&z#!/bin/sh exit 255)r#rr r rrrrr'rr)r*r+r,r-r.r(Z_remove_unsupported_archs)rrrrSrTr0rrrÚtest__remove_unsupported_archsÈs8ú ú   (ÿÿz.Test_OSXSupport.test__remove_unsupported_archscCsPd|jd<ddddddd œ}dd d dd d d œ}| ||¡| |t |¡¡dS)Nz -arch x86_64Z ARCHFLAGSrNrOrPrQrVzQgcc-4.0 -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -graz--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)rr#r.r(Z_override_all_archsr"rrrÚtest__override_all_archsês* ú ú ÿÿz(Test_OSXSupport.test__override_all_archscCsFdddddddœ}dddd dd dœ}| ||¡| |t |¡¡dS) NrNú[-fno-strict-aliasing -g -O3 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.1.sdkrPz,-I. -isysroot /Developer/SDKs/MacOSX10.1.sdkrVzQgcc-4.0 -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.1.sdk -graú4-fno-strict-aliasing -g -O3 -arch ppc -arch i386 r[ú)gcc-4.0 -bundle -arch ppc -arch i386 -g©r#r.r(Z_check_for_unavailable_sdkr"rrrÚtest__check_for_unavailable_sdks(ù ù ÿÿz/Test_OSXSupport.test__check_for_unavailable_sdkcCsFdddddddœ}dddd dd dœ}| ||¡| |t |¡¡dS) NrNzZ-fno-strict-aliasing -g -O3 -arch ppc -arch i386 -isysroot/Developer/SDKs/MacOSX10.1.sdkrPz+-I. -isysroot/Developer/SDKs/MacOSX10.1.sdkrVzPgcc-4.0 -bundle -arch ppc -arch i386 -isysroot/Developer/SDKs/MacOSX10.1.sdk -grarer[rfrgr"rrrÚ)test__check_for_unavailable_sdk_alternates(ù ù ÿÿz9Test_OSXSupport.test__check_for_unavailable_sdk_alternatecCs*dddœ}t |ddd¡}| d|¡dS)Nrdú10.6)rZMACOSX_DEPLOYMENT_TARGETú )ZmacosxrjZfat)r(Zget_platform_osxr.)rrÚresultrrrÚtest_get_platform_osx;s ýz%Test_OSXSupport.test_get_platform_osxN)Ú__name__Ú __module__Ú __qualname__rr#r1r2r6r:r@rArCrMrUr_r`rbrcrhrirmrrrrrs$     '"rÚ__main__)Ú__doc__r r7r,ÚsysZunittestZ test.supportrr(Z skipUnlessr9ZTestCaserrnÚmainrrrrÚs8