
    1hh*q                     ~   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
JrJrJrJrJr  SSKJrJr  SSKJrJrJr  SSKJr  SSKJr  SS	KJrJr  SS
KJrJr  SSK J!r!J"r"  SSK#J$r$J%r%  SSK&J'r'J(r(  SSK)J*r*  SSK+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r>   " S S5      r?SS\	4S jjr@g)    N)NoReturn)	os_helper
MS_WINDOWSflush_std_streams can_use_suppress_immortalizationsuppress_immortalization   )_parse_args	Namespace)	findtestssplit_test_packages
list_cases)Logger)setup_pgo_tests)State
TestResult)TestResultsEXITCODE_INTERRUPTED)RunTestsHuntRefleak)setup_processsetup_test_dir)run_single_testPROGRESS_MIN_TIME)setup_tsan_tests)StrPathStrJSONTestNameTestList	TestTuple
TestFilterstrip_py_suffixcountformat_duration	printlistget_temp_dirget_work_direxit_timeoutdisplay_headercleanup_temp_dirprint_warningis_cross_compiledget_host_runnerEXIT_TIMEOUTc                   .   \ rS rSrSrS+S\S\4S jjrS,S\SS4S	 jjr	S-S
\
S-  S\\\
S-  4   4S jjr\S
\SS4S j5       rS\S\4S jrS\SS4S jrS\S\S\S\4S jrS\SS4S jrS\SS4S jrS\S\S\R0                  S-  S\4S jrS\SS4S jrS\4S jrS\S\SS4S jrS\R>                  S-  SS4S jr S.S jr!S
\S\4S jr"S \S
\
S-  S\4S! jr#S \S
\
S-  S\4S" jr$S# r%S$ r&S% r'S.S& jr(S' r)\*S\+4S( j5       r,S-S
\
S-  S\-4S) jjr.S*r/g)/Regrtest"   a!  Execute a test suite.

This also parses command-line options and modifies its behavior
accordingly.

tests -- a list of strings containing test names (optional)
testdir -- the directory in which to look for tests (optional)

Users other than the Python test suite will certainly want to
specify testdir; if it's omitted, the directory containing the
Python test suite is searched for.

If the tests argument is omitted, the tests listed on the
command-line will be used.  If that's empty, too, then all *.py
files beginning with test_ will be used.

