SpdZddlZddlZddlZddlZddlZdZGddZdddZdZ ddd Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ d Z!d!Z"d"Z#d#Z$d$Z%d%Z&d&Z'd'Z(d(Z)d)Z*d*Z+d+Z,d,Z-d-Z.d.Z/d2d/Z0d0Z1e2d1kr e1dSdS)3zK Collect various information about Python to help debugging test failures. Nc||dSt|}tjdd|}|S)Nz\s+ )strresubstrip)texts 6/opt/alt/python311/lib64/python3.11/test/pythoninfo.pynormalize_textr s8 |t t99D 6&#t $ $D ::<<c eZdZdZdZdZdS) PythonInfoci|_dSN)infoselfs r __init__zPythonInfo.__init__s  r c||jvrtd|z|dSt|tsz(PythonInfo.get_infos..-s$DDDJCSZZDDDr )ritemsrs r get_infoszPythonInfo.get_infos)s%ED$)//2C2CDDDDr N)__name__ __module__ __qualname__rrr"rr r rrsF$EEEEEr r formattercv|D]5}t||d}|||z}| |||}|||6dSr)getattr)info_addobjname_fmt attributesr'attrrnames r copy_attributesr00siT4(( = $  IdE**Eur cd t||}n#t$rYdSwxYw|||dSrr)AttributeError)r*r/mod attr_namers r copy_attrr6;sRY''  HT5  !!c t||}n#t$rYdSwxYw|}| ||}|||dSrr2)r*r/r4 func_namer'funcrs r call_funcr;CsrsI&&  DFFE %   HT5r7cd}t|td|t|dtdt|dtdt|dtdtj}t td r|d tj}|d |d D]W}t t|}|t |d d}|s.t |dd}|r|d |}|d|z|Xt td}|rd}nd}|d|t td}|rd}nd}|d|dS)N)_emscripten_info _frameworkabiflags api_versionbuiltin_module_names byteorderdont_write_bytecode executableflags float_infofloat_repr_style hash_info hexversionimplementationint_infomaxsize maxunicodepathplatform platlibdirprefix thread_infoversion version_infowinverzsys.%szsys.androidapilevelgetandroidapilevelzsys.windowsversiongetwindowsversionzsys.getrecursionlimitgetrecursionlimitgetfilesystemencodeerrors/zsys.filesystem_encoding)stdinstdoutstderrencodingerrorszsys.%s.encodinggettotalrefcountz$Yes (sys.gettotalrefcount() present)z#No (sys.gettotalrefcount() missing)zbuild.Py_DEBUG getobjectszYes (sys.getobjects() present)zNo (sys.getobjects() missing)zbuild.Py_TRACE_REFS)r0sysr;getfilesystemencodinghasattrrYr)) r*r-r^r/streamr_Py_DEBUGr Py_TRACE_REFSs r collect_sysrhNsJ6Hc8Z888 h-s4HIII h,c3FGGG h/6IJJJ(**Hs/00I&hh(E(G(G(GH H &111- 5 5d## > 6:t44  400  4"*((FF3H"T)84444s.//H554 H t$$$C..M//. H "D)))))r cddl}|}dtt|}|d||d||d|dd|z}|r |d | |}d D]}||vr|d |d ||dS#t$rYdSwxYw) Nrrzplatform.architecturezplatform.python_implementationzplatform.platformT)aliasedz%s %szplatform.libc_ver)IDNAMEPRETTY_NAMEVARIANT VARIANT_IDVERSIONVERSION_CODENAME VERSION_IDz platform.freedesktop_os_release[]) rO architecturejoinfilterboolpython_implementationlibc_verrfreedesktop_os_releaseOSError)r*rOarchrx os_releasers r collect_platformr}smOOO  " "D 88F4&& ' 'D H $d+++ H -  + + - -/// H   t  , ,...(++---4466H0$h///&4466   & &C*$$ H>>>>_ & & & & & &      sC99 DDcJddl}|d|dS)Nrzlocale.getencoding)locale getencoding)r*rs r collect_localers0MMM H !6#5#5#7#788888r c|dtd|dtddS)Nzbuiltins.float.float_formatfloatzbuiltins.float.double_formatdouble)r __getformat__)r*s r collect_builtinsrsJ H *E,?,?,H,HIII H +U-@-@-J-JKKKKKr cddl}t|drx |d|jd}n#t$r}d|z}Yd}~nd}~wwxYw|d|dS#t $r!}|jt jkrYd}~dSd}~wwxYwdS)Nr getrandomzready (initialized)znot seeded yet (%s)z os.getrandom)osrdr GRND_NONBLOCKBlockingIOErrorrzerrnoENOSYS)r*rstateexcs r collect_urandomrs IIIr;   4 Q 0111-" 4 4 4-3 4 H^U + + + + +   yEL(()(((((   s75A AA A AA B )BB cddl}d}d}t||d||dD]}t|d|z||d}t|d|d |t|d r2 |}|d |n#t $rYnwxYwt d }|jD]k\}} | } | |vs?| d s*| dr$| dr|d|z| lt|dr;| d} | | |dd| zdSdS)NrcZ|dvr&ttd|DS|S)N)supports_follow_symlinks supports_fdsupports_effective_idsc3$K|] }|jV dSr)r#)rr:s r z2collect_os..format_attr..s$>>dm>>>>>>r )rsortedr.rs r format_attrzcollect_os..format_attrs> . . .v>>>>>>>?? ?Lr )r/supports_bytes_environrrrzos.%sr&) cpu_countgetcwdgetegidgeteuidgetgid getloadavg getresgid getresuidgetuidprocess_cpu_countunamecRdtt|S)N, )rtmapr)groupss r format_groupsz!collect_os..format_groupssyyS&))***r z os.getgroups getgroupsgetloginzos.login)DAPPDATAAR ARCHFLAGSARFLAGSAUDIODEV BUILDPYTHONCCCFLAGSCOLUMNS COMPUTERNAMECOMSPECCPPCPPFLAGSDISPLAYDISTUTILS_DEBUGDISTUTILS_USE_SDKDYLD_LIBRARY_PATHENSUREPIP_OPTIONS HISTORY_FILEHOME HOMEDRIVEHOMEPATH IDLESTARTUPLANGLDFLAGSLDSHAREDLD_LIBRARY_PATHLINESMACOSX_DEPLOYMENT_TARGETMAILCAPS MAKEFLAGSMIXERDEVMSSDKPATHPATHEXTPIP_CONFIG_FILEPLATPOSIXLY_CORRECT PY_SAX_PARSER ProgramFileszProgramFiles(x86)RUNNING_ON_VALGRIND SDK_TOOLS_BINSERVER_SOFTWARESHELLSOURCE_DATE_EPOCH SYSTEMROOTTEMPTERM TILE_LIBRARYTMPTMPDIRTRAVISTZ USERPROFILE VIRTUAL_ENVWAYLAND_DISPLAYWINDIR_PYTHON_HOSTRUNNER_PYTHON_HOST_PLATFORM_PYTHON_PROJECT_BASE_PYTHON_SYSCONFIGDATA_NAME__PYVENV_LAUNCHER__ ASAN_OPTIONS LSAN_OPTIONS MSAN_OPTIONS TSAN_OPTIONS UBSAN_OPTIONS)PYTHONLC_VS COMNTOOLSzos.environ[%s]umaskzos.umaskz0o%03o) rr0r;rdrrz frozensetenvironr!upper startswithendswithr) r*rrr-r:rloginENV_VARSr/rrmasks r collect_osrs IIIJHb':MMMM  6 6 (GdNB5555+++hK=QQQQr:( (KKMME HZ ' ' ' '     D GGGHPz''))55 e  X  011  %%  +0..*E*E  H%,e 4 4 4r7.xx{{ X_-----..s B B Bc ddl}n#t$rYdSwxYwddl}|} ||}n#t $rd}YnwxYw|d|z||nd|dSt |drV||j|j }d tt|}|d|dSdS)Nrzpwd.getpwuid(%s)z getgrouplistrzos.getgrouplist) pwd ImportErrorrrgetpwuidKeyErrorrdrpw_namepw_gidrtrr)r*rruidentryrs r collect_pwdr bs%  III ))++C S!!  H  $'UU\;;; } r>"", ==3sF++,,"F+++++,,s A AAc ddl}n#t$rYdSwxYwd}d}t||d||t|ds5t |dd}d |vr|d d dSd |vr|d d dSdSdS) Nrc:t|trd|zS|S)Nz%#x)rrrs r rz%collect_readline..format_attrs# eS ! ! 5= Lr )_READLINE_VERSION_READLINE_RUNTIME_VERSION_READLINE_LIBRARY_VERSIONz readline.%sr&r__doc__zlibedit readlinezreadline.libraryz GNU readline)readlinerr0rdr))r*rrr-docs r collect_readliner}s  J Hh z)++++ 88 9 99h 2..  $ $ H'); < < < < < s " " H' 8 8 8 8 8 99 # "  cddl} |gd|j|jd}|d}|jrdSn#t $rYdSwxYw|d}|d|dS)Nr)gdbz-nx --versionTr\r]universal_newlines gdb_version) subprocessPopenPIPE communicate returncoderz splitlines)r*rprocrSs r collect_gdbr#s  ; ; ;'1'137 99""$$Q' ?  F    ""1%G H]G$$$$$sAA AAc ddl}d}t||d|n#t$rYnwxYw ddl}|}|dd}|d|dS#t$rYdSwxYw)Nr) TK_VERSION TCL_VERSIONz tkinter.%sr patchlevelztkinter.info_patchlevel)_tkinterr0rtkinterTclcall)r*r(r-r)tclr's r collect_tkinterr-sF3 (L*EEEE      8kkmmXXfl33 *J77777      s ((A(( A65A6cdddl}|d|d}t||d|t|drgdD]f} tjd5||}dddn #1swxYwY|d |z|U#t $rYawxYwdSdS) Nrz time.time)altzonedaylighttimezonetznameztime.%sget_clock_info)clock monotonic perf_counter process_time thread_timetimeT)recordztime.get_clock_info(%s))r9r0rdwarningscatch_warningsr3r)r*r9r-r4 clock_infos r collect_timer>sBKKK H[$))++&&&J HdIz:::t%&& H= H HE H,D999<>>>>rcddl}|d|dD]>}||}|dkr|s t|}|d|z|?|d}|od|v}|rd}nd }|d |d D]-}||}|rd }nd }|d||.dS)Nrzsysconfig.is_python_build)ABIFLAGSANDROID_API_LEVELrCCSHAREDrCFLAGSFORSHARED CONFIG_ARGS HOSTRUNNER HOST_GNU_TYPEMACHDEP MULTIARCHOPT PY_CFLAGSPY_CFLAGS_NODISTPY_CORE_LDFLAGS PY_LDFLAGSPY_LDFLAGS_NODISTPY_STDMODULE_CFLAGSrfPy_ENABLE_SHAREDPy_NOGILrSOABI abs_builddir abs_srcdirrQsrcdirrIz sysconfig[%s]rRz-DNDEBUGz!ignore assertions (macro defined)z$build assertions (macro not defined)z build.NDEBUG)WITH_DOC_STRINGS WITH_DTRACEWITH_FREELISTS WITH_PYMALLOC WITH_VALGRINDYesNozbuild.) sysconfigis_python_buildget_config_varr )r*rer/rrRNDEBUGr s r collect_sysconfigris5 H ()*C*C*E*EFFF"0"0:((.. & & &u & u%%4'////((55I3J)3F 524 H^D!!! ( (((..  DDD$$'''' ( (r chddl} ddl}n#t$rYdSwxYw ddl}n#t$rd}YnwxYwd}d}t ||d||d||jfd|fd|ffD]\}}d }t ||d |d |d d g}|Gt|dr7| } | | d| df|D]0} |j |} n#t$rYwxYw|d|z| 1dS)Nrc:|drd|zS|S)NOP_z%#8xrrs r rz collect_ssl..format_attr9s% ??5 ! ! E> !Lr )OPENSSL_VERSIONOPENSSL_VERSION_INFOHAS_SNIOP_ALL OP_NO_TLSv1_1zssl.%sr& SSLContextdefault_https_contextstdlib_context)minimum_versionmaximum_versionprotocoloptions verify_modezssl.z.%s OPENSSL_CONF SSLKEYLOGFILEget_default_verify_pathszssl.environ[%s])rsslr_sslr0rsPROTOCOL_TLS_CLIENT_create_default_https_context_create_stdlib_contextrdr}extendrr) r*rrrrr-r/ctx env_namespartsrs r collect_sslr.s III   JHc8Z;OOOO s~~c&=>>? #"C"C"E"EF 355778 E E c   #'7d'7'7'7DDDD1I GD*DEE--//%(E!H-...22 Jt$EE    H "T)51111 22s* " 11 D DDc ddl}n#t$rYdSwxYw |}|d|dS#ttf$rt jdkrYdSwxYw)Nrzsocket.hostnamewasi)socketr gethostnamerzr3rbrO)r*rhostnames r collect_socketrcs .%%'' "H----- ^ $ <6 ! !  " ! !s ;"A! A!c\ ddl}n#t$rYdSwxYwd}t||d|dS)Nr)sqlite_versionz sqlite3.%s)sqlite3rr0)r*rr-s r collect_sqliterssU %JHg|Z@@@@@rc\ ddl}n#t$rYdSwxYwd}t||d|dS)Nr) ZLIB_VERSIONZLIB_RUNTIME_VERSIONzzlib.%s)zlibrr0)r*rr-s r collect_zlibr}sU :JHdIz:::::rc` ddlm}n#t$rYdSwxYwd}t||d|dS)Nr)expat) EXPAT_VERSIONzexpat.%s) xml.parsersrrr0)r*rr-s r collect_expatrs_%%%%%%% $JHeZ<<<<<  c\ ddl}n#t$rYdSwxYwd}t||d|dS)Nr)__libmpdec_version__z _decimal.%s)_decimalrr0)r*rr-s r collect_decimalrsU +JHh zBBBBBrch ddl}n#t$rYdSwxYwdD]}t|d|||dS)Nr)LONG_MAXPY_SSIZE_T_MAXPy_C_RECURSION_LIMIT SIZEOF_TIME_TSIZEOF_WCHAR_Tz _testcapi.) _testcapirr6)r*rr/s r collect_testcapirsy BB (///DAAAABBrc ddl}n#t$rYdSwxYwt|d|ddD]}t|d|||dS)Nrzpymem.allocatorpymem_getallocatorsname)SIZEOF_PYGC_HEADSIZEOF_PYOBJECTz_testinternalcapi.)_testinternalcapirr;r6)r*rr/s r collect_testinternalcapirs     h)+<>WXXXRR (7779JDQQQQ RRrc ddl}n#t$rYdSwxYwdt|D}|D]6}t||}||}|d|z|7t |d|ddS)Nrc<g|]}|d|S)RLIMIT_rm)rr.s r z$collect_resource..s) K K Kt 0J0J Kd K K Kr z resource.%szresource.pagesize getpagesize)resourcerdirr) getrlimitr;)r*rlimitsr/rrs r collect_resourcers L Ks8}} K K KF..h%%""3''%u---- h+X}EEEEErcddl} ddlm}n#t|jf$rYdSwxYwdt |D}t ||d|dS)Nr) test_socketc<g|]}|d|S)HAVE_rm)rr/s r rz'collect_test_socket..s8///4__W--/$///r ztest_socket.%s)unittesttestrrSkipTestrr0)r*rrr-s r collect_test_socketrsOOO$$$$$$$ * +//3{#3#3///JHk+;ZHHHHHs  ""ch ddlm}n#t$rYdSwxYwd}t||d|t |d|dt |d|d|d |d |d |d |d|d dS)Nr)support) MS_WINDOWShas_fork_supporthas_socket_supporthas_strftime_extensionshas_subprocess_support is_android is_emscripten is_jythonis_wasiz support.%szsupport._is_gui_available_is_gui_availablezsupport.python_is_optimizedpython_is_optimizedz%support.check_sanitizer(address=True)T)addressz$support.check_sanitizer(memory=True))memoryz support.check_sanitizer(ub=True))ub)rrrr0r;check_sanitizer)r*rr-s r collect_supportrs        JHg|Z@@@ h3W>QRRR h5w@UVVV H 4  $ $T $ 2 2444 H 3  $ $D $ 1 1333 H /  $ $ $ - -/////rc ddlm}n#t$rYdSwxYwdD])}t||}|d||*dS)Nr) os_helper) can_symlink can_xattr can_chmodcan_dac_overridezsupport_os_helper.) test.supportrrr))r*rr/r:s r collect_support_os_helperrs******* 66 y$'',d,,ddff555566rc ddlm}n#t$rYdSwxYwd}t||d|dD])}t ||}|d||*dS)Nr) socket_helper) IPV6_ENABLEDhas_gethostnamezsupport_socket_helper.%s) tcp_blackholezsupport_socket_helper.)rrrr0r))r*rr-r/r:s r collect_support_socket_helperrs....... JHm-GTTT::}d++0$00$$&&9999 ::rc` ddlm}n#t$rYdSwxYwd}t||d|dS)Nr)threading_helper)can_start_threadzsupport_threading_helper.%s)rrrr0)r*rr-s r collect_support_threading_helperrsc1111111 JH.0MzZZZZZrc ddl}ddl}|d}|sdS ddl}||}n$#t $r|}YnwxYw|d |||j|j d}n#t$rYdSwxYw| d}|j rdS| d}t|}|d|dS)NrrrTrz CC.version)rrergshlexsplitrappendrrSTDOUTrzrr r!r ) r*rrerrargsr"r\r s r collect_ccr#sP  ! !$ ' 'B  {{2 xxzzKK  '1'1'837 99         "F      q !D $  D H\4     s!=AA7#B B)(B)c  ddlm}n#t$rYdSwxYw|ddt t |dS)Nr) _GDBM_VERSIONzgdbm.GDBM_VERSION.)_gdbmrrrtrr)r*rs r collect_gdbmrFso'''''''  H #((3sM+B+B"C"CDDDDDrc  ddlm}n#t$rYdSwxYw|}t|D]A}||}t|D]'}||d|dt ||(BdS)Nr) get_configs[rr)rrrrrepr)r*r all_configs config_typeconfigrs r collect_get_configrOs1111111 +--Kk**GG [)&>> G GC Hccc2D4E4E F F F F GGGrc2ddl}t||dddS)Nrz subprocess.%s)_USE_POSIX_SPAWN)rr0)r*rs r collect_subprocessr]s)Hj/;PQQQQQr ctjdkrdS ddl}t|dst |d}|j} |j}||_d|_ t|}n#t$rd}YnwxYw|d||j j }|j}||_d|_ |d|n#t$rYnwxYw ddl}|tj} |d | n#ttf$rYnwxYwddl} | gd | j| jd d } | \} } | jrd} | D]}|}|dr6|d}|r |d|a|dr5|d}|r |d|n#t6$rYnwxYw | dgd | j| jd } | d} | jdkrdS| jrd} | } | d}|r |d|n#t6$rYdSwxYwddl} ||jd}d} |||\}}| |n#| |wxYw |d|rdnddS#t6$rYdSwxYw)Nwin32rWinDLLntdllrzzwindows.RtlAreLongPathsEnabledzwindows.is_adminzwindows.dll_path)wmicrgetzCaption,Versionz/valueoemT)r\r]r^r rzCaption=zwindows.version_captionzVersion=zwindows.versionver)shellr\r]r lBz windows.verz8SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock!AllowDevelopmentWithoutDevLicensezwindows.developer_modeenableddisabled)!rbrOctypesrdrrc_ubyteRtlAreLongPathsEnabledrestypeargtypesrvr3windllshell32 IsUserAnAdmin_winapiGetModuleFileName dllhandlerrrrr r!rr removeprefixrzwinregOpenKeyHKEY_LOCAL_MACHINE QueryValueExCloseKey)r*r rBOOLEANr resrrrdll_pathrr"outputr]linerrsubkeyr value_types r collect_windowsr!bs |w6 vx((     g&&. 1%*%A ".5 " *.0 " +--//00CC  - - -,CCC - 13777-'- ' !# #]]__5555'      * ,,S];;#X....  (     6 R R R'1'1).%)  ++ ))++ ? F%%'' 6 6D::<H6===,, 6((44::<<6H.555 6      *t'1'1%) ++!!##A& ?j ( ( F ? F  ""1%  * H]D ) ) ) MMM Onn  % GII5 ! & 3 3C @ @ E: OOC FOOC  )+M99:NNNNN      sC A:: B B  CC/DD#"D#+AH22 H?>H?A K K K#"K#+M% L8"M%8MM%% M32M3c@ ddl}n#t$rd}YnwxYw|t|d|d tdd5}|}dddn #1swxYwY|r|d|dSdS#t $rYdSwxYw)Nrzfips.openssl_fips_mode get_fips_modez/proc/sys/crypto/fips_enabledzutf-8)r^zfips.linux_crypto_fips_enabled)_hashlibrr;openrrstriprz)r*r$fprs r collect_fipsr(s& (4hPPP 1G D D D *;;==''))D * * * * * * * * * * * * * * *  = H5t < < < < < = =      s@ B'A2& B2A66B9A6:B BBcJddl}|d|dS)Nrztempfile.gettempdir)tempfile gettempdir)r*r*s r collect_tempfiler,s0OOO H "H$7$7$9$9:::::r c ddlm}n#t$rYdSwxYw|dd|dS)Nr)utilszlibregrtests.build_infor)test.libregrtestr.rrtget_build_info)r*r.s r collect_libregrtest_utilsr1sq*******  H &1E1E1G1G(H(HIIIIIrcLd}|j}gttttt t tttttttttt t"t$t&t(t*t,t.t0t2t4t6t8t:t<t>t@tBtDtFtHRD]} ||#tJ$rd}tMd|j'ztPj)tUj+tPj)tMtPj)tPj),YwxYw|S)NFTzERROR: %s() failedfile)-rrrrrBrFrrr(r#rrrrr}r rrrrrrrhrirrr,r>r-r!rr1rrrrr Exceptionprintr#rbr] traceback print_excflush)rerrorr* collect_funcs r collect_infor<sH ExH+  +  + + + + + + + + + + !+" #+$ %+& '+( )+* ++, -+. /+0 1+2 3+4 5+6 7+8 9+: !;+< =+> ?+@ A+B C+D E+F "G+L M+N O+P "Q+R &S+T )U++44 X  L " " " "   E &,*?@z # # # #  SZ 0 0 0 0 sz " " " " J          Ls DBF! F!cPd}t|tdt|zt|}t|}|D]/\}}|dd}t|d|0dS)NzPython debug information= rz: )r6lenr"rr!replace)rr4titleinfosrrs r dump_inforD's &E %LLL #E  GGG NN  E 5;;== ! !E'' U dC(( ###uu%&&&&''r ct}t|}t||r?ttdtjt jddSdS)Nz"Collection failed: exit with errorr3r)rr<rDr6rbr]exit)rr:s r mainrG4se <rBrFrirrrrrrrrrrrrrrrrrrr!r(r,r1r<rDrGr#rr r rIs~ EEEEEEEE:GK<@A*A*A*H"&"&"&J999 LLL &J.J.J.Z,,,6999:%%%(888&HHH6MMM???=(=(=(@222222j . . . AAA;;;===CCC B B B R R R F F F I I I///< 6 6 6 :::& [ [ [ ! ! !FEEE G G GRRR cOcOcOL   &;;; JJJ:::z ' ' ' ' zDFFFFFr