gG~ddlZddlZddlZddlZddlZddlZddlZddlZddl 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+d:dZ,dZ-d;dZ.dZ/da0dZ1dZ2da3dZ4dZ5dZ6dZ7d:dedzdefdZ8dZ9dd$ed'edzdefd(Z?e@d)ZAdd*d+ZBd,ZCd-ZDd.ZEd/eefd0ZFd1ZGd/e!ed fd2e!ed fdzfd3ZHdefd4ZId5d6d7d8ZJd9ZKdS)=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|d|z|r|d|z|r9|r|d|zn|d||dz zz|sd|zS|dd }d |S) Ng@@i<z%s hourz%s minz%s secz%.1f secz%s ms )mathceildivmodappendjoin)secondsmsminuteshourspartss =/opt/alt/python311/lib64/python3.11/test/libregrtest/utils.pyformat_durationr%<s  7S= ! !BT""KGRgr**GWGR((NE7 E ( Y&''') X'(((=  = LLG+ , , , , LLwd':; < < < | "1"IE 88E??namesreturnc|sdSt|D]2\}}tj|\}}|dkr|||<3dS)Nz.py) enumerateospathsplitext)r'idxnamebasenameexts r$strip_py_suffixr2Us` u%%"" T((.. # %<<!E#J""r&c$|dkr|S||S|dzS)Ns)nsingularplurals r$r9r9^s%Avv   #~r&c,|dkr|d|S|d|dS)Nr4rr5r6)r7words r$countr<gs-Avv}}d}}~~d~~~r&Fc d|z}ttjddt |D||||dS)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. rc34K|]}t|VdSN)str).0elts r$ zprintlist..xs( ? ?cS ? ? ? ? ? ?r&)initial_indentsubsequent_indent)fileN)printtextwrapfillrsorted)xwidthindentrHblankss r$ printlistrQnsq6\F (- ? ?VAYY ? ? ???'- I I Ir&c.tj|dSrA)r print_warning)msgs r$rSrS}s #r&cPdt_tjdtj} tjtjjt_t|tj|t_dS#|t_wxYw)NTzUnraisable exception) renvironment_alteredrSsysstderrflush_std_streams orig_stderrorig_unraisablehookflush) unraisable old_stderrs r$regrtest_unraisable_hookr_s"&G 0111J !###*6 J'''  Z s ABB%c@tjatt_dSrA)rWunraisablehookr[r_r6r&r$setup_unraisable_hookrbs,1Cr&cjdt_tjd|jjt j} tjtjjt _t|t j |t _dS#|t _wxYw)NTzUncaught thread exception: ) rrVrSexc_type__name__rWrXrYrZorig_threading_excepthookr\)argsr^s r$regrtest_threading_excepthookrhs"&G P 8NPPQQQJ !###*6 !$'''  Z s AB$$B2c4ddl}|jat|_dSNr) threading excepthookrfrh)rks r$setup_threading_excepthookrms% ) 48Ir&c>tjD]}t|dr|`tjtjtjtjfD]}||  tjd}|j n#t$rYnwxYw tjd}| n#t$rYnwxYw tjd}|j n#t$rYnwxYw tjd}|n#t$rYnwxYw tjd}|n#t$rYnwxYw tjd}|n#t$rYnwxYw tjd}|n#t$rYnwxYw tjd } | j n#t$rYnwxYw tjd } | n#t$rYnwxYw tjd } d| _n#t$rYnwxYw tjd } | n#t$rYnwxYw tjd } | jD] }| dS#t$rYdSwxYw)N__warningregistry__zdistutils.dir_utilre _strptimez urllib.parsezurllib.request linecache mimetypesfilecmpstructdoctestctypestyping)rWmodulesvalueshasattrrostdoutrX __stdout__ __stderr__r\ _path_createdclearKeyErrorpurge _regex_cache clear_cache urlcleanup clearcache_default_mime_types_cache _clearcachemaster _reset_cache _cleanups)modstreamdistutils_dir_utilrprq urllib_parseurllib_requestrrrsrtrurvrwrxfs r$ clear_cachesrs{!!##(( 3- . . (':sz3>3>J   LLNNN1 [)=> (..0000       [         'K ,  $$&&&&      #{>2    """"      $%56 !!####      K ,        (K ,  %%''''      +i(       X&       +i(      X&       X&!  A ACCCC        s<B(( B54B59C C-,C-1D D*)D*.E E"!E"&F FFG GGG== H  H H:: II I22 I?>I?J J*)J*.K K"!K"&L LLctjdpd}tjdpd}tjdpd}tjdpd}g}tjdr|dttdr2|d d ||zvr|d nK|d d |vr|dnd ||zvr|dtjd}|r|d|t tjdpd}|r|dg}d|vr|dnd|vr|dt jr|d|r(|d|g}t j dr|dt j dr|dt j dr|d |r(|d|ttd!r|d"ttd#r|d$tjd%r|d&tjd'r|d(|S))N CONFIG_ARGS PY_CFLAGSPY_CFLAGS_NODISTPY_LDFLAGS_NODISTPy_NOGILnogilgettotalrefcountdebugz-DNDEBUGwithout_assertreleasez--with-assertions with_assertPYTHONFRAMEWORKz framework=PY_ENABLE_SHARED0sharedz -flto=thinThinLTOz-fltoLTOPGO+TaddressASANmemoryMSANubUBSAN getobjects TraceRefs _stats_onpystats WITH_VALGRINDvalgrind WITH_DTRACEdtrace) sysconfigget_config_varrr{rWintrcheck_cflags_pgorcheck_sanitizer) config_argscflags cflags_nodistldflags_nodistbuild frameworkr optimizations sanitizerss r$get_build_inforsj*=99?RK  %k 2 2 8bF,-?@@FBM-.ABBHbN E ++ Ws&'' ( W &=0 1 1 LL) * * * Y + - - LL ' ' ' '  6 7 7 LL ' ' '():;;I/ -)--...)*<==D E EF  XM~%%Y'''' N " "U###!!$U###. SXXm,,---Jt,,,"&!!!d+++"&!!!$'''#'"""+ SXXj))***sL!!" [!!!sK    Y00! Z    .. X Lr&tmp_dirc|r!tj|}ntjrt jsrtjd}|;tjd}|s%tjd}|stdtj |d}nstjd}|std|dtj |d}tj |d ntj }tj |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_dirresM&,'$$W--  $ & & ,? 4#2>BB?'6|DDG"  #,":8"D"D&". S##',,w88$2=AA&E18EEE',,w88  Gd33333)++G 7??7 # ##r&ctjrFtjd}|dkrtjddStj|dSdS)Nri)r is_emscriptenr+umask)old_masks r$ fix_umaskrsX8A;; u   HUOOOOO HX     r&F parent_dirworkercHtjs tjrtjdd}nt j}|rtt|z}ntt|z}|tj z }t j ||}|S)Nri@B)rrrrandomrandintr+getpidWORK_DIR_PREFIXrBWORKER_WORK_DIR_PREFIXr FS_NONASCIIr,r)rrnouncework_dirs r$ get_work_dirrs 9-- 8"S[[0)CKK7 %%Hw||J11H Or&c#K dVdS#t$rK}tjrtjt dt j|jYd}~dSd}~wwxYw)NT)exit) SystemExitrcan_start_thread faulthandlerdump_traceback_later EXIT_TIMEOUTrWrcode)excs r$ exit_timeoutrs    , G  -l F F F F  s AAAA test_nameverbosec ^tj}tj|sdStj|rddl}d|j}}nAtj|rdtj }}ntd|d|r#t|d|d|dt_ ddl}tj||j|jz|jz||dS#t&$r%}t|d|d|d |Yd}~dSd}~wwxYw) Nr directoryrHz os.path says z) exists but is neither directory nor filez left behind rTz and it couldn't be removed: )rTESTFNr+r,existsisdirshutilrmtreeisfileunlinkrrSrrVstatchmodS_IRWXUS_IRWXGS_IRWXO Exception)rrr/rkindnukerrrs r$ remove_testfnrs  D 7>>$   w}}T2 !6=e   2bie1411122 2+@@@@@@AAA&*#<  t|dl2T\ABBB d <<<;;;;;;58;; < < < < < < < < <|ds|r|Sd|zS)Nztest.) startswith)rrs r$abs_module_namer s2G$$##""r&) setUpClass tearDownClass setUpModuletearDownModule)is_errorc |dd}|rp|tvrg|drdS|d}|d}||dz|ddS|S) Nrr)z setUpModule (ztearDownModule (()r4.)split_TEST_LIFECYCLE_HOOKSr index)test_full_namer short_namelparrpars r$normalize_test_namers%%c**1-J=J"777  $ $%J K K 4##C((##C((dQhn-33C88<< r&c  ddl}n#t$rYdSwxYw||j\}}d}||kr||krt ||} ||j||ft d|d|dS#ttf$r$}td|d|d|d Yd}~dSd}~wwxYwdSdS) z On macOS the default fd limit (RLIMIT_NOFILE) is sometimes too low (256) for our test suite to succeed. Raise it to something more reasonable. 1024 is a common Linux default. rNizRaised RLIMIT_NOFILE: z -> z#Unable to raise RLIMIT_NOFILE from z to z: r) resource ImportError getrlimit RLIMIT_NOFILEmin setrlimitrI ValueErrorOSErrorrS)rfd_limitmax_fds desired_fds new_fd_limiterrs r$adjust_rlimit_nofiler,s[  !**8+ABBHgK+(W"4"4;00  5   x5 ,g6 8 8 8 G8GGGG H H H H HG$ 5 5 5 444)44-0444 5 5 5 5 5 5 5 5 5 5 "4"4s$ 2BB=B88B=cptjdx}tjd}|S)N_PYTHON_HOSTRUNNER HOSTRUNNER)r+environgetrr) hostrunners r$get_host_runnerr3 s2jnn%9::: C-l;; r&cdtjvS)N_PYTHON_HOST_PLATFORM)r+r0r6r&r$is_cross_compiledr6&s #rz 12r& use_resourcesct|}tt}dg}t||z D]}|d|t||z D]}||d|}d|}dt|}dt |d|}t |t |kr|S|S)Nall-,z resources: z resources (z): )set ALL_RESOURCESrLrrlen)r7 all_resources relative_allr/all_texttexts r$format_resourcesrC*s  &&M &&M7L}}455((JJJ''''}}455''tI&&&&xx %%H'X''H 88F=)) * *D 6]++ 6 6 6 6D 8}}D !! r&cttdr!ttjdStjS)Nsched_getaffinityr)r{r+r>rE cpu_countr6r&r$process_cpu_countrGBs:r&''2'**+++|~~r& python_cmdctdtjgtjRtdtjddtjztddttdtj tj }|r.t}|r||kr|d|d }td |td tjd tj|r"t!|}td |ntdt#}|rtd|rt%j|}td|g|dd}t'j|t&jdt,j}|jdd} | rtd| nB|jrtd|jdn"t9} | rtd| t;jd} t;jd} t;jd} g}| r|d| r|d| r|d|rntdd || d!f| d"f| d#ffD]=\}}tj !|}|r|td |d$|>td%dS)&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|rBcwd z== host platform: z1== host platform: z== host runner: rrrrrzundefined behaviorz== sanitizers: z, ASAN_OPTIONS MSAN_OPTIONS UBSAN_OPTIONS=)r\)"rIrKpython_implementationrWversionr byteorderrrr+getcwdrFrGlocale getencodinggetfilesystemencodingrCr6shlexrrunPIPErSAVEDCWDr|replacestrip returncoder3rrrr0r1)r7rHrFaffinityrB cross_compilecmdget_cmdprocr|r2asanmsanubsanr sanitizerenv_varoptionss r$display_headerrlIs $.00G3;3D3D3F3FGGGG $!$/// -/// chh~'7'788999 )RY[[!!! I*$&&  GI--#FF)FFFI oy))) E   ! ! ! !3#<#>#>#> @AAA/ .. lDll . / / /&''M( &'''3j$$ &&&'''1J11j1~ ?" $$$ $$T3//5577  Z /v// 0 0 0 0 _ Z XdoXXX Y Y Y$&&  3 1Z11 2 2 2  "4 0 0 0D  "$ / / /D  #t , , ,EJ %)$$$ $(### 0./// 3 7 * 5 577888 > " > " O $#  3 3 Iw Z^^G,,G 3W01G11g11222 r&cddl}tj||t dz}t d|z||D]n}tj|r't d|ztj |Ht d|ztj |odS)Nr*zCleanup %s directoryzRemove directory: %szRemove file: %s) globr+r,rescape TMP_PREFIXrIrrrr)rror,r/s r$cleanup_temp_dirrrsKKK 7<< G,,j3.> ? ?D 7 *+++ $## 7==   # (4/ 0 0 0  T " " " " #d* + + +  T " " " " ##r&STATUS_ACCESS_VIOLATIONSTATUS_STACK_OVERFLOWSTATUS_CONTROL_C_EXIT)lll:c|dkr-| } tj|jS#t$rYnwxYw t|S#t $rYnwxYwdSrj)signalSignalsr/r%WINDOWS_STATUSr)exitcodesignums r$get_signal_namer|s!|| >&)). .    D  h''       4s$ 11 A AArA)r=r>N)F)L contextlibrrWros.pathr+rKrrZrwrrWrrrJcollections.abcrrtestr test.supportrrrqrrrr=RESOURCE_NAMESrBStrPathTestNameStrJSONtuple TestTuplelistTestListbool TestFilter FilterTupledict FilterDictr%r2r9r<rQrSr[r_rbrfrhrmrrrrrcontextmanagerrrrr  frozensetrrr,r3r6rCrGrlrrryr|r6r&r$rsW   ........""""""))))))  (94  P !==    (C- >%$' ( HcM" (K' ( 2"49t+"""""        222 !    999aaaHNNNb)$)$'D.)$G)$)$)$)$XWdw( "#h####" # 5:*5554 333HSM0G%S/G$S#X5GGGGT #g # # # #*''     r&