+
    Bi                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H	t	 ^ RI
Ht ^ RIHtHtHtHtHtHt ^ RIHt ^ RIHtHtHtHt ^ RIHt ^ RIt^ RIHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t&H't'H(t(H)t) ^ R	I*H+t+H,t,H-t-H.t. ^ RI/t/^ RI0t0^ RI1t1]Pd                  t3 ! R
 R]Ph                  ]4      t5 ! R R]Ph                  4      t6 ! R R]Ph                  4      t7]8R8X  d   ]Pr                  ! 4        R# R# )    N)copy)support)captured_stdout
is_androidis_apple_mobileis_wasiPythonSymlinkrequires_subprocess)import_module)TESTFNunlinkskip_unless_symlink
change_cwd)VirtualEnvironmentMixin)	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is_python_build_PROJECT_BASE)_main_parse_makefile_get_pybuilddir_get_json_data_namec                   H  a a ] tR t^)t oV 3R ltV 3R ltR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR t]P(                  ! ]R4      ]P(                  ! ]]P0                   R24      R 4       4       tR t]]! 4       R 4       4       tR tR t]P(                  ! ]P0                  R8H  R4      R 4       t ]P(                  ! ]!PD                  ! 4       '       * R4      R 4       t#R t$]PJ                  ! ]P0                  R8H  R4      ]! 4       R 4       4       t&]P(                  ! ]R4      ]P(                  ! ]]P0                   R 24      R! 4       4       t'R" t(]P(                  ! ])PT                  ! R#4      R$J R%4      ]P(                  ! ]!PD                  ! 4       '       * R4      R& 4       4       t+]PJ                  ! ]P0                  R'8H  R(4      R) 4       t,]PJ                  ! ]P0                  R*8H  R+4      R, 4       t-]PJ                  ! ]P0                  R8H  R-4      R. 4       t.R/ t/R0 t0R1 t1R2 t2R3 t3]! 4       R4 4       t4]P(                  ! ]5Pl                  R58g  R64      ]P(                  ! ]R74      ]P(                  ! ]7;'       g    ]R84      R9 4       4       4       t8R: t9R;t:Vt;V ;t<# )<TestSysConfigc                  < \         \        V `  4        R V n        \        P
                  R,          V n        \        \        R4      '       d1   \        P                  V n	        \        P                  ! 4       V n
        MR V n	        V P                  R4       V P                  \        n	        \        P                  V n        \        P                  V n        \        P                  V n        \        P                   V n        \        P"                  V n        \        P$                  V n        \        P&                  V n        \        P
                  P(                  V n        \        P
                  P*                  V n        \        P
                  P,                  V n        \.        P0                  \3        \.        P0                  4      3V n        . V n        . V n        R Fg  pV\        P:                  9   d5   V P8                  P=                  V\        P:                  V,          34       KL  V P6                  P=                  V4       Ki  	  R # )NNNNuname) r'   r'   r'   r'   )MACOSX_DEPLOYMENT_TARGETPATH)superr#   setUpmaxDiffsyspathsys_pathhasattrosr&   _uname
_set_uname
_get_unamenameprefixexec_prefixplatformversion
_frameworksepjoinisabs
splitdrive	sysconfig_CONFIG_VARSr   _config_vars_added_envvars_changed_envvarsenvironappend)selfvar	__class__s   & */usr/lib/python3.14/test/test_sysconfig.pyr+   TestSysConfig.setUp+   s_   mT(*2wDJ((*DKDJOOG$??GG	jj??{{..66GGLL	WW]]
'',,%22D9O9O4PP  "7Cbjj %%,,c2::c?-CD##**3/	 8    c                D  < V P                   \        P                  R &   V P                  4        V P                  e   V P                  \
        n        M\
        =V P                  \
        n        V P                  \        n        V P                  \        n        V P                  \        n	        V P                  \        n
        V P                  \        n        V P                  \
        n        V P                  \
        P                  n        V P                  \
        P                  n        V P                  \
        P                  n        V P                   ^ ,          \"        n        \"        P$                  P'                  4        \"        P$                  P)                  V P                   ^,          4       V P*                   F  w  rV\
        P,                  V&   K  	  V P.                   F#  p\
        P,                  P1                  VR4       K%  	  \2        \4        V `o  4        R# )r%   N)r/   r-   r.   _cleanup_testfnr&   r1   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   rA   r?   r@   clearupdaterC   rD   rB   popr*   r#   tearDown)rF   rG   valuerH   s   &  rI   rQ   TestSysConfig.tearDownK   sK   mm::!zzBH))[[
**}}llyy

!__!%!2!21!5	$$&%%d&7&7&:;//JC#BJJsO 0&&CJJNN3% ' 	mT+-rK   c                <    \         P                  ! V4      V n        R # N)r1   uname_resultr2   )rF   r&   s   &&rI   r3   TestSysConfig._set_unamef   s    ooe,rK   c                    V P                   # rU   )r2   rF   s   &rI   r4   TestSysConfig._get_unamei   s    {{rK   c                   \         p\        P                  P                  V4      '       d   \        P                  ! V4       R # \        P                  P                  V4      '       d   \        P                  ! V4       R # R # rU   )r   r1   r.   isfileremoveisdirshutilrmtree)rF   r.   s   & rI   rM   TestSysConfig._cleanup_testfnl   sI    77>>$IIdOWW]]4  MM$ !rK   c                V    V P                  \        4       \        P                  4       R # rU   )assertEqualr   r?   _SCHEME_KEYSrY   s   &rI   test_get_path_names!TestSysConfig.test_get_path_namess   s    )9+A+ABrK   c                    \        4       p\        4       p\        VR 4      p\        VP	                  4       4      p\        VP	                  4       4      pV P                  W4       R # rU   )r   r   r   sorteditemsrc   )rF   schemedefault_schemewanteds   &   rI   test_get_pathsTestSysConfig.test_get_pathsv   sK    +-nd3''(rK   c           
        \        4       p\        P                  R 8X  d   VRR/,          p\         F  p\        V,           F|  p\        V,          V,          P                  ! R/ VB pV P                  \        P                  P                  \        W24      4      \        P                  P                  V4      4       K~  	  K  	  R# )nt
platlibdirlibN )	r   r1   r5   r   formatrc   r.   normpathr   )rF   config_varsrj   r5   expecteds   &    rI   test_get_pathTestSysConfig.test_get_path~   s    %'77d? &u(==K&F(00+F3D9@@O;O  GG$$Xd%;<GG$$X. 1 'rK   c                B    V P                  \        4       \        4       R # rU   )assertInr   r   rY   s   &rI   test_get_default_scheme%TestSysConfig.test_get_default_scheme   s    (*,<=rK   c                   0 RmpR\         n        \        4       pV P                  V\        4       V P                  \        V4      V4       R\         n        \        4       pV P                  V\        4       V P                  \        V4      V4       R\         n        R\        n        R\        n	        V P                  V\        4       V P                  \        V4      V4       R# )r6   rp   posixdarwinMyPythonN>   homeuserr6   )
r1   r5   r   assertIsInstancedictrc   setr-   r8   r:   )rF   expected_schemesschemess   &  rI   test_get_preferred_schemes(TestSysConfig.test_get_preferred_schemes   s    5 (*gt,W'78 (*gt,W'78 #gt,W'78rK   c           	        R pRp\         P                  P                  RR\        P                  ! 4        2R4      p\         P                  P                  RV4      p\         P                  P                  RV4      p\         P                  P                  RV4      pRpV Uu/ uF  qURbK  	  ppV P                  V\        P                  ! RRVR7      4       V P                  V\        P                  ! R	RVR7      4       \        P                  ! RRVR7      pV P                  Wr\         P                  ,           4       R
# u upi )binincluderr   pythonsite-packagesvenvscripts
posix_venvrj   varspurelibNbaseplatbaseinstalled_baseinstalled_platbase)	r1   r.   r<   r?   _get_python_version_abirc   r   assertStartsWithr;   )rF   binpathincpathlibpathbasesr   r   sysconfig_includedirs   &       rI   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[\2bff4DE 0s   "Ec           	     2   R pRp\         P                  P                  RR4      pRp\         P                  P                  WA4      p\         P                  P                  WB4      p\         P                  P                  WC4      pRpV Uu/ uF  qfRbK  	  ppV P                  V\        P
                  ! RRVR7      4       V P                  V\        P
                  ! RRVR7      4       V P                  V\        P
                  ! R	RVR7      4       R
# u upi )ScriptsIncludeLibr   r   r   nt_venvr   r   r   Nr   )r1   r.   r<   rc   r?   r   )rF   r   r   r   r   r   r   r   s   &       rI   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                   \         P                  R 8X  d   V P                  \        P                  ! RRR7      \        P                  ! RRR7      4       V P                  \        P                  ! RRR7      \        P                  ! RRR7      4       V P                  \        P                  ! RRR7      \        P                  ! RRR7      4       R# V P                  \        P                  ! RRR7      \        P                  ! RRR7      4       V P                  \        P                  ! RRR7      \        P                  ! RRR7      4       V P                  \        P                  ! RRR7      \        P                  ! RRR7      4       R# )	win32r   r   )rj   r   r   r   r   N)r-   r8   rc   r?   r   rY   s   &rI   test_venv_schemeTestSysConfig.test_venv_scheme   s,   <<7"""9V<""9Y? ""9V<""9Y? ""9V<""9Y?
 ""9V<""9\B ""9V<""9\B ""9V<""9\BrK   c                h    \        4       pV P                  V\        4       V P                  V4       R # rU   )r   r   r   
assertTrue)rF   cvarss   & rI   test_get_config_vars"TestSysConfig.test_get_config_vars   s&    !eT*rK   c           
     
   \        4       pV P                  V\        4       V P                  V4       R \        n        R\        n        R\        n        V P                  \        4       R4       R \        n        R\        n        R\        n        V P                  \        4       R4       R\        n        R\        n        R\        n        V P                  R44       \        P                  ! \        4       4       R\        4       R	&   R
