\8 ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlmZmZddlmZddlmZddlmZdZeZedzZdZd Zed zZeZeZ eZ!e"e d fZ#e$e Z%e$e"e e&fZ'e"e d fZ(e)e e(fZ*d Z+d e$edzddfdZ,d;dZ-dZ.dddfd$Z?d"e d%edzde fd&Z@eAd'ZBdd(d)ZCd*ZDd+ZEd,ZFd-eefd.ZGd/ZHd-e"ed fd0e"ed fdzfd1ZIdefd2ZJd3d4d5d6ZKd7ZLejd8ZNd9ZOd:ZPy)>N)CallableIterable)support) os_helper)threading_helper test_python_worker_g^@) audiocurses largefilenetworkdecimalcpu subprocessurlfetchguiwalltime)extralargefiletzdata.ctj|dz}t|d\}}t|d\}}t|d\}}g}|r|jd|z|r|jd|z|r1|r|jd|zn|jd||dz zz|sd|zS|dd }d j |S) Ng@@i<z%s hourz%s minz%s secz%.1f secz%s ms )mathceildivmodappendjoin)secondsmsminuteshourspartss =/opt/alt/python312/lib64/python3.12/test/libregrtest/utils.pyformat_durationr%=s 7S= !BT"KGRgr*GWGR(NE7 E  Y&' X'(  LLG+ , LLwd':; < | "1IE 88E?namesreturnc|syt|D]2\}}tjj|\}}|dk(s.|||<4y)Nz.py) enumerateospathsplitext)r'idxnamebasenameexts r$strip_py_suffixr2VsC u% T((. # %<!E#J&r&c"|dk(r|S||S|dzS)Ns)nsingularplurals r$r9r9_s#Av   #~r&c*|dk(r|d|S|d|dS)Nr4rr5r6)r7words r$countr<hs+AvAdV}AdV1~r&c d|z}ttjdjdt |D||||y)zPrint the elements of iterable x to stdout. Optional arg width (default 70) is the maximum line length. Optional arg indent (default 4) is the number of blanks with which to begin each line. rc32K|]}t|ywN)str).0elts r$ zprintlist..ys ?YcSYs)initial_indentsubsequent_indent)fileN)printtextwrapfillrsorted)xwidthindentrFblankss r$ printlistrOos@6\F (-- ?VAY ??'- Ir&c.tj|yr?)r print_warning)msgs r$rQrQ~s #r&c\dt_tjdtj} tj tjj t_t|tjj|t_y#|t_wxYw)NTzUnraisable exception) renvironment_alteredrQsysstderrflush_std_streams orig_stderrorig_unraisablehookflush) unraisable old_stderrs r$regrtest_unraisable_hookr]sm"&G 01J !!#**66 J'  Z s A B B+cBtjatt_yr?)rUunraisablehookrYr]r6r&r$setup_unraisable_hookr`s,,1Cr&cdt_tjd|jjt j } tjtjjt _t|t j j|t _y#|t _wxYw)NTzUncaught thread exception: ) rrTrQexc_type__name__rUrVrWrXorig_threading_excepthookrZ)argsr\s r$regrtest_threading_excepthookrfs"&G 7 8N8N7OPQJ !!#**66 !$'  Z s A B55 Cc:ddl}|jat|_yNr) threading excepthookrdrf)ris r$setup_threading_excepthookrks ) 4 48Ir&chtjjD]}t|ds|`tj tj tjtjfD]}||j tjd}|j tjd}|jj tjd}|j tjd}|j tjd}|j! tjd}|j# tjd}|j$j tjd } | j' tjd } d| _ tjd } | j+ tjd } | j,D] } |  d dl}t1|j2| j4j}|D]+}|j7|gzD]}|j9- tjd}|j:j= tjd}|j>j=|j@j|jBj tjd}|jDjFj=y#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYmwxYw#t$rYYwxYw#t$rYEwxYw#t$rY'wxYw#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYuwxYw#t$rYWwxYw#t$rYwxYw#t$rYywxYw)N__warningregistry__re _strptimez urllib.parsezurllib.request linecache mimetypesfilecmpstructdoctestctypestypingr fractionsinspectzimportlib.metadata)$rUmodulesvalueshasattrrmstdoutrV __stdout__ __stderr__rZpurgeKeyError _regex_cacheclear clear_cache urlcleanup clearcache_default_mime_types_cache _clearcachemaster _reset_cache _cleanupsrxfilter isabstract__dict____subclasses___abc_caches_clear_hash_algorithm cache_clear%_shadowed_dict_from_weakref_mro_tuple_filesbymodname modulesbyfileFastPath__new__)modstreamrnro urllib_parseurllib_requestrprqrrrsrtrurvfrx abs_classesabcobjrwimportlib_metadatas r$ clear_cachesrs{{!!# 3- .'$ ::szz3>>3>>J   LLNK [[   'KK ,  $$&#{{>2    "$%56 !!#KK ,  (KK ,  %%'++i( X& ++i(X&  (X&!!A C" W//1G1G1IJ C))+se3%%'40KK ,  !!--/&++i( 55AAC%%'##%: [[)=> ##++779O                                                        s M/M%M5N%N N%-N5O?OO%>O5 P;PP% M"!M"% M21M25 NN NN N"!N"% N21N25 OO OO O"!O"% O21O25 PP PP P"!P"% P10P1ctjdxsd}tjdxsd}tjdxsd}tjdxsd}g}tjdr|jdttdr*|jd d ||zvrQ|jd n?|jd d |vr|jdnd ||zvr|jdtjd}|r|jd|t tjdxsd}|r|jdg}d|vr|jdnd|vr|jdt jr|jdt jr|jd|r |jdj|g}t jdr|jdt jdr|jdt jd r|jd!t jd"r|jd#|r |jdj|ttd$r|jd%ttd&r|jd'tjd(r|jd)tjd*r|jd+|S),N CONFIG_ARGS PY_CFLAGSPY_CFLAGS_NODISTPY_LDFLAGS_NODISTPy_NOGILnogilgettotalrefcountdebugz-DNDEBUGwithout_assertreleasez--with-assertions with_assertPYTHONFRAMEWORKz framework=PY_ENABLE_SHARED0sharedz -flto=thinThinLTOz-fltoLTOPGOBOLT+TaddressASANmemoryMSANubUBSANthreadTSAN getobjects TraceRefs _stats_onpystats WITH_VALGRINDvalgrind WITH_DTRACEdtrace) sysconfigget_config_varrr{rUintrcheck_cflags_pgocheck_bolt_optimizedrcheck_sanitizer) config_argscflags cflags_nodistldflags_nodistbuild frameworkr optimizations sanitizerss r$get_build_infor)s**=9?RK  % %k 2 8bF,,-?@FBM--.ABHbN E + Ws&' W &=0 1 LL) * Y + - LL '  6 7 LL '(():;I z)-.))*<=D EF  XM~%Y' N "U#!U###%V$ SXXm,-Jt,&!d+&!$''"d+&! SXXj)*sL! [!sK  Y0 Z  . X Lr&tmp_dirc|r!tjj|}ntjrt j sqtjd}|9tjd}|s"tjd}|s tdtjj|d}nrtjd}|std|dtjj|d}tj|d ntj}tjj|S) N abs_builddir abs_srcdirsrcdirz1Could not determine the correct value for tmp_dirr projectbasez>sysconfig.get_config_var('projectbase') unexpectedly returned z on WASIT)exist_ok)r+r, expanduserris_python_buildris_wasir RuntimeErrorrmakedirstempfile gettempdirabspath)rs r$ get_temp_dirrs ''$$W-  $ $ &??#22>B?'66|DG" #,":":8"D&". S#'',,w8$22=A&118 8E'',,w8  Gd3))+G 77??7 ##r&ctjrFtjd}|dk(rtjdytj|yy)Nri)r is_emscriptenr+umask)old_masks r$ fix_umaskrs>88A; u  HHUO HHX r&F parent_dirworkercPtjstjrtjdd}nt j }|rtt|z}ntt|z}|tjz }t jj||}|S)Nri@B)rrrrandomrandintr+getpidWORK_DIR_PREFIXr@WORKER_WORK_DIR_PREFIXr FS_NONASCIIr,r)rrnouncework_dirs r$ get_work_dirrsv 9- "S[0)CK7 %%%Hww||J1H Or&c#K dy#t$rT}tjrtjt dt j|jYd}~yd}~wwxYww)NT)exit) SystemExitrcan_start_thread faulthandlerdump_traceback_later EXIT_TIMEOUTrUrcode)excs r$ exit_timeoutrsK   , ,  - -l F  s+A) A) A&A A!A)!A&&A) test_nameverbosec ptj}tjj |sytjj |rddl}d|j}}nAtjj|rdtj}}ntd|d|rt|d|d|dt_ ddl}tj||j |j"z|j$z||y#t&$r }t|d|d|d |Yd}~yd}~wwxYw) Nr directoryrFz os.path says z) exists but is neither directory nor filez left behind rTz and it couldn't be removed: )rTESTFNr+r,existsisdirshutilrmtreeisfileunlinkrrQrrTstatchmodS_IRWXUS_IRWXGS_IRWXO Exception)rrr/rkindnukerrrs r$ remove_testfnrs   D 77>>$  ww}}T!6==e  biie]4(3012 2 =ax@A&*#< t||dll2T\\AB d < =ax@558E; < < z#Unable to raise RLIMIT_NOFILE from z to z: r') resource ImportError getrlimit RLIMIT_NOFILEmin setrlimitrG ValueErrorOSErrorrQ)r2fd_limitmax_fds desired_fds new_fd_limiterrs r$adjust_rlimit_nofiler?#s !**8+A+ABHgK+(W"4;0  5   x55 ,g6 8 *8*DG H #5 G$ 5 ?z)N"SE4 5 5 5s(A//A>/ A;:A;>B, B''B,crtjjdx}tjd}|S)N_PYTHON_HOSTRUNNER HOSTRUNNER)r+environgetrr) hostrunners r$get_host_runnerrF=s1jjnn%9:: C--l; r&c&dtjvS)N_PYTHON_HOST_PLATFORM)r+rCr6r&r$is_cross_compiledrICs #rzz 12r& use_resourcesct|}tt}dg}t||z D]}|jd|t||z D]}|j|dj |}d|}dj t|}dt |d|}t |t |kr|S|S)Nall-,z resources: z resources (z): )set ALL_RESOURCESrJrrlen)rJ all_resources relative_allr/all_texttexts r$format_resourcesrVGs &M &M7L}}45avJ'6}}45tf&6xx %HXJ'H 88F=) *D ]+,Cv 6D 8}D ! r&cttdrttjdStjS)Nsched_getaffinityr)r{r+rQrX cpu_countr6r&r$process_cpu_countrZ_s/r&'2''*++||~r& python_cmdctdtjgtjj tdtjddtj ztddjttdtjtj}|r%t}|r ||k7r|d|d }td |td tjd tj|rt!|}td |n tdt#}|r td|rt%j|}td|g|dd}t'j(|t&j*dt,j.}|j0j3ddj5} | rtd| n@|j6r4td|j6dnt9} | rtd| t;j<d} t;j<d} t;j<d} t;j<d}g}| r|j?d| r|j?d| r|j?d|r|j?d |ritd!d"j|| d#f| d$f| d%f|d&ffD];\}}tj@jC|}|s(|+td |d'|=td(y))Nz==T)aliasedz %s-endianz== Python build:rz== cwd:z (process) / z (system)z == CPU count:z== encodings: locale=z FS=z== zL== resources: all test resources are disabled, use -u option to unskip testsz== cross compiled: Yesz== host python: z-mplatform)r|rUcwd z== host platform: z1== host platform: z== host runner: rrrrrrzundefined behaviorrz== sanitizers: z, ASAN_OPTIONS MSAN_OPTIONS UBSAN_OPTIONS TSAN_OPTIONS=)rZ)"rGr^python_implementationrUversionr) byteorderrrr+getcwdrYrZlocale getencodinggetfilesystemencodingrVrIshlexrrunPIPErSAVEDCWDr|replacestrip returncoderFrrrrCrD)rJr[rYaffinityrU cross_compilecmdget_cmdprocr|rEasanmsanubsantsanr sanitizerenv_varoptionss r$display_headerrfs $..0G3;;3D3D3FG $!!$/ -/ chh~'789 )RYY[! I$& I-#*M)IFI oy)    !3#<#<#> @A . D6l . /&'M &'jj$  &'1J11j1~~ ??"" $ $$T3/557  &vh/ 0 __ EdooEVVWX Y$&  $ZL1 2  " "4 0D  " "$ /D  # #t ,E  " "$ /DJ )$ (# ./ (#  * 5678 > " > " O $ > " # Iw ZZ^^G,GW0G9Ag[12#  r&cddl}tjj|j |t dz}t d|z|j|D]h}tjj|r$t d|ztj|Ft d|ztj|jy)Nr*zCleanup %s directoryzRemove directory: %szRemove file: %s) globr+r,rescape TMP_PREFIXrGr rrr)rrr,r/s r$cleanup_temp_dirrs 77<< G,j3.> ?D 7 *+ $ 77==  (4/ 0   T " #d* +   T "  r&STATUS_ACCESS_VIOLATIONSTATUS_STACK_OVERFLOWSTATUS_CONTROL_C_EXIT)lll:c|dkr#| } tj|jS t|S#t$rYwxYw#t $rYywxYwrh)signalSignalsr/r8WINDOWS_STATUSr)exitcodesignums r$get_signal_namersd!| >>&).. . h''        s3A ?? A Au[- --￾￿]+c<|d}djd|DS)Nrrc3`K|]&}|dkrdt|dn t|dd(yw)ÿz\x02xr4r(N)ordascii)rAchs r$rCz(_sanitize_xml_replace..s:#!r+-,SR &E"IaOK!s,.)r)regsrUs r$_sanitize_xml_replacers) 7D 77#!# ##r&c6tjt|Sr?)ILLEGAL_XML_CHARS_REsubr)rUs r$ sanitize_xmlrs  # #$94 @@r&r?)FN)F)Q contextlibrrkros.pathr+r^rrnrnrrrUrrrHcollections.abcrrtestr test.supportrrrrrrrPRESOURCE_NAMESr@StrPathTestNameStrJSONtuple TestTuplelistTestListbool TestFilter FilterTupledict FilterDictr%r2r9r<rOrQrYr]r`rdrfrkrrrrrcontextmanagerrrrr frozensetr*r0r?rFrIrVrZrrrrcompilerrrr6r&r$rso   .")  (94  P !==    (C- >%$' ( HcM" (K' ( 2"49t+""   2 !  9u:pVr)$'D.)$G)$XWdw( "#h#"# 5:*54 3HSM0K%S/K$S#X5K\ #g #*''  "rzz    # Ar&