f"(ddlZddlZddlmZddlmZmZmZmZm Z m Z ejdGddZ Gd d Z ejdGd d ZGd dejZdeeefdeeeefzfdZy)N)Any)StrJSONTestName FilterTupleformat_durationnormalize_test_name print_warningT)slotsc^eZdZUdZeed<dZeed<dZeed<edZ edZ dZ y) TestStatsr tests_runfailuresskippedc|t|jt|jt|jSN)r testsRunlenrr)results ./usr/lib/python3.12/test/libregrtest/result.py from_unittestzTestStats.from_unittests-V__-V^^,. .cXt|j|j|jSr)r attemptedfailedr)resultss r from_doctestzTestStats.from_doctests%**  * *rc|xj|jz c_|xj|jz c_|xj|jz c_yr)rrr)selfstatss r accumulatezTestStats.accumulates8 %//) '   % rN) __name__ __module__ __qualname__rint__annotations__rr staticmethodrrr!rrr r sKIsHcGS.. ** &rr cleZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zed ZedZedZy)StatePASSEDFAILEDSKIPPED UNCAUGHT_EXCREFLEAK ENV_CHANGEDRESOURCE_DENIED INTERRUPTED WORKER_FAILED WORKER_BUG DID_NOT_RUNTIMEOUTc|tjtjtjtjtj tj hvSr)r*r,r.r/r3r4r6states r is_failedzState.is_failed1sD LL    MM       MM  rc|tjtjtjtjtj tj hvSr)r*r-r1r2r3r4r5r8s rhas_meaningful_durationzState.has_meaningful_duration;sJ  MM  ! !              rcF|tjtjhvSr)r*r2r4r8s r must_stopzState.must_stopIs&         rN)r"r#r$r+r,r-r.r/r0r1r2r3r4r5r6r'r:r<r>r(rrr*r*#sx F FG!LGK'OK#MJKG    rr*c,eZdZUeed<dZedzed<dZedzed<dZ e edzed<dZ e dzed<dZ e eeefdzed<dZe eeefdzed<d ed efd Zd Zd efd ZdZdZded ed efdZd edzfdZddZeded dfdZy) TestResult test_nameNr9durationxml_datar errorsrfail_env_changedreturnc~|jtjk(r|Stj|jSr)r9r*r0r:)rrEs rr:zTestResult.is_failed^s- ::** *# #tzz**rc |jri|jr]t|j}t|j}d|dkDrdndz}d|dkDrdndz}|jd|d|d|d|d S|jr6t|j}d|dkDrdndz}|jd|d|d S|jr6t|j}d|dkDrdndz}|jd|d|d S|jd S) Nerrorrsfailurez failed ( z, )z failed)rDrrrA)rlelferror_s failure_ss r_format_failedzTestResult._format_failedcs ;;4==T[[!BT]]#BQB7G!BFS;Inn%Yrd!G9Brd!I;aP P ;;T[[!BQB7Gnn%Yrd!G9A> > ==T]]#B!BFS;Inn%Yrd!I;a@ @..!))rc|jxtjk(r|jdSxtjk(r|j Sxtj k(r|jdSxtjk(r|jdSxtjk(r|jdSxtjk(r|jdSxtjk(r|jdSxtjk(r|jdSxtjk(r|jdSxtjk(r|jd Sxtjk(r|jd Stjk(r%|jd t!|j"d S t%d )Nz passedz skippedz failed (uncaught exception)z failed (reference leak)z failed (env changed)z skipped (resource denied)z interruptedz worker non-zero exit codez worker bugz ran no testsz timed out (rNzunknown result state: {state!r})r9r*r+rAr,rSr-r.r/r0r1r2r3r4r5r6rrB ValueErrorrs r__str__zTestResult.__str__ws{jj..)11**,,..)22###..))EFF..))ABB"""..))>??&&&..))CDD"""..)66$$$..))CDD!!!..)55"""..)77..)odmm6T5UUVWW !BCCrc@tj|jSr)r*r<r9rVs rr<z"TestResult.has_meaningful_durations,,TZZ88rc|j|jtjk(rtj|_yyr)r9r*r+r0rVs rset_env_changedzTestResult.set_env_changeds- :: u||!;**DJ"r9r:)rr[rEs rr>zTestResult.must_stops* ??4:: & (89rc g}|jxsg}|jxsg}|df|dffD]N\}}|D]D^}}t||}|y|s|rdnd} td| d|dy|j |FP|syt |S) NTF)is_errorERRORFAILzrerun failed to parse z test name: z: don't filter tests)rDrr r appendtuple) r match_testsrDr error_listr^ full_name_ match_name error_types rget_rerun_match_testsz TestResult.get_rerun_match_testss "==&B TN u %  / J", / A0XN %!,4&J!$::,l%.M1E#GH"":. /  / [!!rc<tj||ty)N)cls)jsondump_EncodeTestResult)rfiles rwrite_json_intozTestResult.write_json_intos $"34r worker_jsonc8tj|tS)N) object_hook)rlloads_decode_test_result)rqs r from_jsonzTestResult.from_jsonszz+3FGGr)rFN)r"r#r$rr&r9strrBfloatrClistr r rDrbrboolr:rSrWr<rZr>rrirpr'rrvr(rrr@r@QsE3:!Hedl!!%Hd3i$%"E9t ",0FDsCx !D (/-1Hd5c?#d*1+$+4+ *(DD:9+44D"{T'9"25HwH<HHrr@c2eZdZdedeeefffd ZxZS)rnorFct|tr0tj|}|jj |d<|St ||S)N__test_result__) isinstancer@ dataclassesasdict __class__r"superdefault)rr|rrs rrz_EncodeTestResult.defaultsF a $ ''*F() (<(rs 99 T"&&#&0+ + \T"nHnH#nHb&((&d38nd38n1Lr