+
    Biq                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
Ht ^ RIHtHtHt ^RIHtHt ^RIHtHtHt ^RIHt ^RIHt ^R	IHt ^R
IHtHt ^RIH t H!t! ^RI"H#t#H$t$ ^RI%H&t&H't' ^RI(H)t)H*t* ^RI+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6H7t7H8t8H9t9H:t:H;t;H<t<H=t=H>t>  ! R R4      t?RR R llt@R# )    N)
get_colorsNoReturn)	os_helper
MS_WINDOWSflush_std_streams)_parse_args	Namespace)	findtestssplit_test_packages
list_cases)Logger)setup_pgo_tests)
TestResult)TestResultsEXITCODE_INTERRUPTED)RunTestsHuntRefleak)setup_processsetup_test_dir)run_single_testPROGRESS_MIN_TIME)setup_tsan_testssetup_tsan_parallel_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                     a  ] tR t^!t o RtR2V 3R lR lltR3V 3R lR lltR4V 3R lR llt]V 3R	 lR
 l4       t	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltV 3R# lR$ ltV 3R% lR& ltR' tR( tR) tV 3R* lR+ ltR, t]V 3R- lR. l4       tR4V 3R/ lR0 lltR1t V t!R# )5Regrtesta!  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.
c                &   < V ^8  d   QhRS[ RS[/# )   ns_add_python_opts)r
   bool)format__classdict__s   ",/usr/lib/python3.14/test/libregrtest/main.py__annotate__Regrtest.__annotate__8   s     i9 i99 i9 i9    c                	   \        VP                  4      V n        VP                  V n        VP                  V n        VP                  V n        VP
                  V n        VP                  V n        \        4       V n        R V n	        \        V P                  V P                  V P                  4      V n        VP                  V n        VP                  V n        VP                   V n        VP$                  V n        VP(                  V n        VP,                  V n        VP0                  V n        VP4                  V n        VP8                  ;'       g    VP:                  V n        T;'       d    VP>                  V n         VPB                  V n!        VPD                  V n"        VPF                  V n#        VPH                  V n%        VPL                  V n'        VPP                  V n(        V PP                  '       g   VPR                  f   ^ pM VPR                  ^ 8:  d   RpMVPR                  pW0n*        VPV                  V n+        VPX                  V n-        VP\                  V n.        VP^                  V n/        VP`                  V n0        VPb                  V n2        VPf                  V n3        VPh                  '       dA   VPh                  w  rEp\j        Pl                  Po                  V4      p\q        WEV4      V n9        MR V n9        VPt                  V n;        VPx                  V n=        VP|                  V n?        VP                  V nA        \        VP                  4      V nC        VP                  '       d   \        VP                  4      V nE        MR V nE        VP                  V nG        VP                  V nI        VP                  V nK        VP                  V nL        R\j        P                  9   dB   \j        P                  R,          '       d%   RV nL        \j        P                  R,          V nN        M;VP                  f   \        P                  ! ^ 4      V nN        MVP                  V nN        \        VP                  4      V nR        VP                  V nS        R V nT        VP                  V nV        \        P                  ! 4       V nY        VP                  V n[        R V n\        R V n]        R # )NSOURCE_DATE_EPOCHF)^intverbosequietpgopgo_extendedtsantsan_parallelr   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
prioritizeprioritize_testsparallel_threadsfirst_runtests
print_slowprint_slowesttimeperf_counter
start_timesinglesingle_test_runnext_single_testnext_single_filename)selfr2   r3   rd   warmupsrunsfilenames   &&&    r7   __init__Regrtest.__init__8   s   

O88
"$//''	#%#3#3 %0M'+ T\\4::txx@ "$%']]%']]!ww"$** "$&KK!# jj66BJJ+; ,C ,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9996;BII6FDO"DO hh,.KK(*

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