The other default arguments (verbose, quiet, exclude,
single, randomize, use_resources, trace, coverdir,
print_slow, and random_seed) allow programmers calling main()
directly to set the values that would normally be set by flags
on the command line.
ns_add_python_optsc                 &	   [        UR                  5      U l        UR                  U l        UR                  U l        UR                  U l        UR
                  U l        [        5       U l        S U l        [        U R                  U R                  U R                  5      U l
        UR                  U l        UR                  U l        UR                  U l        UR"                  U l        UR&                  U l        UR*                  U l        UR.                  U l        UR2                  U l        UR6                  =(       d    UR8                  U l        U=(       a    UR<                  U l        UR@                  U l         URB                  U l!        URD                  U l"        URF                  U l$        URJ                  U l&        URN                  U l'        U RN                  (       d  URP                  c  SnOURP                  S::  a  SnOURP                  nX0l)        URT                  U l*        URV                  U l,        URZ                  U l-        UR\                  U l.        UR^                  U l/        UR`                  U l1        URd                  U l2        URf                  (       a@  URf                  u  pEn[h        Rj                  Rm                  U5      n[o        XEU5      U l8        OS U l8        URr                  U l:        URv                  U l<        URz                  U l>        UR~                  U l@        [        UR                  5      U lB        UR                  (       a  [        UR                  5      U lD        OS U lD        UR                  U lF        UR                  U lH        UR                  U lJ        UR                  U lK        S[h        R                  ;   a8  [h        R                  S   (       a   SU lK        [h        R                  S   U lM        O:UR                  c  [        R                  " S5      U lM        OUR                  U lM        S U lP        UR                  U lR        [        R                  " 5       U lU        UR                  U lW        S U lX        S U lY        g )Nr   SOURCE_DATE_EPOCHF    )Zintverbosequietpgopgo_extendedtsanr   resultsfirst_stater   loggerheaderwant_header
list_testswant_list_testsr   want_list_caseswait	want_waitcleanupwant_cleanuprerun
want_rerunrunleakswant_run_leaksbisectwant_bisectfast_cislow_cici_moder3   want_add_python_optsmatch_testsexcludefromfilestartstarting_testargscmdline_argssingle_processuse_mpnum_workersworker_jsonfailfast	fail_fastfail_env_changed
fail_rerunforeververbose3output_on_failuretimeout
huntrleaksospathabspathr   hunt_refleaktestdirtest_dirxmlpathjunit_filenamememlimitmemory_limit	thresholdgc_thresholdtupleuse_resourcespython
python_cmdtracecoveragecoverdircoverage_dirtempdir_tmp_dir	randomizeenvironrandom_seedrandomgetrandbitsfirst_runtests
print_slowprint_slowesttimeperf_counter
start_timesinglesingle_test_runnext_single_testnext_single_filename)selfr2   r3   r]   warmupsrunsfilenames          >/opt/python-3.13.8/usr/lib/python3.13/test/libregrtest/main.py__init__Regrtest.__init__9   sE   

O88
"$//''	 %0M'+ T\\4::txx@ "$%']]%']]!ww"$** "$&KK!# jj6BJJ+; ,C/1/B/B 	! (*~~ZZ(*.0hh&(gg %'$5$5"))"3KYY!^K))K ++->>  "{{&(&9&9 "ZZ'){{%'ZZ==&(mm#G8wwx0H4?x4XD $D(*

