fTddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlmZmZddlmZddlmZddlmZdZeZedzZdZd Zed zZeZeZeZ e!ed fZ"e#eZ$e#e!ee%fZ&e!ed fZ'e(ee'fZ)d Z*d e#edzddfdZ+d8dZ,dZ-d9dZ.dZ/da0dZ1dZ2da3dZ4dZ5dZ6dZ7d8dedzdefdZ8dZ9d:dede%defd Z:ejvd!Zd"ed%edzdefd&Z?e@d'ZAdd(d)ZBd*ZCd+ZDd,ZEd-eefd.ZFd/ZGd-e!ed fd0e!ed fdzfd1ZHdefd2ZId3d4d5d6ZJd7ZKy);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 -/usr/lib/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_suffixr2UsH 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<gs+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..xs ?cS ?s)initial_indentsubsequent_indent)fileN)printtextwrapfillrsorted)xwidthindentrFblankss r$ printlistrOns@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&ctjjD]}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] } |   tjd }|j.j1 tjd}|j2j1|j4j|j6j tjd}|j8j:j1y#t$rYQwxYw#t$rY3wxYw#t$rYwxYw#t$rY wxYw#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYwxYw#t$rYuwxYw#t$rYWwxYw#t$rYwxYw#t$rYywxYw)N__warningregistry__re _strptimez urllib.parsezurllib.request linecache mimetypesfilecmpstructdoctestctypestyping fractionsinspectzimportlib.metadata)rUmodulesvalueshasattrrmstdoutrV __stdout__ __stderr__rZpurgeKeyError _regex_cacheclear clear_cache urlcleanup clearcache_default_mime_types_cache _clearcachemaster _reset_cache _cleanups_hash_algorithm cache_clear_shadowed_dict_from_mro_tuple_filesbymodname modulesbyfileFastPath__new__)modstreamrnro urllib_parseurllib_requestrprqrrrsrtrurvfrwrximportlib_metadatas r$ clear_cachesrs{{!!#( 3- .'( ::szz3>>3>>J   LLN [[   'KK ,  $$&#{{>2    "$%56 !!#KK ,  (KK ,  %%'++i( X& ++i(X& X&!! A C 0KK ,  !!--/&++i( --99;%%'##%: [[)=> ##++779C                                                        s K2.LLL"$L2M,MM">M2N=N*N"N2:O2 K?>K? LL LL" L/.L/2 L?>L? MM MM" M/.M/2 M?>M? NN NN" N/.N/2 N?>N? O OcTtjdxsd}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|jd|r |jdj|g}t jdr|jdt jdr|jdt jdr|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-fltoLTOPGO+TaddressASANmemoryMSANubUBSANthreadTSAN getobjects TraceRefs _stats_onpystats WITH_VALGRINDvalgrind WITH_DTRACEdtrace) sysconfigget_config_varrr{rUintrcheck_cflags_pgorcheck_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# 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_dirrvs ''$$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)r(fd_limitmax_fds desired_fds new_fd_limiterrs r$adjust_rlimit_nofiler5s !**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_runnerr<1s1jjnn%9:: C--l; r&c&dtjvS)N_PYTHON_HOST_PLATFORM)r+r9r6r&r$is_cross_compiledr?7s #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)r@ all_resources relative_allr/all_texttexts r$format_resourcesrL;s &M &M7L}}45(avJ'(}}45'tf&'xx %HXJ'H 88F=) *D ]+,Cv 6D 8}D ! r&cttdrttjdStjS)Nsched_getaffinityr)r{r+rGrN cpu_countr6r&r$process_cpu_countrPSs/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|rKcwd z== host platform: z1== host platform: z== host runner: rrrrrrzundefined behaviorrz== sanitizers: z, ASAN_OPTIONS MSAN_OPTIONS UBSAN_OPTIONS TSAN_OPTIONS=)rZ)"rGrTpython_implementationrUversionr byteorderrrr+getcwdrOrPlocale getencodinggetfilesystemencodingrLr?shlexrrunPIPErSAVEDCWDr|replacestrip returncoder<rrrr9r:)r@rQrOaffinityrK cross_compilecmdget_cmdprocr|r;asanmsanubsantsanr sanitizerenv_varoptionss r$display_headerrwZs $..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 $ > " #  3 Iw ZZ^^G,GW0G9Ag[12 3 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_PREFIXrGrrrr)rrzr,r/s r$cleanup_temp_dirr}s 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/r.WINDOWS_STATUSr)exitcodesignums r$get_signal_namersd!| >>&).. . h''        s3A ?? A Ar?)FN)F)L contextlibrraros.pathr+rTrrdrrrUrrrHcollections.abcrrtestr test.supportrrr|rrrrFRESOURCE_NAMESr@StrPathTestNameStrJSONtuple TestTuplelistTestListbool TestFilter FilterTupledict FilterDictr%r2r9r<rOrQrYr]r`rdrfrkrrrrrcontextmanagerrrrr frozensetr r&r5r<r?rLrPrwr}rrr6r&r$rsI   .")  (94  P !==    (C- >%$' ( HcM" (K' ( 2"49t+""   2 !  9o:dQh)$'D.)$G)$XWdw( "#h#"# 5:*54 3HSM0K%S/K$S#X5K\ #g #*'' r&