
    7\h)              	       P   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ ddlmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZmZmZ dZ d Z!d Z"d Z#dededdfdZ$g Z%dededdfdZ&	 ddedede'ddfdZ(dededdfdZ)dededefdZ*dS )    N)support)threading_helper   )
match_test)State
TestResult	TestStats)RunTests)saved_test_environment)setup_tests)get_test_runner)TestNameclear_cachesremove_testfnabs_module_nameprint_warningg      >@c                    t          j                    }|                    |           }|j        D ]}t	          |t
          j                   |j        rt          d          t          |t                     t          |          S )N)filezerrors while loading tests)unittest
TestLoaderloadTestsFromModuleerrorsprintsysstderr	Exception_filter_suiter   
_run_suite)test_modloadertestserrors       A/opt/python-3.11.14/usr/lib/python3.11/test/libregrtest/single.pyrun_unittestr$      s     ""F&&x00E & &e#*%%%%%} 64555%$$$e    c                     	 g }| j         D ]b}t          |t          j                  r&t	          ||           |                    |           B ||          r|                    |           c|| _         d S N)_tests
isinstancer   	TestSuiter   append)suiteprednewteststests       r#   r   r   '   s    HH & &dH.// 	&$%%%OOD!!!!tDzz &%%%ELLLr%   c                    	 t          t          j        t          j        t          j        d u          }|                    |           }t          j        1t          j                            |                                           |j	        s|j
        s|j        st          j        |                                st          j        |          }t!          |j                  dk    r|j        s|j        d         d         }nFt!          |j                  dk    r|j        s|j        d         d         }nd}t          j        s|dz  }d |j        D             }d |j        D             }t          j        ||||          |S )	N)	verbositycapture_outputr   r   zmultiple errors occurredz!; run in verbose mode for detailsc                 6    g | ]\  }}t          |          |fS  str.0tcexc_strs      r#   
<listcomp>z_run_suite.<locals>.<listcomp>I   s'    FFFW3r77G$FFFr%   c                 6    g | ]\  }}t          |          |fS r4   r5   r7   s      r#   r;   z_run_suite.<locals>.<listcomp>J   s'    JJJ;2wSWWg&JJJr%   )stats)r   r   stdoutr   verbosejunit_xml_listrunr+   get_xml_elementtestsRunskippedr   TestDidNotRunwasSuccessfulr	   from_unittestlenfailuresTestFailedWithDetails)r,   runnerresultr=   errr   rI   s          r#   r   r   3   sw   <SZ'.-4-C4-OR R RF ZZF)%%f&<&<&>&>???? $6> $&- $##!! P'//v}""6?"-"1%CC!!Q&&v}&/!$Q'CC,C?NC+N$NCFFFFFJJ&/JJJ+COOOOMr%   rL   runtestsreturnc                     |j         r'ddlm}  || j        ||j         |j                  \  }}n |            }d}|rt
          j        | _        |xt          d x\    |}n xt          j
        d x\    t          j        |          }nn t          | j         d|            d }nP	 dd l}t          ||j                  rt          j        |          }n!t          dt#          |                      d }|| _        d S )Nr   )runtest_refleakFr4   z test runner returned None: r   zUnknown test result type: )hunt_refleakrefleakrQ   	test_namequietr   REFLEAKstater	   r   r   rG   r   doctestr)   TestResultsfrom_doctesttyper=   )rL   	test_funcrN   rQ   rS   test_resultr=   rX   s           r#   regrtest_runnerr^   O   sN     ,,,,,,.v/?/7/D/7~ ?  ?  ikk %} Y[[[[[[EE "X """"""+K88EE #V-VV9VVWWWEE NNN+w':;; !.{;;N4;L;LNNOOOFLLLr%   c                    | j         }t          ||j                  }t          j        |          t          d          rt          d| d          fd}	 t          | ||           t          j	                     t          ||j                   n-# t          j	                     t          ||j                   w xY wt          j        rzdt          _        t          | dt!          t          j                   d           t"                              t          j                   t          j                                         t          j                     d S )N	test_mainzModule z= defines test_main() which is no longer supported by regrtestc                  "    t                     S r'   )r$   )r   s   r#   r\   z!_load_run_test.<locals>.test_func   s    H%%%r%   Tz	 created z uncollectable object(s))rT   r   test_dir	importlibimport_modulehasattrr   r^   r   
gc_collectr   r?   gcgarbageenvironment_alteredr   rH   
GC_GARBAGEextendclearreap_children)rL   rN   rT   module_namer\   r   s        @r#   _load_run_testro   y   ss    I!)X->??K&{33Hx%% ? >) > > > ? ? 	?& & & & &	3	8444 	i!12222 	i!12222	z &*# 1 1S__ 1 1 1 	2 	2 	2
 	"*%%%

