a  ze%+@sddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZmZmZmZGddde jejZdd Zed kreedS) N) sysconfig)get_default_compiler)support)TESTFN run_unittestcheck_warnings swap_itemcseZdZfddZfddZddZddZd d Zd d Zd dZ ddZ ddZ e edkdddZddZddZddZe edddd Ze ed!d"ud#d$d%Ze ed!d"ud#d&d'Ze ed!d"ud#d(d)Zd*d+ZZS),SysconfigTestCasecstt|d|_dSN)superr setUpmakefileself __class__R/opt/bitninja-python-dojo/embedded/lib/python3.9/distutils/tests/test_sysconfig.pyr szSysconfigTestCase.setUpcs0|jdurt|j|tt|dSr )r osunlinkcleanup_testfnr r tearDownrrrrrs  zSysconfigTestCase.tearDowncCs2tjtrttntjtr.ttdSr )rpathisfilerremoveisdirshutilrmtreerrrrrs   z SysconfigTestCase.cleanup_testfncCs t}|tj||dSr )rZget_config_h_filename assertTruerrr)rZconfig_hrrrtest_get_config_h_filename sz,SysconfigTestCase.test_get_config_h_filenamecCs|ttjtddS)N)prefix)ZassertNotEqualrZget_python_librrrrrtest_get_python_lib$s  z%SysconfigTestCase.test_get_python_libcCs"t}||t||dSr )rget_config_varsZassertIsInstancedictr)rZcvarsrrrtest_get_config_vars+s z&SysconfigTestCase.test_get_config_varscCstd}|tj|||tj||tjrntj|dd}|tj |||t |n"tj dkr| tj t|dS)NsrcdirZIncludezPython.hposix)rget_config_varrrrisabsrZ python_buildjoinexistsZ_is_python_source_dirname assertEqualdirnameZget_makefile_filename)rr%ZPython_hrrr test_srcdir0s  zSysconfigTestCase.test_srcdirc CsRtd}t}z"tdtd}Wt|n t|0|||dS)Nr%z..)rr'rgetcwdchdirr,)rr%cwdZsrcdir2rrrtest_srcdir_independent_of_cwdBs   z0SysconfigTestCase.test_srcdir_independent_of_cwdc CsGddd}ddddddd d d d }|}t@}|D]\}}|ttj||q>t|Wdn1sz0Y|S) Nc@seZdZdZddZdS)z6SysconfigTestCase.customize_compiler..compilerunixc[s ||_dSr )exes)rkwrrrset_executablesSszFSysconfigTestCase.customize_compiler..compiler.set_executablesN)__name__ __module__ __qualname__Z compiler_typer6rrrrcompilerPsr:Zsc_arsc_ccsc_cxxz --sc-arflagsz --sc-cflagsz --sc-ccshared sc_ldsharedsc_shutil_suffixTrue) ARCCCXXARFLAGSCFLAGSZCCSHAREDLDSHAREDZ SHLIB_SUFFIXCUSTOMIZED_OSX_COMPILER) contextlib ExitStackitems enter_contextrrZ _config_varscustomize_compiler)rr:Zsysconfig_varscompcmkeyvaluerrrrKNs" (z$SysconfigTestCase.customize_compilerr3z+not testing if default compiler is not unixcCstdtjd<dtjd<dtjd<dtjd<d tjd <d tjd <d tjd<dtjd<dtjd<|}||jdd||jdd||jdd||jdd||jdd||jdd||jdd||jdtjd=tjd=tjd=tjd=tjd =tjd =tjd=tjd=tjd=|}||jdd ||jdd!||jdd"||jdd#||jdd$||jdd%||jdd&||jddS)'NZenv_arr@Zenv_ccrAZenv_cppZCPPzenv_cxx --env-cxx-flagsrBZ env_ldsharedrEz --env-ldflagsLDFLAGSz --env-arflagsrCz --env-cflagsrDz--env-cppflagsZCPPFLAGSZarchiverzenv_ar --env-arflagsZ preprocessorzenv_cpp --env-cppflagsr:z.env_cc --sc-cflags --env-cflags --env-cppflagsZ compiler_sozzsc_ar --sc-arflagszsc_cc -Ezsc_cc --sc-cflagszsc_cc --sc-cflags --sc-ccsharedr<r;r=)rr"renvironrKr,r4Zshared_lib_extension)rrLrrrtest_customize_compilerls                       z)SysconfigTestCase.test_customize_compilercCs`t|_t|jd}z |d|dW|n |0t|j}||ddddS)Nwz)CONFIG_ARGS= '--arg1=optarg1' 'ENV=LIB' VAR=$OTHER OTHER=fooz'--arg1=optarg1' 'ENV=LIB'fooZ CONFIG_ARGSZOTHERrr openwritecloserZparse_makefiler,rfddrrrtest_parse_makefile_bases    z*SysconfigTestCase.test_parse_makefile_basecCs`t|_t|jd}z |d|dW|n |0t|j}||ddddS)NrSz,CONFIG_ARGS= '--arg1=optarg1' 'ENV=\$$LIB' rTz'--arg1=optarg1' 'ENV=\$LIB'rUrVrWr[rrr"test_parse_makefile_literal_dollars    z4SysconfigTestCase.test_parse_makefile_literal_dollarcCs<ddl}||dtd||dtddS)NrrDrP)rr,r'rZglobal_sysconfigrrrtest_sysconfig_modules  z'SysconfigTestCase.test_sysconfig_modulerFcompiler flags customizedcCsPddl}tdr|d||dtd||dtddS)NrrFrbrErA)rr'ZskipTestr,r`rrrtest_sysconfig_compiler_varss    z.SysconfigTestCase.test_sysconfig_compiler_vars EXT_SUFFIXNz!EXT_SUFFIX required for this testcCs|ttjddS)NSO)Z assertWarnsDeprecationWarningrr'rrrrtest_SO_deprecationsz%SysconfigTestCase.test_SO_deprecationcCsHtdtf(|tdtdWdn1s:0YdS)Nrerd)rrfr,rr'rrrr test_SO_values zSysconfigTestCase.test_SO_valuecCs.t}||d||d|ddS)Nrerd)rr"ZassertIsNotNoner,)rvarsrrrtest_SO_in_varssz!SysconfigTestCase.test_SO_in_varscCs~ttd }|tdWdn1s00Ytjttj tgtj tj dd}| \}}| d|jd|dS)NrSaB from distutils.core import Distribution config = Distribution().get_command_obj('config') # try_compile may pass or it may fail if no compiler # is found but it should not raise an exception. rc = config.try_compile('int x;') T)stdoutstderruniversal_newlinesrzSubprocess failed: )rXr writelinestextwrapdedent subprocessPopenstrsys executablePIPESTDOUT communicater, returncode)rfpZoutsZerrsrrr.test_customize_compiler_before_get_config_varss . z@SysconfigTestCase.test_customize_compiler_before_get_config_vars)r7r8r9r rrrr!r$r.r2rKunittestZ skipUnlessrrRr^r_raZskipIfrr'rcrgrirkr} __classcell__rrrrr sB     <       r cCst}|tt|Sr )r~Z TestSuiteZaddTestZ makeSuiter )Zsuiterrr test_suite sr__main__)rGrrrrrurpr~Z distutilsrZdistutils.ccompilerrZdistutils.testsrZ test.supportrrrrZ EnvironGuardZTestCaser rr7rrrrs   }