\        4       R&   \        P                  p R\        n        V P                  \        4       R4       R\        n        V P                  \        4       R4       V\        n        V P                  R54       \        P                  ! \        4       4       R\        4       R	&   R
\        4       R&   \        P                  p R\        n        V P                  \        4       R4       R\        n        V P                  \        4       R4       V\        n        \        P                  ! \        4       4       R\        4       R	&   R\        4       R&   V P                  \        4       R4       \        P                  ! \        4       4       R\        4       R&   V P                  \        4       R4       \        P                  ! \        4       4       R\        4       R&   V P                  \        4       R4       \        P                  ! \        4       4       R\        4       R&   V P                  \        4       R4       \        P                  ! \        4       4       R\        4       R&   V P                  \        4       R4       R6 FV  p\        P                  ! \        4       4       RV,          \        4       R&   V P                  \        4       RV,          4       KX  	  \        ^^4       F_  p\        P                  ! \        4       4       R \        4       R&   V R!2\        4       R	&   V P                  \        4       R"V,          4       Ka  	  R\        n        R#\        n        R$\        n        V P                  R74       V P                  \        4       R'4       R\        n        R(\        n        ^	\        4       R)&   RRR&R*R+R,R-R./P!                  4        FZ  w  rVV P#                  V4      ;_uu_ 4        V P                  R%R/R0R1V34       V P                  \        4       R2V 24       R3R3R34       K\  	  R3#   T\        n        i ; i  T\        n        i ; i  + '       g   i     K  ; i)8rp   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   z10.3r(   zF-fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypesCFLAGSizmacosx-10.3-ppcl    zmacosx-10.3-ppc64z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x86_64zm-arch %s -isysroot /Developer/SDKs/MacOSX10.4u.sdk  -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3zmacosx-10.4-%szl-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i686z
linux-i686androidANDROID_API_LEVELx86aarch64	arm64_v8aarmv7larmeabi_v7a	localhostz3.18.91+z#1 Tue Jan 9 20:35:43 UTC 2018z
android-9-N)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PowerPC)r   r   r   r   i386)ppcr   r   ppc64)r   aglaez2.6.21.1dedibox-r7z #1 Mon Apr 30 17:25:38 CEST 2007r   )r   r   strr   r1   r5   r-   r9   r8   rc   r3   _osx_support_remove_original_valuesr   maxsizerangeri   subTest)rF   actual_platformmaxintarchmacvermachineabis   &      rI   test_get_platformTestSysConfig.test_get_platform   s   &.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-.hE{m	

 %'LG g&&+z @'!K L  :cU1CD '&u !CK$ !CK\ '&&s&   #A