.//"DN +-**5H*ID^^#%11"5D!~~D16r}}1E " 3 3 04 $&== ++- &(YY1548!r:   c                $   < V ^8  d   QhRS[ RR/# )r1   linereturnNstr)r5   r6   s   "r7   r8   r9      s       T r:   c                <    V P                   P                  V4       R # N)rG   log)r   r   s   &&r7   r   Regrtest.log   s    r:   Nc                X   < V ^8  d   QhRS[ R,          RS[S[S[ R,          3,          /# r1   testsNr   )r   r{   r   )r5   r6   s   "r7   r8   r9      s2     Y( Y(4 Y(5HW[OA[;\ Y(r:   c                 	   Vf   . pV P                   '       dy   \        P                  P                  V P                  R4      V n         \        V P
                  R4      ;_uu_ 4       pVP                  4       P                  4       pV.pR R R 4       V P                  '       d   . p\        P                  ! R4      p\        \        P                  P                  \        P                  V P                  4      4      ;_uu_ 4       pV Fb  pVP                  R^4      ^ ,          pVP                  4       pVP!                  V4      pVf   KC  VP#                  VP%                  4       4       Kd  	  R R R 4       \'        V4       \)        4       pV P*                  '       d,   V P,                   F  pVP/                  V4       K  	  . V n        V P0                  '       d!   \3        V P,                  V P4                  4       V P6                  '       d   \9        V P,                  4       V P:                  '       d   \=        V P,                  4       \?        V P@                  VR7      p	V P                  '       gO   T;'       g    V P,                  p
V'       d   V
 Uu. uF  pW9  g   K  VNK  	  p
pV
'       d   \C        V
4      p
MT	p
MTp
V P                   '       d7   V
R,          p
 V	PE                  V
