\bgMddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z ddlmZddlmZmZmZmZddlmZddlmZddlmZmZmZdd lmZddlZ ddl!Z!ddl"Z"dd l#m$Z$d d l%m&Z'e"j(d Z)ej*dZ+ej*dZ,e"j-.dGddeZ/Gdde/Z0dS)N) sysconfig build_ext) Distribution) CompileErrorDistutilsPlatformErrorDistutilsSetupErrorUnknownFileError) Extension)missing_compiler_executable)TempdirManagercopy_xxmodule_cfixup_build_ext)StringIO)support)py38c#tK|j}||_tj|j|_ddlm}tj }|t_ tj |_ |j5dVdddn #1swxYwY|t_ ||_ dS)Nrr) instancemkdtemptmp_dirpathPathtmp_pathdistutils.commandrsite USER_BASE)requestselfrorig_user_bases {/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/setuptools/_distutils/tests/test_build_ext.py user_site_dirr"%s  D<<>>DLIdl++DM++++++^N\\^^DN.I  $DN(Is BB!Bc#Ktj|5t||5}tj|5dVdddn #1swxYwYdddn #1swxYwYddddS#1swxYwYdSN) import_helper CleanImportextension_redirect DirsOnSysPath)namernew_paths r!safe_extension_importr+;sL  "4 ( ( d + + x,X66                                sWA=A%A A%A A%A A% A=%A) )A=,A) -A==BBc#"Ktjdkrtjdkr|VdStj|5t j|}dddn #1swxYwYtj |j }tj d}tj |tj |}tj|j ||VdS)z Tests will fail to tear down an extension module if it's been imported. Before importing, copy the file to a temporary directory that won't be cleaned up. Yield the new path. WindowscygwinNdeleteme)prefix)platformsystemsysr%r( importlibutil find_specosrbasenameorigintempfilerjoinshutilcopy)modrspecfilename trash_dirdests r!r'r'Cs I%%#,(*B*B   $T * *--~'',,---------------w ,,H 333I 7<< 27#3#3H#=#= > >D K T""" OOOOOs A00A47A4r"ceZdZdZdZedZdZdZdZ dZ dZ d Z d Z d Zd Zd ZejdejddZejdejddZejdejddZdZdS) TestBuildExtct|i|Sr$r)rargskwargss r!rzTestBuildExt.build_extZs$)&)))ctt|jtj|jd}t d|g}td|gd}|j|_| |}t||j|_ |j|_ tj}tjst#t_ |||t_n#|t_wxYwt)d|j5|ddddS#1swxYwYdS)Nz xxmodule.cxxr) ext_modules)r rrr7rr;r r package_dirrr build_lib build_tempr3stdoutrverboserensure_finalizedrunr+_test_xx)rxx_cxx_extdistcmd old_stdouts r!test_build_extzTestBuildExt.test_build_ext]sw#%%% %%%w||DL,774$((T6(CCDD<nnT""  Z  $!CJ $  " " " GGIII#CJJCJ # # # # "4 6 6   MMOOO                  s%(DD(E""E&)E&cddl}dD]}t||sJ|dddksJ|dddksJ|Jt jrd }|j|ksJt| |j sJt| |j sJdS) Nr)errorfoonewroj z/This is a template module just for instruction.) rJhasattrr]r^demorHAVE_DOCSTRINGS__doc__ isinstanceNullStr)rJattrdocs r!rTzTestBuildExt._test_xxvs 2 % %D2t$$ $ $$ $vva||q    vvb"~~####vvxx}}&&&  " %CC:$$$$"''))RW-----"&&((BF+++++++rHctddi}||}tj}dt_ddlm}|d}d|d< ||t_||d=n"||d<n#|t_||d=n||d<wxYwt|j dksJdS)Nr)rJsunosr) _config_varsPy_ENABLE_SHAREDT) rrr3r1distutils.sysconfigrqgetrRlen library_dirs)rrWrXoldrqold_vars r!test_solaris_enable_sharedz'TestBuildExt.test_solaris_enable_sharedsVTN++nnT""l 444444""#566+/ '( ;  " " "CL !3443: /00 CL !3443: /0::::3#$$q((((((s B B%cddl}tddi}||}d|jD}d|vsJd|_t j|jd}t j|jd}t j |t j || ||j vsJ||j vsJ||j vsJdS) Nrr)rJcg|]\}}}| Sr|).0r)shortlabels r! z/TestBuildExt.test_user_site..sCCC.D%4CCCrHuserTlibinclude)rrr user_optionsrr7rr;rmkdirrRrvrpath include_dirs)rrrWrXoptionsrincls r!test_user_sitezTestBuildExt.test_user_sites VTN++nnT""DC#2BCCC    gll4>511w||DNI66    c&&&&&cis'''''''rHctddgdg}td|d}||}|t jt tf5|dddn #1swxYwYtddgdg}td|d}||}||dS)Nr]xxxFoptionalrJrKT) r rrrRpytestraisesr rrSrmodulesrWrXs r!test_optional_extensionz$TestBuildExt.test_optional_extensions1UUGe<<<=T'BBCCnnT""  ],l; < <   GGIII               UUGd;;;<T'BBCCnnT""   s0BBBctddgdg}td|d}||}|t j}|tjj D] }||j vsJt jd}|tjj D] }||j vsJ||}d |_ ||j gd ksJ||}d tj d |_ |d |j vsJd |j vsJ||}d tj d|_ ||j d dgksJt|}d|_||jgdksJ||}d|_||jddgksJ||}d|_||jd dgksJ||}d|_||jgksJ||}d|_||jddgksJdS)Nr]rFrrJrKT) plat_specificzmy_lib, other_lib lastlib)my_lib other_liblastlib my_lib_dir other_lib_dironetwoz one two,three)rrthreezone,two)r1)rrz1 2r2)r rrfinalize_optionsrget_python_incsplitr7rpathsepr librariesrvr link_objectsdefineundef swig_opts)rrrWrX py_includepplat_py_includes r!test_finalize_optionsz"TestBuildExt.test_finalize_optionss-UUGe<<<=T'BBCCnnT"" -// !!"'/22 ) )A((((((#2FFF &&rw77 ) )A((((((nnT""3  } B B BBBBBnnT""A AAA s/////#"22222nnT"")"*)))  yUEN****oo* #:#:#::::: nnT""  zlL99999nnT""  yUEN****nnT""  }""""nnT""  }c ******rHct}||}|tjt 5|ddddn #1swxYwYddg}tjt 5||dddn #1swxYwYdg}tjt 5||dddn #1swxYwYdg}tjt 5||dddn #1swxYwYddgdddfg}|||d }t|tsJ|j dksJt|d rJddgddd dgd fg}tjt 5||dddn #1swxYwYd dg|d dd<|||d j dgksJ|d j d gksJdS)Nr])barr]r)zfoo-bar)foo.barrrrr)sourcesrsomerr)rr3)rrrmacros)rr)rrrr) rrrrrr check_extensions_listrjr rrf undef_macros define_macros)rrWrXextsexts r!test_check_extensions_listz'TestBuildExt.test_check_extensions_lists~~nnT"" ]. / / - -  % %e , , , - - - - - - - - - - - - - - - &u- ]. / / , ,  % %d + + + , , , , , , , , , , , , , , ,    ]. / / , ,  % %d + + + , , , , , , , , , , , , , , ,    ]. / / , ,  % %d + + + , , , , , , , , , , , , , , ,5%PPQR !!$'''1g#y))))) }%%%%3'''''  "t!&!.6    ]. / / , ,  % %d + + + , , , , , , , , , , , , , , ,!+F3Q 8 !!$'''Aw#u,,,,Aw$ 444444sZA33A7:A7B==CC$DD  D -EEEG??HHctddgdg}td|d}||}||dgksJdS)Nr]rFrrJrK)r rrrRget_source_filesrs r!test_get_source_filesz"TestBuildExt.test_get_source_filesLsxUUGe<<<=T'BBCCnnT"" ##%%%000000rHc$tddgdtddgdg}td|d}||}|t jd ||d jsJt jd ||d jsJ||d d gksJ||d dgksJdS)Nr]aaaFrufööuuurJrKz foo(_d)?\..*ruföö(_d)?\..*r PyInit_fooPyInitU_f_1gaa) r rrrRresearchget_ext_filenamer)get_export_symbolsrs r!test_unicode_module_namesz&TestBuildExt.test_unicode_module_namesSs eeWu 5 5 5 gw 7 7 7 T'BBCCnnT"" y#*>*>wqz*O*OPPPPPy*C,@,@,Q,QRRRRR%%gaj11l^CCCC%%gaj116F5GGGGGGGrHct}||}d|_|||jdksJdS)Nunix)rrcompilerrRrS)rrWrXs r!test_compiler_optionz!TestBuildExt.test_compiler_option`s]~~nnT""    |v%%%%%%rHct|}tj|d}||dt d|gd}td|gd}||}t|| t| dksJtj|j d |_tj|j d |_tj|}tj}tj| d |_|| d }tj|n#tj|wxYwtj|sJt-jd } || sJtj|} | |ksJd|_d|_|| d }tj|sJ|| sJtj|} | |jksJ|d} ddi| _|d} tj| d } | |jksJd |_tj|}tj}tj| |d} tj|n#tj|wxYwtj| d } tj| d} | dksJdS)Nzfoo.czvoid PyInit_foo(void) {} r]FrrJrKrbuildtemptTr EXT_SUFFIXbuild_pyrr)r rr7rr; write_filer rrrrRru get_outputsrrNrOrealpathgetcwdchdirinplacerSexistsrget_config_varendswithdirnamerget_finalized_commandrMget_ext_fullpathr)rrc_filerrWrX other_tmp_dirold_wdso_file ext_suffixso_dirrrlastdirs r!test_get_outputszTestBuildExt.test_get_outputsks#%%%,,..gw//  <===x%888T3%@@AAnnT"" 3??$$%%**** T\7;; dlG<<((88   CK GGIIIoo''*G HV    BHV    w~~g&&&&&-l;;  +++++))&&&&    //##A&w~~g&&&&& +++++))&&&&,,Z88 "E{##E**w}}T""1%s}$$$$ ((88   ''..D HV    BHV    w}}T""1%'--%%b)%s 5GG+O00Pctjd}t}||}d|_ddi|j_ddg|j_tj }tj |ddd|z}| d}||ksJd |_tj |d |_ tj |d dd|z}| d}||ksJ|d }i|_d d g|j_| d }tj |d d dd|z}||ksJd|_| d }tj |d dd|z}||ksJdS)NrTrsrclxmlz lxml.htmletreez lxml.etreeFtmpdirrtwistedztwisted.runner.portmaprunnerportmap)rrrrr distributionrMpackagesr7rrr;rrNr)rrrWrXcurdirwantedrrs r!test_ext_fullpathzTestBuildExt.test_ext_fullpaths&|44 ~~nnT"" (*E{$%+[$9!feVWs]CC##L11~~~~  VX66 fh# FF##L11~~~~,,Z88!%.0H$I!##$<==fh 8YQT_UU~~~~ ##$<==fi9s?KK~~~~~~rHzplatform.system() != "Darwin"save_envc2|dddS)Nz==)_try_compile_deployment_targetrs r!test_deployment_target_defaultz+TestBuildExt.test_deployment_target_defaults ++D$77777rHctjt5|ddddddS#1swxYwYdS)N>z10.1)rrrrrs r!test_deployment_target_too_lowz+TestBuildExt.test_deployment_target_too_lows ]1 2 2 = =  / /V < < < = = = = = = = = = = = = = = = = = =s>AActjd}|rfd|dD}|dxxdz cc<dd|D}|d|dSdS)NMACOSX_DEPLOYMENT_TARGETc,g|]}t|Sr|)int)r}xs r!rzATestBuildExt.test_deployment_target_higher_ok..s>>>AQ>>>rH.rrc34K|]}t|VdSr$)str)r}is r! z@TestBuildExt.test_deployment_target_higher_ok..s( ; ;AQ ; ; ; ; ; ;rH<)rrrr;r)r deptargets r! test_deployment_target_higher_okz-TestBuildExt.test_deployment_target_higher_oks ,-GHH  @>>)=)=>>>I bMMMQ MMM ; ; ; ; ;;;I  / /Y ? ? ? ? ?  @ @rHc|-tjdr tjd=n|tjd<tjdt jd|di|jtj d}ttt|ddd}|dddkrd |z}nt|dkrd |z}nd |z}t!d |jdz gd |g}t#d |gd}|j|_||}|j|_|j|_ t.j}t2jst7t._ |||t._dS#|t._wxYw#t<$r|dYdSwxYw)Nrzdeptargetmodule.czt #include int dummy; #if TARGET z MAC_OS_X_VERSION_MIN_REQUIRED #else #error "Unexpected target" #endif rrr`) r z %02d%01d0z %02d%02d00z%02d0000rz -DTARGET=)extra_compile_argsrKz*Wrong deployment target during compilation) r7environrtjaracorrtextwrapdedentrrrtuplemaprrrur rrrMrrNrOr3rPrrQrrRrSrfail)roperatortarget deptarget_extrWrXrYs r!rz+TestBuildExt._try_compile_deployment_targets* >z~~899 ;J9:5;BJ1 2 #X_ 6 !) 6 6 6 & &  M   $)*DEEs3 S 1 1!A# 67788 "1":  6)FF6{{a%.$f,!  ]0 0 1 4F 4 45   [-QQRR<nnT""   DJ? (%ZZ  ($$&&& ' Z '''' D D D IIB C C C C C C Ds*+0G#(G G#G  G##HHN)__name__ __module__ __qualname__rrZ staticmethodrTryrrrrrrrrrrmarkskipif usefixturesrrrrr|rHr!rDrDXs***2 , ,\ ,))),(((8 F+F+F+P:5:5:5x111 H H H & & &= = = ~###J [788 [Z((88)(988  [788 [Z((==)(98=  [788 [Z(( @ @)(98 @?D?D?D?D?DrHrDceZdZfdZxZS)TestParallelBuildExtcHtj|i|}d|_|S)NT)superrparallel)rrFrGr __class__s r!rzTestParallelBuildExt.build_ext0s,%EGG%t6v66 ! rH)rrrr __classcell__)r!s@r!rr/s8rHr)1 contextlibr4r7r1rr<rr3r:r  distutilsrdistutils.command.build_extrdistutils.corerdistutils.errorsrrr r distutils.extensionr distutils.testsr distutils.tests.supportr rrior jaraco.pathr rrtestrcompatrr%fixturer"contextmanagerr+r'rrrDrr|rHr!r1su  111111'''''' *)))))777777  )))))))))*  ())SDSDSDSDSD>SDSD*)SDl<rH