s   B *B?Tdisplay_failurec                    dt           _        |j        }|rd}|j        }| j        }	 t                       t          j                     t          ||j        ||          5  t          | |           d d d            n# 1 swxY w Y   n# t           j
        $ r6}|s|st          | d| d           t          j        | _        Y d }~d S d }~wt          j        $ r6}|s|st          | d| d           t          j        | _        Y d }~d S d }~wt           j        $ rk}d| d}|r| d| }t          |t&          j        d	           t          j        | _        |j        | _        |j        | _        |j        | _        Y d }~d S d }~wt           j        $ rS}d| d}|r| d| }t          |t&          j        d	           t          j        | _        |j        | _        Y d }~d S d }~wt           j        $ r t          j        | _        Y d S t8          $ r# t                       t          j        | _        Y d S  |s5t=          j                    }t          d| d
| t&          j        d	           t          j         | _        Y d S xY wt           j        r| !                                 | j        t          j"        | _        d S d S )NF)pgoz skipped -- T)flushtest z failedz -- r   rs    crashed -- )#r   ri   rr   rU   rT   r   rf   r   r?   ro   ResourceDeniedr   r   RESOURCE_DENIEDrW   r   SkipTestSKIPPEDrJ   r   r   FAILEDr   rI   r=   
TestFailedrE   DID_NOT_RUNKeyboardInterruptINTERRUPTED	traceback
format_excUNCAUGHT_EXCset_env_changedPASSED)rL   rN   rp   rr   rU   rT   excmsgs           r#   _runtest_env_changed_excr      s    #(G
,C
  NE I0#I$,$4eF F F 	- 	-68,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- !    	?S 	?Y11C11>>>>,    	?S 	?Y11C11>>>>}( 	 	 	(i((( 	$##c##Cc
$////|
,y   (i((( 	$##c##Cc
$////|y    (   ( 	/&((C6)6666z/ / / /)" !   || sn   9B
  A=1B
 =BB
 BB
 
J+C

J+DJA FJAG%%#J(J6A	Jc                     |j         }|j        }|j        }|%t          j        rd}t          j        |d           nd}	 t          |           |r+dt          _         t          j
                    }t          j        }t          j        }t          j        }	|	j        }
d }	 |t          _        |t          _        ||	_        t!          | |d           | j        t$          j        k    r|                                }|t          _        |t          _        |
|	_        n$# |t          _        |t          _        |
|	_        w xY w|=t          j                            |           t          j                                         n|t          _         t!          | ||            t          j        }|rdd lmc m fd|D             | _        |rt          j                     d t          _        d S # |rt          j                     d t          _        w xY w)NT)exitF)rp   r   c                 `    g | ]*}                     |                              d           +S )zus-ascii)tostringdecode)r8   xETs     r#   r;   z_runtest.<locals>.<listcomp>  sA     2 2 2#$  "{{1~~44Z@@ 2 2 2r%   )r?   output_on_failuretimeoutr   can_start_threadfaulthandlerdump_traceback_laterr   r   ioStringIOr   r>   r   r   orig_stderrr   rW   r   r   getvaluewriters   r@   xml.etree.ElementTreeetreeElementTreexml_datacancel_dump_traceback_later)rL   rN   r?   r   r   use_timeoutstreamorig_stdoutr   r   orig_print_warnings_stderroutputxml_listr   s                @r#   _runtestr      s;    G 2G/@)'=====/&H "	B"GO[]]F*K*K#1M)6)B&FG#
#
 -3)(5QQQQ<5<//#__..F(
(
,F)) )
(
,F)FFFF!
  (((
  """ &GO$VX9@[B B B B ) 	2.........2 2 2 2(02 2 2FO  	74666!%  	74666!%%%%%s'   AG*  AD : G* !D;;BG* *#HrT   c                    	 t          j                    }t          |           }|j        }	 t	          ||           nO#  |s5t          j                    }t          d|  d| t          j	        d           t          j        |_        Y nxY wt          j                                         t          j	                                         t          j                    |z
  |_        |S )Nrt   rv   Tru   )timeperf_counterr   rr   r   r   r   r   r   r   r   r   rW   r>   rs   duration)rT   rN   
start_timerL   rr   r   s         r#   run_single_testr   $  s     "$$J	""F
,C*""""* 	/&((C6)6666z/ / / /)JJ'))J6FOMs
   = A
B	)T)+r   rg   rc   r   r   r   r   r   r/   r   test.supportr   filterr   rL   r   r   r	   rN   r
   save_envr   setupr   
testresultr   utilsr   r   r   r   r   PROGRESS_MIN_TIMEr$   r   r   r^   rj   ro   boolr   r   r   r4   r%   r#   <module>r      sy       				     				 



             ) ) ) ) ) )       0 0 0 0 0 0 0 0 0 0       , , , , , ,       ' ' ' ' ' 'A A A A A A A A A A A A A A    
 
 
  8#J #X #$ # # # #N 
": " "d " " " "L 6:D$ D$Z D$8 D$.2D$>BD$ D$ D$ D$N<&Z <&8 <& <& <& <& <&~x 8 
      r%   