^ ,          4      pW^,           ,          V n#        V PJ                  '       d     V
R V
PE                  V PJ                  4      1 \T        PV                  ! V PX                  4       V PZ                  '       d   \T        P\                  ! V
4       \_        V P`                  4       F'  p V
Pc                  V4       V
Pe                  ^ V4       K)  	  \g        V
4      V3#   + '       g   i     ELN; i  \         d     EL_i ; i  + '       g   i     EL; iu upi   \H         d     ELi ; i  \L         d3    \O        RT PJ                   24       \P        PR                  ! ^4        EL"i ; i  \L         d    \O        RT R	24        K  i ; i)
N
pynexttestrz\btest_[a-zA-Z0-9_]+\b#)rs   r\   :N   NzCannot find starting test: zwarning: --prioritize=z$ used but test not actually selected)4r   ro   rp   jointmp_dirr   openreadstripOSErrorr]   recompiler   SAVEDCWDsplitsearchappendgroupr!   setr\   ra   addrA   r   rB   rC   r   rD   r   r   rt   r   indexr   
IndexErrorr_   
ValueErrorprintsysexitr   seedr   r   shufflereversedr   removeinsertr{   )r   r   fp	next_testregexr   matchexclude_testsargalltestsselectednamepospriority_tests   &&            r7   
find_testsRegrtest.find_tests   s   =E(*T\\<(PD%$33S99R "	 1I&KE : ===E JJ89Ebggll9#5#5t}}EFF"D::c1-a0D::<D!LL.E(U[[]3  G 	<<<((!!#& ) "D888D--t/@/@A999T../%d&7&78T]]%24 }}}11 1 1H-5 :XT#8 !DX :.x8#H|HnnXa[1(0q(9%
 @hnnT-?-?@@A
 	D$$%>>>NN8$%d&;&;<M2. =1 = h''g :99   GFFB:    3D4F4F3GHI  .}o >: ; <s   	O" '"O	O" AO4
#O4PP,P P QO	O" O" "O10O14P	PP9QQQ=<Q=c                $   < V ^8  d   QhRS[ RR/# )r1   r   r   N)r   )r5   r6   s   "r7   r8   r9     s      )  r:   c                .    V  F  p\        V4       K  	  R # r   )r   )r   r   s   & r7   rJ   Regrtest.list_tests  s    D$K r:   c                &   < V ^8  d   QhRS[ RS[ /# )r1   runtestsr   r   )r5   r6   s   "r7   r8   r9     s      H  r:   c           
        V P                   ^ 8X  d   V P                  '       g   ^V n         V P                  P                  4       w  r#VP	                  VRRRRVRR7      pV P
                  P                  V4       R\        V4       R2pV P                  '       g4   V R2pV P                  V4       V P                  WP                   4       V# V P                  V4       V P                  V4       V# )r   TF)r   rQ   r?   rj   rg   match_tests_dictrl   zRe-running z failed tests in verbose modez in subprocesses)rd   rb   rE   prepare_reruncopyrG   	set_testslenr   _run_tests_mprun_tests_sequentially)r   r   r   r   msgs   &&   r7   _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                $   < V ^8  d   QhRS[ RR/# r1   r   r   Nr   )r5   r6   s   "r7   r8   r9   &  s     , ,8 , ,r:   c                   \        4       pVP                  VP                  rCV P                  '       d   V P	                  R 4       R# V P                  4       V n        \        4        V P                  V4      pV P                  P                  '       dY   \        V \        \        V P                  P                  4      R4       RV 24       \        V P                  P                  4       V P                  V4       R# )zJRe-running failed tests is not supported with --python host runner option.Ntestz failed again:)r   BOLD_REDRESETr~   r   	get_staterF   r   r   rE   badr"   r   r$   display_result)r   r   ansiredresetrerun_runtestss   &&    r7   rerun_failed_testsRegrtest.rerun_failed_tests&  s    |]]DJJU???HH& >>+11(;<<%c$,,"2"23V<= >  %w( dll&&'N+r:   c                2   < V ^8  d   QhRS[ RS[RS[RS[/# )r1   r   r   progressr   )r   r   r4   )r5   r6   s   "r7   r8   r9   @  s)     $ $H $C $3 $4 $r:   c                   \        4        R V 2pV'       d	   V RV R2p\        V4       \        R\        V4      ,          4       \        4        VP                  4       pVP                  . RO4       VP                  VP	                  4       4       VP                  V4       \        R\        P                  ! V4      RR7       \        4        ^ RI	pVP                  WQP                  R7      pVP                  pV R	V 2p\        V4       \        R\        V4      ,          4       \        RR7       V'       d   \        R
V 24       R# R# )zBisect z ()r   +TflushNrm   z: exit code zBisect failed with exit code F)-uz-mztest.bisect_cmdz
--max-iter25z-v)r   r   create_python_cmdextendbisect_cmd_argsr   shlexr   r   
subprocessrunrm   
returncode)	r   r   r   r   titlecmdr  procexitcodes	   &&&&     r7   _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                $   < V ^8  d   QhRS[ RR/# r   r   )r5   r6   s   "r7   r8   r9   f  s     	 	8 	 	r:   c                    V P                   P                  R R7      w  r#\        V^4       FC  w  rE\        V4      ^8  d   V R\        V4       2pMRpV P	                  WV4      '       d   KB   R# 	  R# )F)clear/ N)rE   r   	enumerater   r
  )r   r   r   _r   r   r   s   &&     r7   
run_bisectRegrtest.run_bisectf  sh    <<--E-:$UA.KE5zA~#WAc%j\2##HH== /r:   c                $   < V ^8  d   QhRS[ RR/# r   r   )r5   r6   s   "r7   r8   r9   q  s     
D 
Dx 
DD 
Dr:   c                    VP                   '       d   R # V P                  4       p\        4        \        RV R24       V P                  P	                  VP
                  V P                  V P                  4       R # )Nz== Tests result: z ==)rA   r   r   rE   r   r   r@   r   )r   r   states   && r7   r   Regrtest.display_resultq  sY    <<< !%,-##HNN$(JJ0B0B	Dr:   c                T   < V ^8  d   QhRS[ RS[RS[P                  R,          RS[/# )r1   	test_namer   tracerNr   )r   r   r   Tracer   )r5   r6   s   "r7   r8   r9   }  s6      !-5?D{{T?Q	r:   c                   VeV   Rp\        \        4       4      pVP                  V\        4       VR7       VR,          p\	        VP
                  4      Vn        M\        W4      pV P                  P                  Wb4       V# )Nz-result = run_single_test(test_name, runtests))globalslocalsresult)
dictr  runctxr  listcountscovered_linesr   rE   accumulate_result)r   r  r   r  r  	namespacer   s   &&&&   r7   run_testRegrtest.run_test}  sm      CCVXIMM#wyMCx(F#'#6F $Y9F&&v8r:   c                $   < V ^8  d   QhRS[ RR/# r   r   )r5   r6   s   "r7   r8   r9     s     . .x .D .r:   c                   V P                   '       d   \        P                  ! R RR7      pMRp\        \        P
                  4      pVP                  4       pVe   \        VR4      pMRpRV R2pVP                  '       d$   VR\        VP                  4      ,          ,          pV P                  V4       VP                  4       p\        V^4       EFt  w  r\        P                  ! 4       p
V P                  P!                  W4       V P#                  WV4      p\        P
                   Uu. uF&  pW9  g   K  VP%                  R4      '       g   K$  VNK(  	  ppV FY  p\        P
                  P'                  VR4       VP)                  R	4      w  rp \+        \        P
                  V,          V4       K[  	  \1        V4      p\        P                  ! 4       V
,
          pV\2        8  d   V R
\        V4       2pV P                  P!                  VV4       VP5                  V P6                  V P8                  4      '       g   EKt   R# 	  R# u upi   \,        \.        3 d     EK  i ; i)FT)r   r"   Nr   r   zRun z! sequentially in a single processz (timeout: %s).z in )ztest.test_)r   r   r  r   r   modulesget_jobsr"   rm   r#   r   
iter_testsr  r   r   rG   display_progressr(  
startswithpop
rpartitiondelattrKeyErrorAttributeErrorr   r   	must_stoprg   rh   )r   r   r  save_modulesjobsr   r   
tests_iter
test_indexr  r   r   modulenew_modulesparentr  r   text	test_times   &&                 r7   r   Regrtest.run_tests_sequentially  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 "6K G &-"("3"3C"84CKK/6 & v;D))+j8I--tOI$>#?@KK((T:0E0EFF7 &>G !.1 s$   ,I9II!II('I(c                    < V ^8  d   QhRS[ /# r1   r   r   )r5   r6   s   "r7   r8   r9     s      3 r:   c                    V P                   P                  V P                  4      pV P                  '       d   V P                   R V 2pV# )z then )rE   r   rh   rF   )r   r  s   & r7   r   Regrtest.get_state  sD    &&t'<'<=''(ug6Er:   c                *   < V ^8  d   QhRS[ RS[RR/# )r1   r   rd   r   N)r   r>   )r5   r6   s   "r7   r8   r9     s'     K Kh KS KT Kr:   c                j    ^RI Hp V! W!V P                  V P                  4      P	                  4        R# )r   )
RunWorkersN)run_workersrI  rG   rE   r  )r   r   rd   rI  s   &&& r7   r   Regrtest._run_tests_mp  s"    +;$++t||DHHJr:   c                F   < V ^8  d   QhRS[ P                  R,          RR/# )r1   r   Nr   )r   CoverageResults)r5   r6   s   "r7   r8   r9     s&     : :u'<'<t'C : :r:   c                   V P                   '       d}   V P                  '       dK   \        V P                   R 4      ;_uu_ 4       pVP                  V P                  R,           4       RRR4       M \        P
                  ! V P                   4       Ve    VP                  RRV P                  RR7       V P                  '       d1   \        P                  ! R\        P                  ! 4       ,          4       V P                  '       d(   V P                  P                  V P                  4       R# R#   + '       g   i     L; i)w
NT)show_missingsummaryr   ignore_missing_fileszleaks %d)r   r   r   writero   unlinkwrite_resultsr   rT   systemgetpidrv   rE   write_junit)r   r   r   s   && r7   finalize_testsRegrtest.finalize_tests  s    $$$$$$$33S99RHHT22T9: :9 		$334""d,0,=,=8< # > IIj299;./LL$$T%8%89  :9s   #D//D?	c                   < V ^8  d   QhRR/# r1   r   N )r5   r6   s   "r7   r8   r9     s     " " "r:   c                   V P                   f   \        R4      h\        P                  ! 4       V P                  P
                  ,
          p\        V P                  4      p\        4        \        R\        V4      ,          4       V P                  P                  V P                   V4       V P                  4       p\        RV 24       R # )NzBShould never call `display_summary()` before calling `_run_test()`zTotal duration: %szResult: )r   r   r   r   rG   r   r4   r[   r   r#   rE   display_summaryr   )r   durationfilteredr  s   &   r7   r`  Regrtest.display_summary  s    &T  $$&)?)??(() 	"_X%>>?$$T%8%8(C   !r:   c                &   < V ^8  d   QhRS[ RS[/# )r1   r   r   )r   r   )r5   r6   s   "r7   r8   r9     s     
 
i 
H 
r:   c                H   \        V3/ R V P                  bRV P                  bRV P                  bRRbRRbRV P                  bRV P
                  bR	V P                  bR
V P                  bRV P                  bRV P                  bRV P                  bRV P                  bRV P                  bRV P                  RJbRV P                  bRV P                  bRV P                   bRV P"                  bRV P$                  bRV P&                  bRV P(                  bRV P*                  b # )rg   rh   r[   r   NrQ   Frj   rA   rB   rl   rm   r?   r@   rr   rt   	use_junitr   rx   rz   r|   r~   r   r   r   )r   rg   rh   r[   rj   rA   rB   rl   rm   r?   r@   rr   rt   rv   r   rx   rz   r|   r~   r   r   r   )r   r   s   &&r7   create_run_testsRegrtest.create_run_tests  se   
nn
 "22
 ((	

 "
 
 LL
 
 **
 #44
 LL
 LL
 **
 **
 ]]
  **$6!
" ]]#
$ **%
& **'
( ,,)
* +
, nn-
. ((/
0 "221
 	
r:   c                :   < V ^8  d   QhRS[ RS[R,          RS[/# r1   r   r   Nr   r   r   r>   )r5   r6   s   "r7   r8   r9     s&     9: 9:9 9:X_ 9: 9:r:   c                R   V P                   '       d:   V P                   P                  ^8  d   Rp\        V\        P                  RR7       V P
                  ^ 8  d,   \        P                  ! 4       ;'       g    ^^,           V n        V P                  '       gQ   V P                  '       g_   V P                  '       gM   V P                  '       g;   V'       g3   V P                  '       g!   \        V P                  V P                  4       \        RV P                   4       V P#                  V4      pW@n        V P&                  P)                  V4       VP                   e   V P
                  '       g   RpM\*        pV'       d   V P&                  P-                  4         V P
                  '       d   V P/                  W@P
                  4       MV P1                  V4       V P2                  P5                  4       pV P7                  V4       V P8                  '       d2   V P2                  P;                  4       '       d   V P=                  V4       V P>                  '       d2   V P2                  P;                  4       '       d   V PA                  V4       V'       d   V P&                  PC                  4        T PE                  4        T PG                  T4       T P2                  PI                  T PJ                  T PL                  4      #   T'       d   T P&                  PC                  4        i i ; i)   zhWARNING: Running tests with --huntrleaks/-R and less than 3 warmup repetitions can give false positives!T)filer   zUsing random seed:F)'rr   r   r   r   stdoutrd   ro   process_cpu_countrI   rA   r@   r   ra   r(   r|   r~   r   rg  r   rG   r   r   start_load_trackerr   r   rE   get_coverage_resultsr   rR   
need_rerunr   rV   r  stop_load_trackerr`  rZ  get_exitcoderh   ri   )r   r   r   r   r   use_load_trackerr   s   &&&    r7   
_run_testsRegrtest._run_tests  s9   !2!2!:!:Q!>NC#CJJd3a !# 4 4 6 ; ;!q@D 888tzzzT-A-A-At0004--t?"D$4$45((2&h'!!-8H8H8H$  *KK**,	0""8-=-=>++H5||88:H)4<<#:#:#<#<''1DLL$;$;$=$=)--/H%||(()>)>)-: 	:  --/  s+   L 0A)L L :"L L =L %L&c                :   < V ^8  d   QhRS[ RS[R,          RS[/# rj  rk  )r5   r6   s   "r7   r8   r9   G  s&     8 8) 8HtO 8 8r:   c           	        \         P                  ! V P                  R R7       \        V P                  4      p\	        4       ;_uu_ 4        \
        P                  ! VR R7      ;_uu_ 4        V P                  W4      uuRRR4       uuRRR4       #   + '       g   i     M; i RRR4       R#   + '       g   i     R# ; i)T)exist_ok)r@   N)ro   makedirsr   r&   r'   r   temp_cwdrw  )r   r   r   work_dirs   &&& r7   	run_testsRegrtest.run_testsG  su    
DLL40- ^^
 ##HD99
 x7 :9 ^
 :99 ^^^s$   
!B/+B	<
B/B!B//C 	c                j   \        V P                  4      pR p\        4       p\        4       pV'       do   0 Rmp\        P
                  p\        P
                  P                  4        UU	u/ uF&  w  rVP                  R4      '       d	   W9   g   K$  WbK(  	  p
pp	W8w  d   T
pRpV'       d   V'       d{   V P                  ^ 8X  d&   V P                  '       g   VP                  RR.4       V P                  '       g3   \        P                  ! R4      pV RV 2pVP                  RV.4       RpW23# u up	pi )	NTz-j2BUILDPYTHON z--python>   
PYTHONPATH_PYTHON_PROJECT_BASE_PYTHON_HOST_PLATFORM_PYTHON_SYSCONFIGDATA_NAME_PYTHON_SYSCONFIGDATA_PATH)PYTHON_PYTHON)r4   r~   r+   r,   ro   r   itemsr2  rd   rb   r   	sysconfigget_config_var)r   regrtest_optskeep_environr   cross_compile
hostrunnerkeepold_environr   valuenew_environbuildpythonr~   s   &&           r7   _add_cross_compile_opts Regrtest._add_cross_compile_optsX  s    DOO, *+ %&
D **K/1zz/?/?/A/A'<== /A  
 )%LZ1$T-@-@-@ $$dC[1 ???'66}E *|1[M:
$$j*%=>#&&/s   )!D/D/c                   \         P                  P                  '       g'   \         P                  R 8w  d   VP	                  R4       \         P
                   Uu. uF  pVP                  R4      '       d   K  VNK   	  up'       g   VP                  R4       \         P                  P                  ^8  d   VP	                  R4       V'       g6   \         P                  P                  '       g   VP	                  R4       R# R# R# u upi )androidr   z::BytesWarningz-bbz-EN)z-Werror)r   ro  write_throughplatformr   warnoptionsendswithr   flagsbytes_warningignore_environment)r   python_optsr  opts   &&& r7   _add_ci_python_optsRegrtest._add_ci_python_opts  s     zz'''CLLI,Et$
 ??
*C<< 01 C?
 
 / 99""Q&u%99///""4( 0 
s   D7Dc                   \         P                  P                  4        \         P                  P                  4        \        P
                  ! V4      p V^ ,          '       g   \        R4      h\        RV 2RR7       \        \        R4      '       d-   \        '       g!   \        P                  ! V^ ,          V4       R# ^ RIpVP                  WR7      ;_uu_ 4       p VP                  4        RRR4       \         P&                  ! XP*                  4       R#   \         dm     TP                  \         R7        LN  TP"                   d?    TP%                  4        TP                  4        \         P&                  ! \(        4         Li ; ii ; i  + '       g   i     L; i  \,         d   p\/        R	T: R
T 24        Rp?R# Rp?ii ; i)r   zNo Python executable is presentz+ Tr   execvN)envr   z!Failed to change Python options: z

Command: )r   ro  r   stderrr  r   r   r   hasattrro   r   r  r  PopenrM   KeyboardInterruptr-   TimeoutExpiredkillr   r   r  	Exceptionr*   )r   r  r   cmd_textr  r  excs   &&&    r7   _execute_pythonRegrtest._execute_python  sT   



::c?	2 q66 !BCCBxj/.r7##JJQ% "%%c%774
;		 8 ) - ;; IIlI;)88 ; IIK IIKHH%9:;; 87  	2=cW E&&.Z1 2 2	2s   F' #<F'  F'  F' F D0(F' F&D><F>AF		F
FF	FFF$	F' 'G2G

Gc                   < V ^8  d   QhRR/# r]  r^  )r5   r6   s   "r7   r8   r9     s     + +$ +r:   c                f   . p. pV P                  V4      w  r4V P                  '       d   V P                  W4       V'       g   V'       g   Vf   R # \        \        P
                  4      pV'       d   WR&   V'       d   VP                  V4       VP                  R4       V P                  WS4       R # )N:r   r   Nz--dont-add-python-opts)	r  rY   r  r#  r   	orig_argvr   r   r  )r   r  r  r   r  r  s   &     r7   r3   Regrtest._add_python_opts  s    !##% $ < <] K<<<$$[?m'/ 3==!"HJJ}%

+,S*r:   c                V   \        4        V P                  '       d^   \        P                  P	                  V P                  4      '       g/   \        P                  P                  V P                  4      V n        \        V P                  4       \        V P                  4      V n	        R # r   )
r   rv   ro   rp   isabsrq   r!   ra   r%   r   r   s   &r7   _initRegrtest._init  sd    rww}}T5H5H'I'I"$''//$2E2E"FD))*$T]]3r:   c                    < V ^8  d   QhRS[ /# rD  )r   )r5   r6   s   "r7   r8   r9     s       r:   c                L    V P                   f   \        R4      hV P                   # )Nz4Should never use `.tmp_dir` before calling `.main()`)r   r   r  s   &r7   r   Regrtest.tmp_dir  s(    == F  }}r:   c                4   < V ^8  d   QhRS[ R,          RS[/# r   )r   r   )r5   r6   s   "r7   r8   r9     s      (T/ X r:   c                r   V P                   '       d   V P                  4        V P                  4        V P                  '       d,   \	        V P
                  4       \        P                  ! ^ 4       V P                  '       d   \        R4       \        V P                  4       V P                  V4      w  r!^ pV P                  '       d   V P                  V4       MFV P                  '       d$   \!        VV P"                  V P                  R7       MV P%                  W!4      p\        P                  ! V4       R# )r   zPress any key to continue...)r[   rt   N)rZ   r3   r  rP   r)   r   r   r   rN   inputr   rt   r   rK   rJ   rL   r   r[   r  )r   r   r   r	  s   &&  r7   mainRegrtest.main  s    $$$!!#

T\\*HHQK>>>01t}}%//%0OOH%!!!x#'#3#3 $/ ~~h6Hr:   )5r   rY   ra   r   r   r\   rh   rg   ri   r   rF   rj   r]   rz   rr   rv   rG   r[   rx   r   r   rd   rl   r   rA   rB   r   r   r~   r@   r   r   rE   rb   r   r   r_   rt   rm   rC   rD   r|   r?   rZ   rV   rP   rI   rL   rK   rR   rT   rN   re   )F)r  r   )"__name__
__module____qualname____firstlineno____doc__r   r   r   staticmethodrJ   r   r   r
  r  r   r(  r   r   r   rZ  r`  rg  rw  r  r  r  r  r3   r  propertyr   r  __static_attributes____classdictcell__)r6   s   @r7   r/   r/   !   s    ,i9 i9V Y( Y(v   @, ,4$ $L	 	
D 
D $. .` K K: :(" "&
 
89: 9:v8 8".'`):#2L+ +,4    r:   r/   c                $    V ^8  d   QhR\         /# rD  r   )r5   s   "r7   r8   r8     s     F F( Fr:   c                    \        \        P                  R,          3/ VB p\        W1R7      P	                  V R7       R# )zRun the Python suite.:r   NN)r3   )r   N)r	   r   argvr/   r  )r   r3   kwargsr2   s   &&, r7   r  r    s/    	SXXb\	,V	,BR388u8Er:   )NF)Aro   r   r   r  r   r  r   r   	_colorizer   typingr   test.supportr   r   r   cmdliner	   r
   r   r   r   rG   r   rA   r   r   r   rE   r   r   r   r   r   setupr   r   r   r   r   rC   r   r   utilsr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r/   r  r^  r:   r7   <module>r     s    	  	  
       A A + A A     6 + 0 6 =     l l^F Fr:   