T? A
U =4U?UUU0,Incompatible with WASI mapdir and OOT buildsz; doesn't distribute header files in the runtime environmentc                    \         P                  ! 4       pV P                  \        P                  P                  V4      V4       R # rU   )r?   get_config_h_filenamer   r1   r.   r\   )rF   config_hs   & rI   test_get_config_h_filename(TestSysConfig.test_get_config_h_filename  s-     224x0(;rK   c                    . ROp\         '       d   VP                  . RO4       V P                  \        4       \	        \        V4      4      4       R# )rp   N)rp   
posix_homeposix_prefixr   r   r   )nt_userosx_framework_user
posix_user)HAS_USER_BASEextendrc   r   tuplerh   )rF   rl   s   & rI   test_get_scheme_names#TestSysConfig.test_get_scheme_names  s6    V=MMIJ)+U6&>-BCrK   c           	         \        4       ;_uu_ 4       pRpV P                  VP                  ! V!  VP                  ! V!  4       RRR4       R#   + '       g   i     R# ; i)-cN)r   1import sysconfig; print(sysconfig.get_platform()))r	   rc   	call_real	call_link)rF   pycmds   &  rI   test_symlinkTestSysConfig.test_symlink  s@     __KCR\\3/s1CD ___s   1AA	c                   \        R 4      p\        '       d   \        R4      p\        P                  \        P                  8g  pR
 EF  p\        VR4      pV'       d^   VP                  \        P                  \        P                  4      pVP                  \        P                  \        P                  4      pM\        P                  \        P                  8w  d]   VP                  \        P                  \        P                  4      pVP                  \        P                  \        P                  4      p\        '       g   EK  \        VR4      p\        P                  P                  VP                  VX^4      4      pVR8X  dE   \        P                  ! 4       pRV R2p	VP                  R\        P                   RV	 2RV	 24      pV P                  Wg4       EK  	  R	# )r   userbaseplatlibr   r   r   z/site-packages/z/lib/N)stdlib
