f/ddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z m Z mZmZmZmZGddZej&dd Gd d Zej&dd Gd d Zej&dd GddZej&dd GddeZGddej0ZdeeefdeeeefzfdZy)N)Any)support)StrPathStrJSON TestTuple TestFilter FilterTuple FilterDictceZdZdZdZdZy) JsonFileTypeUNIX_FDWINDOWS_HANDLESTDOUTN)__name__ __module__ __qualname__rrr0/usr/lib/python3.12/test/libregrtest/runtests.pyr r sG%N Frr T)slotsfrozencdeZdZUedzed<eed<deddfdZejdZ d dZ y) JsonFileNfile file_type popen_kwargsreturnc|jxtjk(r|jg|d<ytjk(r.t j }d|jgi|_||d<yy)Npass_fds handle_list startupinfo)rr rrr subprocess STARTUPINFOlpAttributeList)selfrr"s rconfigure_subprocesszJsonFile.configure_subprocesss_nn%%%,0II; Z(,,)446 />\88 8  % %dii 6 <))$))U; ))$))U;s>BA+&B+"B  Bc|jtjk(r td|j}|jtj k(r$ddl}|j|tj}t|||S)Nz)for STDOUT file type, just use sys.stdoutr)encoding) rr r ValueErrorrrmsvcrtopen_osfhandler)O_WRONLYopen)r&moder.rr0s rr3z JsonFile.open6sc >>\00 0HI Iyy >>\88 8 ((r{{;DD$22r)r) rrrint__annotations__strdictr' contextlibcontextmanagerr,r3rrrrrsE *N : :$ : 3rrc>eZdZUeed<eed<eed<deefdZy) HuntRefleakwarmupsrunsfilenamerc>d|jd|jdgS)Nz-R:)r>r?r+s rbisect_cmd_argszHuntRefleak.bisect_cmd_argsHs$a {!455rN) rrrr6r7rlistr8rCrrrr=r=Bs" L I6c6rr=ceZdZUeed<eed<eed<eed<edzed<eed<eed<eed <eed <eed <edzed <e ed <eed<e dzed<e dzed<eed<e dzed<e dzed<e e dfed<e e dfdzed<eed<e e zed<d"dZdZdedzfdZdZdZdefdZdee fd Zdee fd!Zy)#RunTeststests fail_fastfail_env_changed match_testsNmatch_tests_dictrerunforeverpgo pgo_extendedoutput_on_failuretimeoutverbosequiet hunt_refleaktest_dir use_junit memory_limit gc_threshold. use_resources python_cmd randomize random_seedrc dtj|}|j|tdi|SNr) dataclassesasdictupdaterFr&overridestates rcopyz RunTests.copygs,""4( X %  rc dtj|}|j|tdi|Sr^)r_r`raWorkerRunTestsrbs rcreate_worker_runtestszRunTests.create_worker_runtestsls,""4( X&&&rcT|j|jj|dSyN)rKget)r& test_names rget_match_testszRunTests.get_match_testsqs*  ,((,,Y= =rcF|jryt|jSrj)rMlenrGr+s rget_jobszRunTests.get_jobsws <<4::rc#K|jr |jEd{|jEd{y77wrj)rMrGr+s r iter_testszRunTests.iter_tests~s: <<::%%zz ! !& !s>:><>>ctt|jxs"tjxstjSrj)boolrZr is_emscriptenis_wasir+s rjson_file_use_stdoutzRunTests.json_file_use_stdouts/  ! $$  rctj}|j"|j}|Dcgc] }|dk7s | }}ntjf}g||}d|vr|j d|Scc}w)Nz-E-u)rargs_from_interpreter_flagsrZsys executableappend)r& python_optsr|optcmds rcreate_python_cmdzRunTests.create_python_cmdsx99; ?? &J+6E33EKE..*J) )[) { " JJt  Fs A1A1cg}|jr|jd|jr|jd|jr|jd|j|j)|j |jj |jr|j d|jf|jr|j d|jf|jr|jd|j|jr,|j ddj|jf|jr2tj|j}|j d |f|jr|jd |jd |j|S) Nz --failfastz--fail-env-changedz --timeout=z --testdirz --memlimitz --threshold=ry,z--pythonz --randomizez --randseed=)rHr}rIrQrTextendrCrUrWrXrYjoinrZshlexr[r\)r&argsrs rrCzRunTests.bisect_cmd_argssY >> KK %  KK, - << KK*T\\N3 4    ( KK))99; < == KKdmm4 5    KKt'8'89 :    KK,t'8'8&9: ;    KKsxx(:(:;< = ??**T__-C KKS) * >> KK+ ' k$"2"2!345 r)rrF)rrrrr7rtr r floatr6r=rr8tuplererhr rmrprrrwrDrrCrrrrFrFNs O 4'' K M I T\ L K$$nO**c?"c3h$&&Os! ' K$,> "  d   49 crrFc>eZdZUeed<defdZededdfdZy)rg json_filerc8tj|tS)N)cls)jsondumps_EncodeRunTestsr+s ras_jsonzWorkerRunTests.as_jsonszz$O44r worker_jsonc8tj|tS)N) object_hook)rloads_decode_runtests)rs r from_jsonzWorkerRunTests.from_jsonszz+3CDDrN) rrrrr7rr staticmethodrrrrrgrgs;55EwE+;EErrgc2eZdZdedeeefffd ZxZS)rorczt|trtj|}d|d<|St||S)NT __runtests__) isinstancergr_r`superdefault)r&rresult __class__s rrz_EncodeRunTests.defaults; a ( ''*F%)F> "M7?1% %r)rrrrr9r8r __classcell__)rs@rrrs#&&c3h&&rrdatarcd|vrH|jd|drtdi|d|d<|drtdi|d|d<tdi|S|S)NrrTrr)popr=rrg)rs rrrsg   #.#Fn1E#FD   ( =4 +< =D %%% r)r:r_rr)rr#r{typingrtestrutilsrrrr r r r dataclassrr=rFrg JSONEncoderrr9r8rrrrrs  FF T$/(3(30(3VT$/6606T$/jj0jZT$/EXE0E&d&&& 4S> hc3h.G r