a ze6@svdZddlZddlZddlZddlZddlZddlZddlZe ej ddGdddej Z e dkrredS)z= Test suite for _osx_support: shared OS X support functions. Ndarwinz requires OS Xc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%S)&Test_OSXSupportcCs\d|_d|_tjt|_tj |_ | |j j dD]}||j vr<|j |q"s zDTest_OSXSupport.add_expected_saved_initial_values..)updaterrrrrr!add_expected_saved_initial_valuessz1Test_OSXSupport.add_expected_saved_initial_valuescCs|jdr|jdd|jd<|jdtj|j|jd<tj|j| t |j| tjj|jt |jd}|dWdn1s0Yt|jtj||jt |jdS)NPATH:wz#!/bin/sh /bin/echo OK )rr r rrrrunlinkr Z assertIsNone _osx_supportZ_find_executableropenwritechmodstatS_IRWXU assertEqualrfrrrtest__find_executable&s ( z%Test_OSXSupport.test__find_executablecCs|jdr|jdd|jd<|jdtj|j|jd<tj|j| tjj|jt |jd}| dWdn1s0Yt |jt j|dt|jdS)Nr$r%r&z##!/bin/sh /bin/echo ExpectedOutput ZExpectedOutput)rr r rrrrr'r rr)r*r+r,r-r.r(Z _read_outputr/rrrtest__read_output3s ( z!Test_OSXSupport.test__read_outputcCs"td}|tj|ddS)NZccz!cc not found - check xcode-select)r(Z_find_build_tool assertTruer r isfile)routrrrtest__find_build_tool?s z%Test_OSXSupport.test__find_build_toolcCs |tdtdS)Nr)r3platformmac_ver startswithr(Z_get_system_version)rrrrtest__get_system_versionDsz(Test_OSXSupport.test__get_system_versioncCsLddi}ddi}d}d}t||||||t||||dSNr gcc-test -pthreadsclang -pthreads)r(_save_modified_valueZassertNotEqualZ_remove_original_valuesr.rrrrZnewvaluerrrtest__remove_original_valuesHs  z,Test_OSXSupport.test__remove_original_valuescCsBddi}ddi}|||d}d}t||||||dSr;)r#r(r>r.r?rrrtest__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_unchangedcsz3Test_OSXSupport.test__save_modified_value_unchangedcCsHddl}tdd|ddddD}||dktdS)Nrcss|]}t|VqdS)N)int)rirrrr ozBTest_OSXSupport.test__supports_universal_builds...) )r7tupler8splitr.r(Z_supports_universal_builds)rr7Z mac_ver_tuplerrrtest__supports_universal_buildsms z/Test_OSXSupport.test__supports_universal_buildsc Csd}dddddddd }d d dddd d d }||||jdrPd|jdnd}tj|j||jd<|D]j\}}tj|| tjj|t |d}| d|Wdn1s0Yt |t jqp||t|dS)N))zgcc-testz i686-apple-darwin11-llvm-gcc-4.2)clangzclang 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 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 compilersrrsuffixc_nameZc_outputr0rrrtest__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 -gRgcc-4.0 -bundle -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -grrrrr -fno-strict-aliasing -g -O3  -g-I. gcc-4.0 -bundle -ggcc-4.0 -bundle -gr#r.r(Z_remove_universal_flagsr"rrrtest__remove_universal_flagss$  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_alternates$  z6Test_OSXSupport.test__remove_universal_flags_alternatecCsddddddd}ddd dd d d}||||jd rHd |jd nd}tj|j||jd <d}tj|| tjj|t |d}| dWdn1s0Yt |t j||t|dS)NrNrOrPrQrVrWr 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)rrrrSrTr0rrrtest__remove_unsupported_archss8    (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"rrrtest__override_all_archss*   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 -gra4-fno-strict-aliasing -g -O3 -arch ppc -arch i386 r[)gcc-4.0 -bundle -arch ppc -arch i386 -gr#r.r(Z_check_for_unavailable_sdkr"rrrtest__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)Nrd10.6)rZMACOSX_DEPLOYMENT_TARGET )ZmacosxrjZfat)r(Zget_platform_osxr.)rrresultrrrtest_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 skipUnlessr9ZTestCaserrnmainrrrrs8