platstdlibr   r   )r   r   r-   base_prefixbase_exec_prefixr   replacer7   r6   r1   r.   ru   r?   r   rq   rc   )
rF   r   r   adaptr5   global_path	user_pathrw   py_version_abisuffixs
   &         rI   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rK   c                    \        4       ;_uu_ 4       p\        4        R R R 4       V P                  \        XP	                  4       P                  R4      4      ^ 8  4       R #   + '       g   i     LL; i)N
)r   r   r   lengetvaluesplit)rF   outputs   & rI   	test_mainTestSysConfig.test_main  sH    &G FOO-33D9:Q>? s   A""A2	r   zDoes not apply to Windowsc                    \         P                  ! R 4      p\         P                  ! R4      pV P                  W4       R# )LDFLAGSLDSHAREDN)r?   r   r{   )rF   ldflagsldshareds   &  rI   test_ldshared_value!TestSysConfig.test_ldshared_value  s.    **95++J7g(rK   zstub loader has no suffixesc                    \         P                  ! R 4      pV P                  V\        P                  ! 4       ^ ,          4       R# )SOABIN)r?   r   r{   _impextension_suffixes)rF   soabis   & rI   
test_soabiTestSysConfig.test_soabi  s.    ((1eT446q9:rK   c                   \         P                  ! R 4      p\         P                  ! R4      p\        P                  R,          w  r4\         P                  ! R4      p\        P                  P                  R4      '       d.   V P                  VRV V V R24       V P                  W4       R# \        '       d/   \         P                  ! R4      pV P                  W& RV 24       R# V P                  VR	V R
V 24       V P                  VR4       \        P                  R8X  d*   \        P                  '       d   V P                  R4       R# V P                  VR	V R
V 24       R# )LIBRARY	LDLIBRARY:N   NABIFLAGSwinr   z.dllPYTHONFRAMEWORKz.framework/	libpython.z.ar   z2gh-110824: skip LDLIBRARY test for framework buildN)r?   r   r-   version_infor8   
startswithrc   r   r   assertEndsWithr:   skipTest)rF   library	ldlibrarymajorminorabiflags	frameworks   &      rI   test_libraryTestSysConfig.test_library  s"   **95,,[9	''+++J7<<""5))WugeWXJd&KLW0_!001BCIY+[(LM!!'YugQug+FG.||x'CNNNRS%%i9UG1UG1LMrK   r   ztest only relevant on MacOSXc                   \         P                  ! 4       p\        P                  P	                  4       pR V9   d   VR  \
        P                  ! \        P                  RR.\
        P                  \
        P                  VR7      pVP                  4       ^ ,          P                  4       pVP                  R4      pVP                  4       pV P                  V^ 4       V P                  W4       \        P                  P	                  4       pRVR &   \
        P                  ! \        P                  RR.\
        P                  \
        P                  VR7      pVP                  4       ^ ,          P                  4       pVP                  R4      pVP                  4       pV P                  V^ 4       V P                  W4       R# )r(   r   r   )stdoutstderrenvzutf-8z10.1N)r?   r   r1   rD   r   
subprocessPopenr-   
executablePIPEDEVNULLcommunicatestripdecodewaitrc   )rF   my_platformr1  ptest_platformstatuss   &     rI   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#4rK   ) doesn't include config folder at runtimec                   \         P                  ! R 4      pV P                  \        P                  P                  V4      V4       V P                  \        P                  P                  V4      V4       \         P                  '       Ed	   \        P                  P                  VRR4      pV P                  \        P                  P                  V4      V4       \        P                  P                  VR4      pV P                  \        P                  P                  V4      V4       \        P                  R8X  dS   \        P                  P                  VRR4      pV P                  \        P                  P                  V4      V4       R# R# \        P                  R8X  de   \        P                  P                  \         P                  ! 4       4      p\        P                  P                  V4      pV P                  WQ4       R# R# )	srcdirr   zPython.hzpyconfig.h.inrp   PCz
pyconfig.hr   N)r?   r   r   r1   r.   r=   r^   _PYTHON_BUILDr<   existsr5   dirnameget_makefile_filenamerealpathrc   )rF   rC  Python_hpyconfig_h_in
pyconfig_hmakefile_dirs   &     rI   test_srcdirTestSysConfig.test_srcdir  sI   
 ))(3f-v6f-v6""" ww||FIzBHOOBGGNN84h?GGLLAMOOBGGNN=9=Iww$WW\\&$E
z :JG  WW77??9+J+J+LML77++L9L\2	  rK   c                    \         P                  ! R 4      p\        \        P                  4      ;_uu_ 4        \         P                  ! R 4      pRRR4       V P                  VX4       R#   + '       g   i     L$; i)rC  N)r?   r   r   r1   pardirrc   )rF   rC  srcdir2s   &  rI   test_srcdir_independent_of_cwd,TestSysConfig.test_srcdir_independent_of_cwd(  sQ     ))(3		""..x8G #) #"s   A++A;	
EXT_SUFFIXNz!EXT_SUFFIX required for this testc                    \         P                  ! 4       pV P                  VR ,          \        P                  ! 4       ^ ,          4       R# )rU  N)r?   r   rc   r  r  )rF   r   s   & rI   test_EXT_SUFFIX_in_vars%TestSysConfig.test_EXT_SUFFIX_in_vars0  s5     ((*l+T-D-D-Fq-IJrK   linuxzLinux-specific testc                   \        R 4      p\        P                  ! 4       p\        P                  ! R4      p\
        P                  ! RV4      '       d   V P                  RV9   V4       \
        P                  ! RV4      '       d=   VP                  VP                  4       4      ^8X  d   RpMRpV P                  W44       R# R# )ctypesrU  z)(aarch64|arm|mips|ppc|powerpc|s390|sparc)rY  z(i[3-6]86|x86_64)$N)zi386-linux-gnu.sozx86_64-linux-gnux32.sozi386-linux-musl.so)zx86_64-linux-gnu.sozx86_64-linux-musl.so)r   r8   r   r?   r   rematchr   sizeofc_char_pr$  )rF   r[  r   r   expected_suffixess   &    rI   test_linux_ext_suffix#TestSysConfig.test_linux_ext_suffix7  s    x(""$)),788?IIOOGv-v688('22}}V__./14$g!$Q!: 3rK   r   zAndroid-specific testc                    \         P                  ! 4       p\        P                  ! R 4      pRRRRRRRR/V,          pV P	                  VR	V R
24       R# )rU  r   zx86_64-linux-androidr   zi686-linux-androidr   zaarch64-linux-androidr   zarm-linux-androideabi-z.soN)r8   r   r?   r   r$  )rF   r   r   expected_triplets   &   rI   test_android_ext_suffix%TestSysConfig.test_android_ext_suffixE  sg    ""$)),7,(.-	

  	Fa(8'9$=>rK   zOS X-specific testc                V    \         P                  ! R 4      pV P                  VR4       R# )rU  z
-darwin.soN)r?   r   r$  )rF   r   s   & rI   test_osx_ext_suffix!TestSysConfig.test_osx_ext_suffixQ  s"    )),7FL1rK   c                    V P                  R \        P                  ! 4       4       \        P                  ! R 4      pV P                  VR4       V P	                  V\
        P                  4       R# )Py_DEBUGNr      )r{   r?   r   r   rc   r   rl  )rF   rl  s   & rI   test_always_set_py_debug&TestSysConfig.test_always_set_py_debugV  sM    j)";";"=>++J7h'7#3#34rK   c                    V P                  R \        P                  ! 4       4       \        P                  ! R 4      pV P                  VR4       V P	                  V\
        P                  4       R# )Py_GIL_DISABLEDNrm  )r{   r?   r   r   rc   r   rr  )rF   rr  s   & rI   test_always_set_py_gil_disabled-TestSysConfig.test_always_set_py_gil_disabled\  sO    ')B)B)DE#223DEov.'*A*ABrK   c                0   V P                  R \        P                  ! 4       4       V P                  R\        P                  ! 4       4       \        P                  ! R 4      p\        P                  ! R4      pV P	                  V\
        4       V P	                  V\
        4       V P                  W4       \        P                  R8X  d   V P                  VR4       \        P                  P                  R4      '       g   RpMRpV P                  W#4       R# )r*  r  rp   r'   r  N)r'   tdtd)r'   rv  _dt_d)r{   r?   r   r   r   r   r1   r5   rc   r-   r8   r#  )rF   r*  r  valid_abiflagss   &   rI   test_abiflagsTestSysConfig.test_abiflagsb  s     	j)";";"=>j)";";"=>++J7++J7h,h,h)77d?Xr*||&&u--1N 4Nh/rK   c                J   \         P                  ! R 4      p\        P                  '       d   V P	                  RV4       MV P                  RV4       \        P                  '       d<   \        P                  P                  R4      '       d   V P                  VR4       R# R# R# )r  rw  r  ry  N)
r?   r   r   rl  r{   assertNotInr-   r8   r#  r$  )rF   r  s   & rI   test_abi_debugTestSysConfig.test_abi_debugw  sv    ++J7MM#x(S(+
  7 7 > >$/ !?rK   c                J   \         P                  ! R 4      p\         P                  ! R4      pV P                  V\        4       \        P
                  '       d'   V P                  VR4       V P                  RV4       R# V P                  VR4       V P                  RV4       R# )
abi_threadr  rv  r'   N)	r?   r   r   r   r   rr  rc   r{   r  )rF   r  r  s   &  rI   test_abi_threadTestSysConfig.test_abi_thread  s|    --l;
++J7j#."""Z-MM#x(Z,S(+rK   c                   \         P                  ! R 4      pV P                  4       ;_uu_ 4       p\        P                  ! VP                  RV4      P                  4      pRRR4       V P                  XR,          VR,          R,          4       V P                  VR,          VR,          R,          4       V P                  VR,          VR,          4       V P                  VR,          VR,          4       R#   + '       g   i     L; i)a  
            import sys, sysconfig

            data = {
                'prefix': sys.prefix,
                'exec_prefix': sys.exec_prefix,
                'base_prefix': sys.base_prefix,
                'base_exec_prefix': sys.base_exec_prefix,
                'config_vars': sysconfig.get_config_vars(),
            }

            import json
            print(json.dumps(data, indent=2))
        r   Nr6   rv   r7   r   r   )	textwrapdedentr   jsonloadsrunr/  rc   assertNotEqual)rF   scriptr   datas   &   rI   $test_makefile_overwrites_config_vars2TestSysConfig.test_makefile_overwrites_config_vars  s     " $ YY[[D::dhhtV4;;<D  	hm)<X)FGm,d=.A-.PQ
 	DND,?@D/6H1IJ [s   1C88D	r   z4_sysconfig-vars JSON file is only available on POSIXz;_sysconfig-vars JSON file currently isn't available on WASIz!Android and iOS change the prefixc                   R \         P                  9   d   \         P                  R ,          pMM\        4       '       d.   \         P                  P	                  \
        \        4       4      pM\        P                  p\         P                  P	                  V\        4       4      p\        V4      ;_uu_ 4       p\        P                  ! V4      pRRR4       \        4       pR0p\        P                  ! 4       '       d   VR0,          p\         P                  P                  \        P                   4      VR,          8w  d   VR0,          p\        P"                  \        P$                  8w  d   V0 Rm,          p\        P&                  ! 4       '       d   V0 Rm,          pV F'  pXP)                  VR4       VP)                  VR4       K)  	  V P+                  VX4       R#   + '       g   i     EL; i)_PYTHON_SYSCONFIGDATA_PATHNr   rC  BINDIRprojectbase>   r   r6   r   r7   >   r   r6   rC  r   r7   r   r   )r1   rD   r   r.   r<   r   r    r-   _stdlib_dirr!   openr  loadr   r?   rG  r4  r6   r   _installation_is_relocatedrP   rc   )rF   data_dirjson_data_pathfjson_config_varssystem_config_varsignore_keyskeys   &       rI   test_sysconfigdata_json%TestSysConfig.test_sysconfigdata_json  sY    (2::5zz">?Hww||M?3DEHHh0C0EF.!!Q#yy| " -. "l$$&&H:%K77??3>>*.@.JJM?*K::(HHK//11zzKC  d+""3-  	+-=>1 "!!s   6GG0	c                "   R \         n        R\         n        \        P                  ! 4       pV P                  VR,          \         P                  4       V P                  VR,          \         P                  4       V P                  VR,          \         P                  4       V P                  VR,          \         P                  4       R\         n        R\         n        \        P                  ! 4       pV P                  VR,          \         P                  4       V P                  VR,          \         P                  4       V P                  VR,          \         P                  4       V P                  VR,          \         P                  4       R# )	z
prefix-AAAzexec-prefix-AAAr6   r   r7   r   z
prefix-BBBzexec-prefix-BBBN)r-   r6   r7   r?   r   rc   )rF   rv   s   & rI   *test_sysconfig_config_vars_no_prefix_cache8TestSysConfig.test_sysconfig_config_vars_no_prefix_cache  s   !
+//1X.

