
    0hhv                        S SK r S SKrS SKrS SK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
JrJrJrJrJr  S SKJr  S SKJrJrJrJr  S SKJr  S SKrS SKJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$  S SK%J&r&J'r'  S SK(r(S SK)r)S SK*r*\RV                  r, " S	 S
\RZ                  5      r. " S S\RZ                  5      r/ " S S\RZ                  5      r0\1S:X  a  \Rd                  " 5         gg)    N)copy)captured_stdoutis_apple_mobileis_wasiPythonSymlinkrequires_subprocess)import_module)TESTFNunlinkskip_unless_symlink
change_cwd)VirtualEnvironment)	get_pathsget_platformget_config_varsget_pathget_path_names_INSTALL_SCHEMESget_default_schemeget_scheme_namesget_config_var_expand_vars_get_preferred_schemes)_main_parse_makefilec                     ^  \ rS rSrU 4S jrU 4S j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\R*                  " \S5      \R*                  " \\R2                   S35      S 5       5       rS r\\" 5       S 5       5       rS rS r \R*                  " \R2                  S:H  S5      S 5       r!\R*                  " \"RF                  " 5       (       + S5      S 5       r$S r%\RL                  " \R2                  S:H  S 5      \" 5       S! 5       5       r'\R*                  " \S5      \R*                  " \\R2                   S"35      S# 5       5       r(S$ r)\R*                  " \*RV                  " S%5      S&L S'5      \R*                  " \"RF                  " 5       (       + S5      S( 5       5       r,\RL                  " \R2                  S):H  S*5      S+ 5       r-\RL                  " \R2                  S,:H  S-5      S. 5       r.\RL                  " \R2                  S:H  S/5      S0 5       r/\" 5       S1 5       r0\" 5       S2 5       r1\" 5       S3 5       r2S4r3U =r4$ )5TestSysConfig&   c                   > [         [        U ]  5         [        R                  S S  U l        [        [        S5      (       a0  [        R                  U l        [        R                  " 5       U l	        OS U l        U R                  S5        U R                  [        l        [        R                  U l        [        R                  U l        [        R                  U l        [        R                  U l        [        R                   U l        [        R                  R"                  U l        [        R                  R$                  U l        [        R                  R&                  U l        [(        R*                  [-        [(        R*                  5      4U l        / U l        / U l        S Hb  nU[        R4                  ;   a0  U R2                  R7                  U[        R4                  U   45        MG  U R0                  R7                  U5        Md     g )Nuname) r!   r!   r!   r!   )MACOSX_DEPLOYMENT_TARGETPATH)superr   setUpsyspathsys_pathhasattrosr    _uname
_set_uname
_get_unamenameplatformversion
_frameworksepjoinisabs
splitdrive	sysconfig_CONFIG_VARSr   _config_vars_added_envvars_changed_envvarsenvironappend)selfvar	__class__s     </opt/python-3.13.8/usr/lib/python3.13/test/test_sysconfig.pyr%   TestSysConfig.setUp(   sA   mT(*2wDJ((*DKDJOOG$??GG	{{..66GGLL	WW]]
'',,%22D9O9O4PP  "7Cbjj %%,,c2::c?-CD##**3/	 8    c                   > U R                   [        R                  S S & U R                  5         U R                  b  U R                  [
        l        O[
        ?U R                  [
        l        U R                  [        l        U R                  [        l        U R                  [        l	        U R                  [
        l
        U R                  [
        R                  l        U R                  [
        R                  l        U R                  [
        R                  l        U R                  S   [        l        [        R                   R#                  5         [        R                   R%                  U R                  S   5        U R&                   H  u  pU[
        R(                  U'   M     U R*                   H#  n[
        R(                  R-                  US 5        M%     [.        [0        U ]g  5         g )Nr      )r(   r&   r'   _cleanup_testfnr    r*   r.   r/   r0   r1   r2   r3   r4   r5   r8   r6   r7   clearupdater:   r;   r9   popr$   r   tearDown)r=   r>   valuer?   s      r@   rI   TestSysConfig.tearDownE   s3   mm::!zzBH))}}llyy

!__!%!2!21!5	$$&%%d&7&7&:;//JC#BJJsO 0&&CJJNN3% ' 	mT+-rB   c                 :    [         R                  " U5      U l        g N)r*   uname_resultr+   )r=   r    s     r@   r,   TestSysConfig._set_uname^   s    ooe,rB   c                     U R                   $ rM   )r+   r=   s    r@   r-   TestSysConfig._get_unamea   s    {{rB   c                     [         n[        R                  R                  U5      (       a  [        R                  " U5        g [        R                  R                  U5      (       a  [        R                  " U5        g g rM   )r
   r*   r'   isfileremoveisdirshutilrmtree)r=   r'   s     r@   rE   TestSysConfig._cleanup_testfnd   sI    77>>$IIdOWW]]4  MM$ !rB   c                 T    [         R                  " SSU R                  5        S30UD6$ )Nprefixz-venv- )r   from_tmpdirid)r=   venv_create_argss     r@   venvTestSysConfig.venvk   s2    !-- 
ggi['

 	
rB   c                 T    U R                  [        5       [        R                  5        g rM   )assertEqualr   r6   _SCHEME_KEYSrQ   s    r@   test_get_path_names!TestSysConfig.test_get_path_namesq   s    )9+A+ABrB   c                     [        5       n[        5       n[        US 5      n[        UR	                  5       5      n[        UR	                  5       5      nU R                  X5        g rM   )r   r   r   sorteditemsrc   )r=   schemedefault_schemewanteds       r@   test_get_pathsTestSysConfig.test_get_pathst   sK    +-nd3''(rB   c           
      j   [        5       n[        R                  S:X  a  USS0-  n[         H  n[        U    Ht  n[        U   U   R                  " S0 UD6nU R                  [        R                  R                  [        X25      5      [        R                  R                  U5      5        Mv     M     g )Nnt
platlibdirlibr\   )	r   r*   r.   r   formatrc   r'   normpathr   )r=   config_varsrj   r.   expecteds        r@   test_get_pathTestSysConfig.test_get_path|   s    %'77d? &u(==K&F(0+F3D9@@O;O  GG$$Xd%;<GG$$X. 1 'rB   c                 @    U R                  [        5       [        5        g rM   )assertInr   r   rQ   s    r@   test_get_default_scheme%TestSysConfig.test_get_default_scheme   s    (*,<=rB   c                    1 SknS[         l        [        5       nU R                  U[        5        U R                  [        U5      U5        S[         l        [        5       nU R                  U[        5        U R                  [        U5      U5        S[         l        S[        l        S[        l	        U R                  U[        5        U R                  [        U5      U5        g )N>   homeuserr[   rp   posixdarwinMyPython)
r*   r.   r   assertIsInstancedictrc   setr&   r/   r1   )r=   expected_schemesschemess      r@   test_get_preferred_schemes(TestSysConfig.test_get_preferred_schemes   s    5 (*gt,W'78 (*gt,W'78 #gt,W'78rB   c           	         SnSn[         R                  R                  SS[        R                  " 5        3S5      n[         R                  R                  SU5      n[         R                  R                  SU5      n[         R                  R                  SU5      nSnU Vs0 s H  oUS_M     nnU R                  U[        R                  " SS	US
95        U R                  U[        R                  " SS	US
95        [        R                  " SS	US
9nU R                  UR                  U[         R                  -   5      5        g s  snf )Nbinincluderr   pythonsite-packagesr`   baseplatbaseinstalled_baseinstalled_platbasescripts
posix_venvrj   varspurelib)
r*   r'   r3   r6   _get_python_version_abirc   r   
assertTrue
startswithr2   )r=   binpathincpathlibpathbasesr   r   sysconfig_includedirs           r@   test_posix_venv_scheme$TestSysConfig.test_posix_venv_scheme   s    '',,u!'	(I(I(K'LM.0
 '',,vw/'',,vw/'',,vw/ M)./f/)"4"4Y|Z^"_`)"4"4Y|Z^"_`  )11)LW[\,77"&&8HIJ 0s   "Ec           	          SnSn[         R                  R                  SS5      nSn[         R                  R                  XA5      n[         R                  R                  XB5      n[         R                  R                  XC5      nSnU Vs0 s H  ofS_M     nnU R                  U[        R
                  " SSUS	95        U R                  U[        R
                  " S
SUS	95        U R                  U[        R
                  " SSUS	95        g s  snf )NScriptsIncludeLibr   r`   r   r   nt_venvr   r   r   )r*   r'   r3   rc   r6   r   )r=   r   r   r   r`   r   r   r   s           r@   test_nt_venv_scheme!TestSysConfig.test_nt_venv_scheme   s     '',,uo6 '',,t-'',,t-'',,t- M)./f/)"4"4YyW["\])"4"4YyW["\])"4"4YyW["\]	 0s   
Dc                    [         R                  S:X  a  U R                  [        R                  " SSS9[        R                  " SSS95        U R                  [        R                  " SSS9[        R                  " SSS95        U R                  [        R                  " SSS9[        R                  " SSS95        g U R                  [        R                  " SSS9[        R                  " SSS95        U R                  [        R                  " SSS9[        R                  " SSS95        U R                  [        R                  " SSS9[        R                  " SSS95        g )	Nwin32r   r`   )rj   r   r   r   r   )r&   r/   rc   r6   r   rQ   s    r@   test_venv_schemeTestSysConfig.test_venv_scheme   s,   <<7"""9V<""9Y? ""9V<""9Y? ""9V<""9Y?
 ""9V<""9\B ""9V<""9\B ""9V<""9\BrB   c                 f    [        5       nU R                  U[        5        U R                  U5        g rM   )r   r   r   r   )r=   cvarss     r@   test_get_config_vars"TestSysConfig.test_get_config_vars   s&    !eT*rB   c           	      
   [        5       nU R                  U[        5        U R                  U5        S[        l        S[        l        S[        l        U R                  [        5       S5        S[        l        S[        l        S[        l        U R                  [        5       S5        S[        l        S[        l        S[        l        U R                  S	5        [        R                  " [        5       5        S
[        5       S'   S[        5       S'   [        R                  n S[        l        U R                  [        5       S5        S[        l        U R                  [        5       S5        U[        l        U R                  S5        [        R                  " [        5       5        S
[        5       S'   S[        5       S'   [        R                  n S[        l        U R                  [        5       S5        S[        l        U R                  [        5       S5        U[        l        [        R                  " [        5       5        S[        5       S'   S[        5       S'   U R                  [        5       S5        [        R                  " [        5       5        S[        5       S'   U R                  [        5       S5        [        R                  " [        5       5        S[        5       S'   U R                  [        5       S5        [        R                  " [        5       5        S[        5       S'   U R                  [        5       S5        [        R                  " [        5       5        S[        5       S'   U R                  [        5       S5        S  HN  n[        R                  " [        5       5        S!U-  [        5       S'   U R                  [        5       S"U-  5        MP     [        S#S$5       H[  n[        R                  " [        5       5        S%[        5       S'   U S&3[        5       S'   U R                  [        5       S'U-  5        M]     S[        l        S([        l        S)[        l        U R                  S*5        U R                  [        5       S+5        S[        l        S,[        l        S-[        5       S.'   S/S0S1S2S3.R!                  5        HR  u  pVU R#                  U5         U R                  S4S5S6S7U45        U R                  [        5       S8U 35        S S S 5        MT     g ! U[        l        f = f! U[        l        f = f! , (       d  f       M  = f)9Nrp   z>2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)]r   z>2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Amd64)]z	win-amd64r   zU2.5 (r25:51918, Sep 19 2006, 08:49:13) 
[GCC 4.0.1 (Apple Computer, Inc. build 5341)]r   )Darwinmacziade8.11.1]Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386PowerPCz10.3r"   zF-fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypesCFLAGSizmacosx-10.3-ppcl    zmacosx-10.3-ppc64)r   r   r   r   i386zmacosx-10.3-i386zmacosx-10.3-x86_64z10.4zy-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-fatz|-arch x86_64 -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-intelz-arch x86_64 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-fat3z-arch ppc64 -arch x86_64 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-universalz}-arch x86_64 -arch ppc64 -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-fat64)ppcr   x86_64ppc64zm-arch %s -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-%s      zl-fno-strict-overflow -Wsign-compare -Wunreachable-code-arch arm64 -fno-common -dynamic -DNDEBUG -g -O3 -Wallz.0zmacosx-%d.0-arm64zV2.3.5 (#1, Jul  4 2007, 17:28:59) 
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)]linux2)Linuxaglaez2.6.21.1dedibox-r7z #1 Mon Apr 30 17:25:38 CEST 2007i686z
linux-i686android	   ANDROID_API_LEVELr   x86	arm64_v8aarmeabi_v7ar   r   aarch64armv7lr   	localhostz3.18.91+z#1 Tue Jan 9 20:35:43 UTC 2018z
android-9-)r   r   strr   r*   r.   r&   r0   r/   rc   r,   _osx_support_remove_original_valuesr   maxsizerangeri   subTest)r=   actual_platformmaxintarchmacvermachineabis          r@   test_get_platformTestSysConfig.test_get_platform   st   &.os3( 51 55 I E 	F 	,,_->?8>45(O(# 	!$CK\^->?-CK\^-@A CK B 	C 	,,_->?8>45(O(#	!$CK\^-?@-CK\^-AB CK 	,,_->?8>45(B(#
 	):;,,_->?(B(#
 	)<=,,_->?(B(# 	);<,,_->?(B(# 	)@A,,_->?(B(#
 	)<=6D001BC,F IM,MOh'
 \^-=-DE 7 BmF001BC,aOh'?EhbMO89\^-@6-IJ $ O @ 	A 	6  12-."#	

 %'LG g&+z @'!K L  :cU1CD '&u !CK$ !CK\ '&s&   #A
T' A
T7 &4U'T47U
U	,Incompatible with WASI mapdir and OOT buildsz; doesn't distribute header files in the runtime environmentc                     [         R                  " 5       nU R                  [        R                  R                  U5      U5        g rM   )r6   get_config_h_filenamer   r*   r'   rT   )r=   config_hs     r@   test_get_config_h_filename(TestSysConfig.test_get_config_h_filename  s-     224x0(;rB   c                     / SQn[         (       a  UR                  / SQ5        U R                  [        5       [	        [        U5      5      5        g )N)rp   
posix_homeposix_prefixr   r   r`   )nt_userosx_framework_user
posix_user)HAS_USER_BASEextendrc   r   tuplerh   )r=   rl   s     r@   test_get_scheme_names#TestSysConfig.test_get_scheme_names  s6    V=MMIJ)+U6&>-BCrB   c                     [        5        nSnU R                  UR                  " U6 UR                  " U6 5        S S S 5        g ! , (       d  f       g = f)N)-c1import sysconfig; print(sysconfig.get_platform()))r   rc   	call_real	call_link)r=   pycmds      r@   test_symlinkTestSysConfig.test_symlink  s<     _KCR\\3/s1CD __s   /A
Ac                    [        S5      n[        (       a  [        S5      n[        R                  [        R                  :g  nS GH  n[        US5      nU(       a]  UR                  [        R                  [        R                  5      nUR                  [        R                  [        R                  5      nO~[        R                  [        R                  :w  a\  UR                  [        R                  [        R                  5      nUR                  [        R                  [        R                  5      n[        (       d  M  [        US5      n[        R                  R                  UR                  UWS5      5      nUS:X  aD  [        R                  " 5       nSU S	3n	UR                  S
[        R                   S
U	 3SU	 35      nU R                  Xg5        GM     g )Nr   userbase)stdlib
platstdlibr   platlibr   r   rD   r   r   z/site-packages/z/lib/)r   r   r&   base_prefixbase_exec_prefixr   replaceexec_prefixr[   r*   r'   rt   r6   r   rq   rc   )
r=   r   r   adaptr.   global_path	user_pathrv   py_version_abisuffixs
             r@   test_user_similarTestSysConfig.test_user_similar  s]    f%=!*-D 3#7#77BD"48K)11#//3??S||COOS__ECJJ. *11#//3::N||COOSZZ@}$T<8	77++K,?,?dA,NO 9$ &/%F%F%HN%n%5^DF'//!CNN3C1VH0M27x0@ BH  5- CrB   c                     [        5        n[        5         S S S 5        U R                  [        WR	                  5       R                  S5      5      S:  5        g ! , (       d  f       NI= f)N
r   )r   r   r   lengetvaluesplit)r=   outputs     r@   	test_mainTestSysConfig.test_main  sE    &G FOO-33D9:Q>? s   A
A'r   zDoes not apply to Windowsc                 ~    [         R                  " S5      n[         R                  " S5      nU R                  X5        g )NLDFLAGSLDSHARED)r6   r   rz   )r=   ldflagsldshareds      r@   test_ldshared_value!TestSysConfig.test_ldshared_value  s.    **95++J7g(rB   zstub loader has no suffixesc                     [         R                  " S5      nU R                  U[        R                  " 5       S   5        g )NSOABIr   )r6   r   rz   _impextension_suffixes)r=   soabis     r@   
test_soabiTestSysConfig.test_soabi  s.    ((1eT446q9:rB   c                    [         R                  " S5      n[         R                  " S5      n[        R                  S S u  p4[        R                  S:X  aW  U R                  UR                  SU U 35      5        U R                  UR                  S5      5        U R                  X5        g [        (       a-  [         R                  " S5      nU R                  X% SU 35        g U R                  UR                  S	U S
U 35      5        U R                  UR                  S5      5        [        R                  S:X  a'  [        R                  (       a  U R                  S5        g U R                  UR                  S	U S
U 35      5        g )NLIBRARY	LDLIBRARY   r   r   z.dllPYTHONFRAMEWORKz.framework/	libpython.z.ar   z2gh-110824: skip LDLIBRARY test for framework build)r6   r   r&   version_infor/   r   r   endswithrc   r   r1   skipTest)r=   library	ldlibrarymajorminor	frameworks         r@   test_libraryTestSysConfig.test_library  s6   **95,,[9	''+<<7"OOG..wug/FGHOOG,,V45W0_!001BCIY+[(LMOOG..5'5'/JKLOOG,,T23||x'CNNRS	 4 4yq5P QRrB   r   ztest only relevant on MacOSXc                 f   [         R                  " 5       n[        R                  R	                  5       nSU;   a  US	 [
        R                  " [        R                  SS/[
        R                  [
        R                  US9nUR                  5       S   R                  5       nUR                  S5      nUR                  5       nU R                  US5        U R                  X5        [        R                  R	                  5       nSUS'   [
        R                  " [        R                  SS/[
        R                  [
        R                  US9nUR                  5       S   R                  5       nUR                  S5      nUR                  5       nU R                  US5        U R                  X5        g )Nr"   r   r   )stdoutstderrenvr   zutf-8z10.1)r6   r   r*   r;   r   
subprocessPopenr&   
executablePIPEDEVNULLcommunicatestripdecodewaitrc   )r=   my_platformr0  ptest_platformstatuss         r@   test_platform_in_subprocess)TestSysConfig.test_platform_in_subprocess  sf     ,,. jjoo%,./C ??%% *002%,,W5#4 jjoo*0&'C ??%% *002%,,W5#4rB   ) doesn't include config folder at runtimec                    [         R                  " S5      nU R                  [        R                  R                  U5      U5        U R                  [        R                  R                  U5      U5        [         R                  (       Gac  [        R                  R                  USS5      nU R                  [        R                  R                  U5      U5        [        R                  R                  USS5      nU R                  [        R                  R                  U5      U5        [        R                  R                  US5      nU R                  [        R                  R                  U5      U5        [        R                  S:X  a_  [        R                  R                  [        R                  SS5      nU R                  [        R                  R                  U5      U5        g g [        R                  S	:X  ac  [        R                  R                  [         R                  " 5       5      n[        R                  R                  U5      nU R!                  XQ5        g g )
Nsrcdirr   zPython.hPCzpyconfig.h.inrp   z..z
pyconfig.hr   )r6   r   r   r*   r'   r4   rV   _PYTHON_BUILDr3   existsr.   r&   r3  dirnameget_makefile_filenamerealpathrc   )r=   rB  Python_h
pyconfig_hpyconfig_h_inmakefile_dirs         r@   test_srcdirTestSysConfig.test_srcdir  s~   
 ))(3f-v6f-v6""" ww||FIzBHOOBGGNN84h?fdODJOOBGGNN:6
CGGLLAMOOBGGNN=9=Iww$WW\\#..$M
z :JG  WW77??9+J+J+LML77++L9L\2	  rB   c                     [         R                  " S5      n[        [        R                  5         [         R                  " S5      nS S S 5        U R                  UW5        g ! , (       d  f       N!= f)NrB  )r6   r   r   r*   pardirrc   )r=   rB  srcdir2s      r@   test_srcdir_independent_of_cwd,TestSysConfig.test_srcdir_independent_of_cwd)  sN     ))(3		"..x8G #) #"s   A""
A0
EXT_SUFFIXNz!EXT_SUFFIX required for this testc                     [         R                  " 5       nU R                  US   [        R                  " 5       S   5        g )NrT  r   )r6   r   rc   r  r  )r=   r   s     r@   test_EXT_SUFFIX_in_vars%TestSysConfig.test_EXT_SUFFIX_in_vars1  s5     ((*l+T-D-D-Fq-IJrB   linuxzLinux-specific testc                    [        S5      n[        R                  " 5       n[        R                  " S5      n[
        R                  " SU5      (       a  U R                  SU;   U5        [
        R                  " SU5      (       aN  UR                  UR                  5       5      S:X  a  SnOSnU R                  UR                  U5      S	U< 35        g g )
NctypesrT  z)(aarch64|arm|mips|ppc|powerpc|s390|sparc)rX  z(i[3-6]86|x86_64)$   )zi386-linux-gnu.sozx86_64-linux-gnux32.sozi386-linux-musl.so)zx86_64-linux-gnu.sozx86_64-linux-musl.sozunexpected suffix )r	   r/   r   r6   r   rematchr   sizeofc_char_pr$  )r=   rZ  r   r  expected_suffixess        r@   test_linux_ext_suffix#TestSysConfig.test_linux_ext_suffix8  s    x(""$)),788?IIOOGv-v688('22}}V__./14$g!$Q!OOFOO,=>0
;= 3rB   r   zAndroid-specific testc                     [         R                  " 5       n[        R                  " S5      nSSSSS.U   nU R	                  UR                  SU S35      S	U< S
U< 35        g )NrT  zx86_64-linux-androidzi686-linux-androidzaarch64-linux-androidzarm-linux-androideabir   -z.sozmachine=z	, suffix=)r/   r   r6   r   r   r$  )r=   r   r  expected_triplets       r@   test_android_ext_suffix%TestSysConfig.test_android_ext_suffixG  sr    ""$)),7,(.-	

  	!,<+=S(AB#7*Jvi0	2rB   zOS X-specific testc                 r    [         R                  " S5      nU R                  UR                  S5      U5        g )NrT  z
-darwin.so)r6   r   r   r$  )r=   r  s     r@   test_osx_ext_suffix!TestSysConfig.test_osx_ext_suffixT  s)    )),75v>rB   c                 F   [         R                  " S5      nU R                  5        n[        R                  " UR                  SU5      R                  5      n[        R                  " UR                  SSU5      R                  5      nS S S 5        U R                  WW5        U R                  US   WR                  5        U R                  US   UR                  5        U R                  US   US   5        U R                  US   US   5        g ! , (       d  f       N= f)Nz
            import sysconfig

            config_vars = sysconfig.get_config_vars()

            import json
            print(json.dumps(config_vars, indent=2))
        r   -Sr   r   r   r   
textwrapdedentr`   jsonloadsrunr.  assertNotEqualrc   r[   )r=   scriptr`   site_config_varsno_site_config_varss        r@   .test_config_vars_depend_on_site_initialization<TestSysConfig.test_config_vars_depend_on_site_initializationY  s     "  YY[D#zz$((4*@*G*GH"&**TXXdD&-I-P-P"Q  	,.AB)&14;;?)*5t{{C 	,V46FGW6XY,Z8:JK_:`a [s   A"D
D c                 Z   [         R                  " S5      nU R                  5        n[        R                  " UR                  SSU5      R                  5      nS S S 5        U R                  WS   US   5        U R                  US   S   WR                  5        g ! , (       d  f       NI= f)Na  
            import sysconfig

            before = sysconfig.get_config_vars()

            import site
            site.main()

            after = sysconfig.get_config_vars()

            import json
            print(json.dumps({'before': before, 'after': after}, indent=2))
        rl  r   beforeafterr   rm  )r=   rt  r`   ru   s       r@   8test_config_vars_recalculation_after_site_initializationFTestSysConfig.test_config_vars_recalculation_after_site_initializationq  s     "  YY[D**TXXdD&%A%H%HIK  	K1;w3GHW-f5t{{C	 [s   2B
B*c                 j   [         R                  " S5      nU R                  5        n[        R                  " UR                  SU5      R                  5      n[        R                  " UR                  SSU5      R                  5      nS S S 5        U R                  WW5        g ! , (       d  f       N!= f)Nz
            import sysconfig

            paths = sysconfig.get_paths()

            import json
            print(json.dumps(paths, indent=2))
        r   rl  )rn  ro  r`   rp  rq  rr  r.  rs  )r=   rt  r`   
site_pathsno_site_pathss        r@   (test_paths_depend_on_site_initialization6TestSysConfig.test_paths_depend_on_site_initialization  s     "  YY[DDHHT6$:$A$ABJ JJtxxdF'C'J'JKM  	J6	 [s   A"B$$
B2)r9   r:   r8   r1   r+   r4   r3   r.   r/   r2   r5   r(   r    r0   )5__name__
__module____qualname____firstlineno__r%   rI   r,   r-   rE   r`   re   rm   rw   r{   r   r   r   r   r   r   unittestskipIfr   r   r&   r/   r   r   r   r   r   r  r  r  r  r  r  r+  
skipUnlessr>  rM  rR  r6   r   rV  ra  rf  ri  rw  r|  r  __static_attributes____classcell__)r?   s   @r@   r   r   &   s   0:.2- 
C)>9,K4^*8
MEb __WLM___~%`ac<c N<D E  E
 6D@ __S\\W,.IJ) K) __00224QR; S;S& 13QR(5  S(5T __WLM___~%NOQ3Q N36* __Y--l;tC8:__00224QRK S:K 02GH= I= 24KL
2 M
2 13GH? I? b b. D D. 7 7rB   r   c                       \ rS rSr\R
                  " \R                  R                  S5      S5      \R
                  " \	S5      \R
                  " \
\R                   S35      S 5       5       5       rS rSrg	)
MakefileTestsi  winzTest is not Windows compatibler   r@  c                     [         R                  " 5       nU R                  [        R                  R                  U5      U5        g rM   )r6   rG  r   r*   r'   rT   )r=   makefiles     r@   test_get_makefile_filename(MakefileTests.test_get_makefile_filename  s-     224x0(;rB   c           
      T   U R                  [        [        5        [        [        S5       n[	        SUS9  [	        SUS9  [	        SUS9  [	        SUS9  [	        SUS9  [	        SUS9  S S S 5        [        [        5      nU R                  US	S
SSSSS.5        g ! , (       d  f       N7= f)Nwzvar1=a$(VAR2))filezVAR2=b$(var3)zvar3=42zvar4=$/invalidzvar5=dollar$$5zAvar6=${var3}/lib/python3.5/config-$(VAR2)$(var5)-x86_64-linux-gnuab42b42*   z	$/invalidzdollar$5z442/lib/python3.5/config-b42dollar$5-x86_64-linux-gnu)var1VAR2var3var4var5var6)
addCleanupr   r
   openprintr   rc   )r=   r  r   s      r@   test_parse_makefile!MakefileTests.test_parse_makefile  s    '&#(/1/1)(+"2"2 &,46  v&J 
 	 s   =B
B'r\   N)r  r  r  r  r  r  r&   r/   r   r   r   r  r  r  r\   rB   r@   r  r    so    __S\\,,U357__WLM___~%NOQ<Q N7
<rB   r  c                   *    \ rS rSrS\S4S jrS rSrg)DeprecationTestsi  Nc                 p    [         R                  U:  a  U R                  X4S9$ U R                  [        US9$ )N)msg)r&   r#  assertRaisesassertWarnsDeprecationWarning)r=   removal_versiondeprecation_msgerror	error_msgs        r@   
deprecatedDeprecationTests.deprecated  s;    .$$U$::##$6O#LLrB   c                     U R                  SS[        SS9   [        R                  " S5        S S S 5        g ! , (       d  f       g = f)N)      zThe check_home argument of sysconfig.is_python_build is deprecated and its value is ignored. It will be removed in Python 3.15.z?is_python_build() takes 0 positional arguments but 1 were given)r  r  r  r  foo)r  	TypeErrorr6   is_python_buildrQ   s    r@   test_is_python_build_check_home0DeprecationTests.test_is_python_build_check_home  sC    __#5 W  	
 %%e,	
 	
 	
s	   7
Ar\   )r  r  r  r  	Exceptionr  r  r  r\   rB   r@   r  r    s    :>i[_ M-rB   r  __main__)3r/   r\  r  r&   r*   r1  rW   rp  rn  r   test.supportr   r   r   r   r   test.support.import_helperr	   test.support.os_helperr
   r   r   r   test.support.venvr   r6   r   r   r   r   r   r   r   r   r   r   r   sysconfig.__main__r   r   r  r   
_sysconfig_HAS_USER_BASEr   TestCaser   r  r  r  mainr\   rB   r@   <module>r     s     	  
 	       50 0 0 = = = = 6    ((r	7H%% r	7jH%% @-x(( -* zMMO rB   