.0jj(*(*.3B4D4D.E996;BII6FDO"DO hh,.KK(*

  "||2::-

./"DN +-**5H*ID^^#%11"5D!~~D 04 $&== ++- &(YY1548!    linereturnNc                 :    U R                   R                  U5        g N)r@   log)r   r   s     r   r   Regrtest.log   s    r   testsc                 t   Uc  / nU R                   (       ap  [        R                  R                  U R                  S5      U l         [        U R
                  S5       nUR                  5       R                  5       nU/nS S S 5        U R                  (       a  / n[        R                  " S5      n[        [        R                  R                  [        R                  U R                  5      5       nU H]  nUR                  SS5      S   nUR                  5       nUR!                  U5      nUc  M>  UR#                  UR%                  5       5        M_     S S S 5        ['        U5        [)        5       nU R*                  (       a+  U R,                   H  nUR/                  U5        M     / U l        U R0                  (       a   [3        U R,                  U R4                  5        U R6                  (       a  [9        U R,                  5        [;        U R<                  US9n	U R                  (       dK  U=(       d    U R,                  n
U(       a  U
 Vs/ s H  nX;  d  M
  UPM     n
nU
(       a  [?        U
5      n
OU	n
OUn
U R                   (       a&  U
S S n
 U	RA                  U
S   5      nXS-      U l!        U RF                  (       a   U
S U
RA                  U RF                  5      2	 [P        RR                  " U RT                  5        U RV                  (       a  [P        RX                  " U
5        [[        U
5      U4$ ! , (       d  f       GN= f! [         a     GNf = f! , (       d  f       GN= fs  snf ! [D         a     Nf = f! [H         a1    [K        SU RF                   35        [L        RN                  " S5         Nf = f)	N
pynexttestrz\btest_[a-zA-Z0-9_]+\b#r	   r   )rl   rU   zCannot find starting test: ).r   rh   ri   jointmp_dirr   openreadstripOSErrorrV   recompiler   SAVEDCWDsplitsearchappendgroupr"   setrU   rZ   addr;   r   r<   r=   r   r   rm   r   indexr   
IndexErrorrX   
ValueErrorprintsysexitr   seedr   r~   shufflert   )r   r   fp	next_testregexr   matchexclude_testsargalltestsselectednameposs                r   
find_testsRegrtest.find_tests   s   =E(*T\\<(PD%$33S9R "	 1I&KE : ==E JJ89Ebggll9#5#5t}}EF"D::c1-a0D::<D!LL.E(U[[]3  G 	<<((!!#& ) "D88D--t/@/@A99T../T]]%24 }}1 1 1H-5 :XT#8 !X :.x8#H|HnnXa[1(0q(9%
 @hnnT-?-?@@A
 	D$$%>>NN8$h''M :9   GF<:    3D4F4F3GHIsr   M "L2?M 1=M2#M
	M'M' M,  M< 2
M<M M 
MM
M$,
M98M9<8N76N7c                 ,    U  H  n[        U5        M     g r   )r   )r   r   s     r   rC   Regrtest.list_tests   s    D$K r   runtestsc           
         U R                   S:X  a  U R                  (       d  SU l         U R                  R                  5       u  p#UR	                  USSSSUSS9nU R
                  R                  U5        S[        U5       S3nU R                  (       d3  U S3nU R                  U5        U R                  XR                   5        U$ U R                  U5        U R                  U5        U$ )	Nr   r	   TF)r   rJ   r9   rc   r`   match_tests_dictre   zRe-running z failed tests in verbose modez in subprocesses)r]   r[   r>   prepare_reruncopyr@   	set_testslenr   _run_tests_mprun_tests_sequentially)r   r   r   r   msgs        r   _rerun_failed_testsRegrtest._rerun_failed_tests   s    q )<)<
  !D"&,,"<"<"> ==-# ! % 	h'CJ<'DE""E)*CHHSMx)9)9:  HHSM''1r   c                    U R                   (       a  U R                  S5        g U R                  5       U l        [	        5         U R                  U5      nU R                  R                  (       aR  [	        [        [        U R                  R                  5      S5      S5        [        U R                  R                  5        U R                  U5        g )NzJRe-running failed tests is not supported with --python host runner option.testzfailed again:)rw   r   	get_stater?   r   r   r>   badr#   r   r%   display_result)r   r   rerun_runtestss      r   rerun_failed_testsRegrtest.rerun_failed_tests  s    ??HH& >>+11(;<<%DLL,,-v6Hdll&&'N+r   r   progressc                 r   [        5         SU 3nU(       a  U SU S3n[        U5        [        S[        U5      -  5        [        5         UR                  5       nUR                  / SQ5        UR                  UR	                  5       5        UR                  U5        [        S[        R                  " U5      SS9  [        5         S	S K	nUR                  XQR                  S
9nUR                  nU SU 3n[        U5        [        S[        U5      -  5        [        SS9  U(       a  [        SU 35        gg)NzBisect z ()r   )-uz-mztest.bisect_cmdz
--max-iter25z-v+Tflushr   rf   z: exit code zBisect failed with exit code F)r   r   create_python_cmdextendbisect_cmd_argsr   shlexr   r   
subprocessrunrf   
returncode)	r   r   r   r   titlecmdr   procexitcodes	            r   _run_bisectRegrtest._run_bisect*  s   $ gRz+EecCJ((*

 
 	 	

8++-.

4c5::c?$/~~c+;+;~<??'hZ0ecCJD1(<=r   c                     U R                   R                  SS9u  p#[        US5       H@  u  pE[        U5      S:  a  U S[        U5       3nOSnU R	                  XU5      (       a  M@    g    g )NF)clearr	   / )r>   r   	enumerater   r   )r   r   r   _r   r   r   s          r   
run_bisectRegrtest.run_bisectP  sh    <<--E-:$UA.KE5zA~#WAc%j\2##HH== /r   c                     UR                   (       a  g U R                  5       n[        5         [        SU S35        U R                  R	                  UR
                  U R                  U R                  5        g )Nz== Tests result: z ==)r;   r   r   r>   r   r   r:   r   )r   r   states      r   r   Regrtest.display_result[  sW    << !%,-##HNN$(JJ0B0B	Dr   	test_nametracerc                     UbN  Sn[        [        5       5      nUR                  U[        5       US9  US   n[	        UR
                  5      Ul        O[        X5      nU R                  R                  Xb5        U$ )Nz-result = run_single_test(test_name, runtests))globalslocalsresult)
dictr   runctxr   listcountscovered_linesr   r>   accumulate_result)r   r   r   r   r   	namespacer   s          r   run_testRegrtest.run_testg  sm      CCVXIMM#wyMCx(F#'#6F $Y9F&&v8r   c                    U R                   (       a  [        R                  " SSS9nOS n[        [        R
                  5      nUR                  5       nUb  [        US5      nOSnSU S3nUR                  (       a  US[        UR                  5      -  -  nU R                  U5        UR                  5       n[        US	5       GHh  u  p[        R                  " 5       n
U R                  R!                  X5        U R#                  XU5      n[        R
                   Vs/ s H$  nX;  d  M
  UR%                  S
5      (       d  M"  UPM&     nnU HU  n[        R
                  R'                  US 5        UR)                  S5      u  pn [+        [        R
                  U   U5        MW     [1        U5      n[        R                  " 5       U
-
  nU[2        :  a  U S[        U5       3nU R                  R!                  UU5        UR5                  U R6                  U R8                  5      (       d  GMi    g    g s  snf ! [,        [.        4 a     M  f = f)NFT)rx   r#   r   r   zRun z! sequentially in a single processz (timeout: %s)r	   )ztest.test_.z in )ry   rx   Tracer   r   modulesget_jobsr#   rf   r$   r   
iter_testsr   r   r   r@   display_progressr  
startswithpop
rpartitiondelattrKeyErrorAttributeErrorstrr   	must_stopr`   ra   )r   r   r   save_modulesjobsr   r   
tests_iter
test_indexr   r   r   modulenew_modulesparentr   r   text	test_times                      r   r   Regrtest.run_tests_sequentiallyy  s   ==[[uD9FF3;;'  "$'EEUG<=#oh6F6F&GGGC((*
%.z1%=!J**,JKK((?]]9?F 14 Gf$8 " & 1 12D E "K G &-"("3"3C"84CKK/6 & v;D))+j8I--tOI$>#?@KK((T:0E0EFF7 &>G !.1 s$   	H2+H2H2H77I
Ic                     U R                   R                  U R                  5      nU R                  (       a  U R                   SU 3nU$ )Nz then )r>   r   ra   r?   )r   r   s     r   r   Regrtest.get_state  sA    &&t'<'<=''(ug6Er   r]   c                 h    SSK Jn  U" X!U R                  U R                  5      R	                  5         g )Nr	   )
RunWorkers)run_workersr&  r@   r>   r   )r   r   r]   r&  s       r   r   Regrtest._run_tests_mp  s"    +;$++t||DHHJr   ry   c                 L   U R                   (       ao  U R                  (       a>  [        U R                   S5       nUR                  U R                  S-   5        S S S 5        O [        R
                  " U R                   5        Ub  UR                  SSU R                  SS9  U R                  (       a,  [        R                  " S[        R                  " 5       -  5        U R                  (       a&  U R                  R                  U R                  5        g g ! , (       d  f       N= f)Nw
T)show_missingsummaryrz   ignore_missing_fileszleaks %d)r   r   r   writerh   unlinkwrite_resultsr{   rM   systemgetpidro   r>   write_junit)r   ry   r   s      r   finalize_testsRegrtest.finalize_tests  s    $$$$$33S9RHHT22T9: :9 		$334""d,0,=,=8< # > IIj299;./LL$$T%8%89  :9s   D
D#c                    U R                   c  [        S5      e[        R                  " 5       U R                  R
                  -
  n[        U R                  5      n[        5         [        S[        U5      -  5        U R                  R                  U R                   U5        U R                  5       n[        SU 35        g )NzBShould never call `display_summary()` before calling `_run_test()`zTotal duration: %szResult: )r   r   r   r   r@   r   boolrT   r   r$   r>   display_summaryr   )r   durationfilteredr   s       r   r9  Regrtest.display_summary  s    &T  $$&)?)??(() 	"_X%>>?$$T%8%8(C   !r   c                 .   [        U40 SU R                  _SU R                  _SU R                  _SS _SS_SU R                  _SU R
                  _S	U R                  _S
U R                  _SU R                  _SU R                  _SU R                  _SU R                  _SU R                  _SU R                  S L_SU R                  _SU R                  _SU R                   _SU R"                  _SU R$                  _SU R&                  _SU R(                  _6$ )Nr`   ra   rT   r   rJ   Frc   r;   r<   re   rf   r9   r:   rk   rm   	use_junitry   rq   rs   ru   rw   r~   r   )r   r`   ra   rT   rc   r;   r<   re   rf   r9   r:   rk   rm   ro   ry   rq   rs   ru   rw   r~   r   )r   r   s     r   create_run_testsRegrtest.create_run_tests  sU   
nn
 "22
 ((	

 "
 
 LL
 
 **
 #44
 LL
 LL
 **
 **
 ]]
  **$6!
" ]]#
$ **%
& **'
( ,,)
* +
, nn-
. ((/
 	
r   r   c                    U R                   (       a5  U R                   R                  S:  a  Sn[        U[        R                  SS9  U R
                  S:  a&  [        R                  " 5       =(       d    SS-   U l        U R                  (       dK  U R                  (       dZ  U R                  (       dI  U R                  (       d8  U(       d1  U R                  (       d   [        U R                  U R                  5        [        SU R                   5        U R#                  U5      nX@l        U R&                  R)                  U5        UR                   b  U R
                  (       d  S	nO[*        nU(       a  U R&                  R-                  5          U R
                  (       a  U R/                  X@R
                  5        Ol[1        UR                   5      (       d#  [        S
[        R2                  S9  [5        S5      e[7        UR                   5         U R9                  U5        S S S 5        U R:                  R=                  5       nU R?                  U5        U R@                  (       a0  U R:                  RC                  5       (       a  U RE                  U5        U RF                  (       a0  U R:                  RC                  5       (       a  U RI                  U5        U(       a  U R&                  RK                  5         U RM                  5         U RO                  U5        U R:                  RQ                  U RR                  U RT                  5      $ ! , (       d  f       GN.= f! U(       a  U R&                  RK                  5         f f = f)N   zhWARNING: Running tests with --huntrleaks/-R and less than 3 warmup repetitions can give false positives!T)filer   r   r	      zUsing random seed:FzVModule '_testinternalcapi' is missing. Did you disable it with --disable-test-modules?)rC  )+rk   r   r   r   stdoutr]   rh   process_cpu_countrB   r;   r:   r   rZ   r)   ru   rw   r   r?  r   r@   r   r   start_load_trackerr   r   stderr
SystemExitr   r   r>   get_coverage_resultsr   rK   
need_rerunr   rO   r   stop_load_trackerr9  r5  get_exitcodera   rb   )r   r   r   r   r   use_load_trackerry   s          r   
_run_testsRegrtest._run_tests  sp   !2!2!:!:Q!>NC#CJJd3a !# 4 4 6 ;!q@D 88tzzT-A-At004--t?"D$4$45((2&h'!!-8H8H$  *KK**,	0""8-=-=> 88M8MNN L"zz+ %Q-' .h.C.CD//9 E ||88:H)4<<#:#:#<#<''1DLL$;$;$=$=)--/H%||(()>)>)-: 	:% ED  --/  s&   
A?M 	MB5M 
MM $M8c                 J   [         R                  " U R                  SS9  [        U R                  5      n[	        5          [
        R                  " USS9   U R                  X5      sS S S 5        sS S S 5        $ ! , (       d  f       O= f S S S 5        g ! , (       d  f       g = f)NT)exist_ok)r:   )rh   makedirsr   r'   r(   r   temp_cwdrO  )r   r   r   work_dirs       r   	run_testsRegrtest.run_tests;  sn    
DLL40- ^
 ##HD9
 x7 :9 ^
 :99 ^^s#   BA9&	B9
B	B
B"c                 Z   [        U R                  5      nS n[        5       n[        5       nU(       al  1 Skn[        R
                  n[        R
                  R                  5        VV	s0 s H$  u  pUR                  S5      (       a  X;   d  M"  X_M&     n
nn	X:w  a  U
nSnU(       a~  U(       aw  U R                  S:X  a$  U R                  (       d  UR                  SS/5        U R                  (       d2  [        R                  " S5      nU SU 3nUR                  S	U/5        SnX24$ s  sn	nf )
N>   
PYTHONPATH_PYTHON_PROJECT_BASE_PYTHON_HOST_PLATFORM_PYTHON_SYSCONFIGDATA_NAME_PYTHON_SYSCONFIGDATA_PATH)PYTHON_PYTHONTr   z-j2BUILDPYTHON z--python)r8  rw   r,   r-   rh   r   itemsr  r]   r[   r   	sysconfigget_config_var)r   regrtest_optskeep_environr   cross_compile
hostrunnerkeepold_environr   valuenew_environbuildpythonrw   s                r   _add_cross_compile_opts Regrtest._add_cross_compile_optsL  s    DOO, *+ %&
D **K/1zz/?/?/A/A'<== /A  
 )%LZ1$T-@-@ $$dC[1 ??'66}E *|1[M:
$$j*%=>#&&/s   (!D'D'c                    [         R                  R                  (       d%  [         R                  S:w  a  UR	                  S5        [         R
                   Vs/ s H  nUR                  S5      (       a  M  UPM     sn(       d  UR                  S5        [         R                  R                  S:  a  UR	                  S5        U(       d2  [         R                  R                  (       d  UR	                  S5        g g g s  snf )Nandroidr   z::BytesWarning)z-WerrorrD  z-bbz-E)r   rE  write_throughplatformr   warnoptionsendswithr   flagsbytes_warningignore_environment)r   python_optsrg  opts       r   _add_ci_python_optsRegrtest._add_ci_python_opts|  s     zz''CLLI,Et$
 ??
*C<< 01 ?
 / 99""Q&u%99//""4( 0 
s   C=5C=c                 \   [         R                  R                  5         [         R                  R                  5         [        R
                  " U5      n US   (       d  [        S5      e[        SU 3SS9  [        [        S5      (       a&  [        (       d  [        R                  " US   U5        g SS KnUR                  XS9 n UR                  5         S S S 5        [         R&                  " WR*                  5        g ! [         ah     UR                  [         S9   NI! UR"                   a>    UR%                  5         UR                  5         [         R&                  " [(        5          Nf = ff = f! , (       d  f       N= f! [,         a  n[/        S	U< S
U 35         S nAg S nAff = f)Nr   zNo Python executable is presentz+ Tr   execv)envr   z!Failed to change Python options: z

Command: )r   rE  r   rH  r   r   r   r   hasattrrh   r   r  r   PopenrF   KeyboardInterruptr.   TimeoutExpiredkillr   r   r   	Exceptionr+   )r   r   r   cmd_textr   r   excs          r   _execute_pythonRegrtest._execute_python  sO   



::c?	2 q6 !BCCBxj/.r7##JJQ% "%%c%74
;		 8 ) - ;; IIlI;)88 ; IIK IIKHH%9:;; 87  	2=cW E&&.Z1 2 2	2st   AF 1F E4C?(F ?
E1
DE4A
E-)E1*E4,E--E11E44
F>F 
F+F&&F+c                 V   / n/ nU R                  U5      u  p4U R                  (       a  U R                  X5        U(       d  U(       d  Uc  g [        [        R
                  5      nU(       a  XSS& U(       a  UR                  U5        UR                  S5        U R                  XS5        g )Nr	   z--dont-add-python-opts)	ro  rR   r}  r  r   	orig_argvr   r   r  )r   r{  rf  r   rg  r   s         r   r3   Regrtest._add_python_opts  s    !##% $ < <] K<<$$[?m'/ 3==!"!HJJ}%

+,S*r   c                 P   [        5         U R                  (       a\  [        R                  R	                  U R                  5      (       d.  [        R                  R                  U R                  5      U l        [        U R                  5        [        U R                  5      U l	        g r   )
r   ro   rh   ri   isabsrj   r"   rZ   r&   r}   r   s    r   _initRegrtest._init  sa    rww}}T5H5H'I'I"$''//$2E2E"FD))*$T]]3r   c                 J    U R                   c  [        S5      eU R                   $ )Nz4Should never use `.tmp_dir` before calling `.main()`)r}   r   r  s    r   r   Regrtest.tmp_dir  s(    == F  }}r   c                 `   U R                   (       a  U R                  5         U R                  5         U R                  (       a+  [	        U R
                  5        [        R                  " S5        U R                  (       a  [        S5        [        U R                  5        U R                  U5      u  p!SnU R                  (       a  U R                  U5        OBU R                  (       a   [!        UU R"                  U R                  S9  OU R%                  X!5      n[        R                  " U5        g )Nr   zPress any key to continue...)rT   rm   )rS   r3   r  rI   r*   r   r   r   rG   inputr   rm   r   rD   rC   rE   r   rT   rV  )r   r   r   r   s       r   mainRegrtest.main  s    $$!!#

T\\*HHQK>>01t}}%//%0OOH%!!x#'#3#3 $/ ~~h6Hr   )2r}   rR   rZ   ry   r{   rU   ra   r`   rb   r   r?   rc   rV   rs   rk   ro   r@   rT   rq   r   r   r]   re   r;   r<   r   rw   r:   r   r~   r>   r[   r   r   rX   rm   rf   r=   ru   r9   rS   rO   rI   rB   rE   rD   rK   rM   rG   r^   )F)r   r   )r   N)0__name__
__module____qualname____firstlineno____doc__r   r8  r   r  r   r   rt   r    r   staticmethodrC   r   r   r   r   r   r   r   rx   r  r   r  r   r   r8   r   CoverageResultsr5  r9  r?  rO  rV  ro  r}  r  r3   r  propertyr   r   r   r  __static_attributes__ r   r   r0   r0   "   s$   ,e99 e9 e9N T L(4 L(5HW[OA[;\ L(\ )   H  @,8 , ,($H $C $3 $4 $L	8 	 	
Dx 
DD 
D!-5?D{{T?Q	$.x .D .`3 Kh KS KT K:u'<'<t'C : :("&
i 
H 
6D:9 D:X_ D: D:L8) 8HtO 8 8".'`):#2L+,4   (T/ X  r   r0   r   c                 j    [        [        R                  SS 40 UD6n[        X1S9R	                  U S9  g)zRun the Python suite.r	   N)r3   )r   )r
   r   argvr0   r  )r   r3   kwargsr2   s       r   r  r    s1    	SXXab\	,V	,BR388u8Er   )NF)Arh   r   r   r   r   rd  r   rx   typingr   test.supportr   r   r   r   r   cmdliner
   r   r   r   r   r@   r   r;   r   r   r   r   r>   r   r   r   r   r   setupr   r   r   r   r   r=   r   utilsr   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r0   r  r  r   r   <module>r     s    	  	  
    4 4 , A A    % 6 + 0 6 "     _ _DF( Fr   