;V,cjj9]3S__EZ0#//B!
+//1X.

;V,cjj9]3S__EZ0#//BrK   )rB   rC   rA   r:   r2   r7   r=   r<   r,   r5   r8   r6   r;   r>   r/   r&   r9   )=__name__
__module____qualname____firstlineno__r+   rQ   r3   r4   rM   re   rm   rx   r|   r   r   r   r   r   r   unittestskipIfr   r   r-   r8   r   r   r   r
   r   r  r	  r  r  r  r  r,  
skipUnlessr?  rN  rS  r?   r   rW  ra  rf  ri  ro  rs  r|  r  r  r  r1   r5   r   r  r  __static_attributes____classdictcell____classcell__)rH   __classdict__s   @@rI   r#   r#   )   s$    0@.6- C)>9,F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;N& 13QR(5  S(5T __WLM___~%NOQ3Q N30* __Y--l;tC8:__00224QRK S:K 02GH; I; 24KL	? M	? 13GH2 I25C0*0	, K K@ __RWW')_`__W[\__Z22?4WX"? Y ] a"?HC CrK   r#   c                      a  ] tR tRt o ]P
                  ! ]P                  P                  R4      R4      ]P
                  ! ]	R4      ]P
                  ! ]
]P                   R24      R 4       4       4       tR tRtV tR	# )
MakefileTestsi  r  zTest is not Windows compatibler   rA  c                    \         P                  ! 4       pV P                  \        P                  P                  V4      V4       R # rU   )r?   rH  r   r1   r.   r\   )rF   makefiles   & rI   test_get_makefile_filename(MakefileTests.test_get_makefile_filename  s-     224x0(;rK   c                   V P                  \        \        4       \        \        R 4      ;_uu_ 4       p\	        RVR7       \	        RVR7       \	        RVR7       \	        RVR7       \	        RVR7       \	        RVR7       RRR4       \        \        4      pV P                  VR	R
RRR^*RRRRRR/4       R#   + '       g   i     L?; i)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-gnuNvar1ab42VAR2b42var3var4z	$/invalidvar5zdollar$5var6z442/lib/python3.5/config-b42dollar$5-x86_64-linux-gnu)
addCleanupr   r   r  printr   rc   )rF   r  r   s   &  rI   test_parse_makefile!MakefileTests.test_parse_makefile  s    '&#(/1/1)(+"2"2 &,46  v&FEBKJJ 
 	 s   AB99C		rs   N)r  r  r  r  r  r  r-   r8   r#  r   r   r  r  r  r  r  s   @rI   r  r    sw     __S\\,,U357__WLM___~%NOQ<Q N7
