yiD NddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddlmZmZmZddlmZddlmZdd lmZdd lmZdd lmZmZmZmZmZd Z d Z!dZ"dZ#dededdfdZ$gZ%dededdfdZ& ddedede'ddfdZ(dededdfdZ)dededefdZ*y)N)support)threading_helper) match_test)State TestResult TestStats)RunTests)saved_test_environment) setup_tests)get_test_runner)TestName clear_caches remove_testfnabs_module_name print_warningg>@ctj}|j|}|jD]}t |t j |jr tdt|tt|S)N)filezerrors while loading tests) unittest TestLoaderloadTestsFromModuleerrorsprintsysstderr Exception _filter_suiter _run_suite)test_modloadertestserrors >/opt/alt/python312/lib64/python3.12/test/libregrtest/single.py run_unittestr$sd  "F  & &x 0E e#**% }}455%$ e cg}|jD]T}t|tjrt |||j |;||sD|j |V||_y)z>Recursively filter test cases in a suite based on a predicate.N)_tests isinstancer TestSuiterappend)suiteprednewteststests r#rr'sWH  dH.. / $ % OOD !Dz% ELr%cttjtjtj du}|j |}tj Xddlmcm }|j}|j|jd}tj j||js(|js|j stj"|j%st'j(|}t+|j dk(r|j,s|j dd}nNt+|j,dk(r|j s|j,dd}nd}tjs|dz }|j D cgc]\}} t/|| f} }} |j,D cgc]\}} t/|| f} }} tj0|| | ||Scc} }wcc} }w) z2Run tests from a unittest.TestSuite-derived class.N) verbositycapture_outputrasciirzmultiple errors occurredz!; run in verbose mode for details)stats)r rstdoutrverbosejunit_xml_listrunxml.etree.ElementTreeetree ElementTreeget_xml_elementtostringdecoder*testsRunskippedr TestDidNotRun wasSuccessfulr from_unittestlenfailuresstrTestFailedWithDetails) r+runnerresultETxml_elemxml_strr3errtcexc_strrrDs r#rr3s SZZ'.-4-C-C4-ORFZZ F)**))+++h'..w7%%g. ??6>>&--###    !''/ v}}  "6??--"1%C  !Q &v}}//!$Q'C,C??C+N$NC8> F W3r7G$ F:@//J/;2wSWg&/J++COO MGJs "H HrHruntestsreturncX|jr3ddlm}||j||j|j\}}n |}d}|rt j |_|xtdx \|}||_yxtjdx \tj|}||_y$t|jd|d}||_y ddl }t||jrtj |}||_ytdt#|d}||_y)Nr)runtest_refleakFz test runner returned None: rzUnknown test result type: ) hunt_refleakrefleakrR test_namequietrREFLEAKstater rrrBrdoctestr( TestResults from_doctesttyper3)rH test_funcrOrRrU test_resultr3rZs r#regrtest_runnerr`Rs#,.v/?/?/7/D/D/7~~ ? k }}   Y[E FL# "X "++K8EFL#  V--..J9+V WEFL +w':':;!..{; FL :4 ;L:MNOFLr%c|j}t||j}tj|t drt d|dfd} t|||tjt||jtjrtdt_t|dt!tjdt"j%tjtjj'tj(y#tjt||jwxYw)N test_mainzModule z= defines test_main() which is no longer supported by regrtestctS)N)r$)rsr#r^z!_load_run_test..test_funcsH%%r%Tz created z uncollectable object(s))rVrtest_dir importlib import_modulehasattrrr`r gc_collectrr5gcgarbageenvironment_alteredrrC GC_GARBAGEextendclear reap_children)rHrOrV module_namer^rs @r#_load_run_testrq|s  I!)X->->?K&&{3Hx%')-=>? ?& 3 84 i!1!12 zz&*# 9S_,=>01 2 "**%   i!1!12s  D**,Edisplay_failurecdt_|j}|rd}|j}|j} t tj t||j||5t||dddtjr|jC|jtjD|_yy#1swYLxYw#tj$r5}|s|st|d|dtj|_Yd}~yd}~wtj $r5}|s|st|d|dtj"|_Yd}~yd}~wtj$$r}}d|d}|r|d|}t|t&j(d tj*|_|j,|_|j.|_|j0|_Yd}~yd}~wtj2$r[}d|d}|r|d|}t|t&j(d tj*|_|j0|_Yd}~yd}~wtj4$rtj6|_Yyt8$r"ttj:|_Yy|s6t=j>}td|d |t&j(d tj@|_YyxYw) NF)pgoz skipped -- T)flushtest z failedz -- rru crashed -- )#rrkrtrWrVrrhr r5rqResourceDeniedrrRESOURCE_DENIEDrYrSkipTestSKIPPEDrFrrFAILEDrrDr3 TestFailedr@ DID_NOT_RUNKeyboardInterrupt INTERRUPTED traceback format_exc UNCAUGHT_EXCset_env_changedPASSED)rHrOrrrtrWrVexcmsgs r#_runtest_env_changed_excrsk #(G ,,C  NNE  I0 #I$,$4$4eF 68 ,F\""  |||| cFF  ! !S YK|C51 >,,    S YK|C51 >}}   ( ( i[( EcU#C c $/||   ,,yy    i[( EcU#C c $/|| yy   ((   (( &&(C E)L6zz /)) sb7C, C9CC  CK9#+DK9)+EK9/A3G''K9=AI+K9'K9)AK9c$|j}|j}|j}|*tjrd}t j |dnd} t||rdt_tj}tj}tj}tj} | j} d} |t_ |t_ || _t!||d|j"t$j&k7r|j)} |t_ |t_ | | _| Xtjj+| tjj-n|t_t!||| tj.} | r| |_|rt j2dt_y#|t_ |t_ | | _wxYw#|rt j2dt_wxYw)NT)exitF)rr)r5output_on_failuretimeoutrcan_start_thread faulthandlerdump_traceback_laterr rioStringIOrr4rr orig_stderrrrYrrgetvaluewriterur6xml_datacancel_dump_traceback_later) rHrOr5rr use_timeoutstream orig_stdoutrrorig_print_warnings_stderroutputxml_lists r#_runtestrsG 22G/@@ ))'= -&H "GO[[]F**K**K#11M)6)B)B &F G# # -3 )(5Q<<5<</#__.F( ( ,F )!   (   "&GO $VX9@[ B)) &FO   4 4 6!%') ( ,F )   4 4 6!%s'A+G,AG BG, G))G,,#HrVctj}t|}|j} t ||tjjtjjtj|z |_|S#|s6t j }td|d|tjdtj|_ YxYw)zRun a single test. test_name -- the name of the test Returns a TestResult. If runtests.use_junit, xml_data is a list containing each generated testsuite element. rvrxTrw)time perf_counterrrtrrrrrrrrrYr4ruduration)rVrO start_timerHrtrs r#run_single_testr%s""$J  "F ,,C*"JJJJ'')J6FO M*&&(C E)L6zz /)) s BAC$)T)+rrirerrrrrr.r test.supportrfilterrrHrrr rOr save_envr setupr testresultr utilsrrrrrPROGRESS_MIN_TIMEr$rrr`rlrqboolrrrrSr%r#rs  )00,'AA >#J#X#$#N ":""d"L6:D$ZD$8D$.2D$>BD$N:&Z:&8:&:&zx8 r%