< rK   r  c                   <   a  ] tR tRt o R]R3R ltR tR tRtV t	R# )DeprecationTestsi  Nc                ~    \         P                  V8  d   V P                  W4R 7      # V P                  \        VR 7      # ))msg)r-   r"  assertRaisesassertWarnsDeprecationWarning)rF   removal_versiondeprecation_msgerror	error_msgs   &&&&&rI   
deprecatedDeprecationTests.deprecated  s;    .$$U$::##$6O#LLrK   c                    V P                  RR\        RR7      ;_uu_ 4        \        P                  ! R/ 4       RRR4       R#   + '       g   i     R# ; i)   z:module 'sysconfig' has no attribute 'expand_makefile_vars'r  r  r  r  r'   N)r     )z{sysconfig.expand_makefile_vars is deprecated and will be removed in Python 3.16. Use sysconfig.get_paths(vars=...) instead.)r  AttributeErrorr?   expand_makefile_varsrY   s   &rI   test_expand_makefile_vars*DeprecationTests.test_expand_makefile_vars  sO    __# !R  
 
 **2r2
 
 
 
s   AA	c                    V P                  RR\        RR7      ;_uu_ 4        \        P                  ! R4       RRR4       R#   + '       g   i     R# ; i)r  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 givenr  fooN)r     )r  	TypeErrorr?   r   rY   s   &rI   test_is_python_build_check_home0DeprecationTests.test_is_python_build_check_home   sM    __#5 W  	
 	
 %%e,	
 	
 	
 	
s   AA	rs   )
r  r  r  r  	Exceptionr  r  r  r  r  r  s   @rI   r  r    s"     :>i[_ M
3- -rK   r  __main__):r8   r\  r  r-   r1   r2  r_   r  r  r   testr   test.supportr   r   r   r   r	   r
   test.support.import_helperr   test.support.os_helperr   r   r   r   test.support.venvr   r?   r   r   r   r   r   r   r   r   r   r   r   r   r   sysconfig.__main__r   r   r    r!   r  r   
_sysconfig_HAS_USER_BASEr   TestCaser#   r  r  r  mainrs   rK   rI   <module>r     s     	  
 	        50 0 5 7 7 7 7
 \ [    ((ACH%%'> ACHH%% @-x(( -B zMMO rK   