
    <eR                     P   d dl Z d dlmZ d dlZd dlmZ d dlmZmZm	Z	 d dl
mZmZ d dlZd dlZd dlZd dlmZ d dlmZ d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z  G d de!          Z" G d dej#                  Z$ G d dej#                  Z% G d dej#                  Z& G d dej#                  Z' G d  d!ej#                  Z( G d" d#ej#                  Z) G d$ d%ej#                  Z* G d& d'ej#                  Z+e,d(k    r ej-                     dS dS ))    N)dump)captured_stdout)TESTFNrmtreeunlinkassert_python_okassert_python_failure)Trace)testmodc                 F    	 |                      d          r
| d d         } | S )Nz.pyc)endswith)filenames    &/usr/lib/python3.11/test/test_trace.py
fix_ext_pyr      s-    B   !CRC=O    c                      	 t           j                            t           j                            t                              d         } t          t                    | fS )Nr   )ospathsplitextbasename__file__r   )modnames    r   my_file_and_modnamer      sB    >grw//99::1=Gh((r   c                     | j         j        S N)__code__co_firstlinenofuncs    r   get_firstlinenor"   !   s    =''r   c                     | }|}||z   }|S r    )xyabcs        r   traced_func_linearr*   +   s    	A	A	AAHr   c                 8    | }t          d          D ]}||z  }|S N   range)r%   r&   r)   is       r   traced_func_loopr1   1   s,    	A1XX  	QHr   c                 6    | |z   t          j        d          z   S )N   )r   r!   )r%   r&   s     r   traced_func_importingr4   7   s    q57<??""r   c                 ,    t          | |           }|| z   S r   r*   )r%   r)   s     r   traced_func_simple_callerr7   :   s    1a  Aq5Lr   c                 J    t          |           }|t          ||           z  }|S r   )r7   r4   )r%   ks     r   traced_func_importing_callerr:   >   s)    !!$$A	q!	$	$$AHr   c              #   @   K   d}t          |           D ]	}||z   V  
d S r,   r.   )numr)   r0   s      r   traced_func_generatorr=   C   s9      	A3ZZ  !e r   c                  8    d} t          d          D ]}| |z  } d S )Nr   
   )r=   )r9   r0   s     r   traced_func_calling_generatorr@   H   s3    	A"2&&  	Q r   c                     | dz  S N   r$   )r<   s    r   traced_doublerrD   M   s    7Nr   c                  
    | |fS r   r$   )argskwargss     r   traced_capturerrH   P   s    <r   c                  <    d} d t          |           D             }|S )Nr?   c                 ,    g | ]}t          |          S r$   )rD   ).0r0   s     r   
<listcomp>z4traced_caller_list_comprehension.<locals>.<listcomp>U   s     222AnQ222r   r.   )r9   mylists     r    traced_caller_list_comprehensionrN   S   s%    
A22q222FMr   c                  \    d } d }|  |            d                         } |             d S )Nc                     | S r   r$   fs    r   
decorator1z-traced_decorated_function.<locals>.decorator1Y   s    r   c                      d } | S )Nc                     | S r   r$   rQ   s    r   
decorator2zGtraced_decorated_function.<locals>.decorator_fabric.<locals>.decorator2\   s    Hr   r$   rV   s    r   decorator_fabricz3traced_decorated_function.<locals>.decorator_fabric[   s    	 	 	r   c                      d S r   r$   r$   r   r   r!   z'traced_decorated_function.<locals>.func_   s	     	r   r$   )rS   rX   r!   s      r   traced_decorated_functionrZ   X   s^            ZDFFFFFr   c                   L    e Zd Zd Zd Zd Zed             Zed             Z	dS )TracedClassc                     || _         d S r   r'   )selfr%   s     r   __init__zTracedClass.__init__g   s    r   c                     | j         |z   S r   r^   )r_   r&   s     r   inst_method_linearzTracedClass.inst_method_linearj   s    vzr   c                 R    |                      |          }|t          ||          z   S r   )rb   r*   )r_   r%   r)   s      r   inst_method_callingzTracedClass.inst_method_callingm   s+    ##A&&%a++++r   c                     |dz  S rB   r$   )clsr&   s     r   class_method_linearzTracedClass.class_method_linearq       1ur   c                     | dz  S rB   r$   )r&   s    r   static_method_linearz TracedClass.static_method_linearu   rh   r   N)
__name__
__module____qualname__r`   rb   rd   classmethodrg   staticmethodrj   r$   r   r   r\   r\   f   sw            , , ,   [   \  r   r\   c                   @    e Zd Z	 d Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestLineCountsc                     |                      t          j        t          j                               t	          dddd          | _        t          t                    | _        d S )Nr3   r   counttrace
countfuncscountcallers)	
addCleanupsyssettracegettracer   tracerr   r   my_py_filenamer_   s    r   setUpzTestLineCounts.setUp   sL    clnn555!1KKK(22r   c                 H   | j                             t          dd          }|                     |d           i }t	          t                    }t          dd          D ]}d|| j        ||z   f<   |                     | j                                         j        |           d S )NrC   r-      r3   )	r|   runfuncr*   assertEqualr"   r/   r}   resultscounts)r_   resultexpectedfirstlinenor0   s        r   test_traced_func_linearz&TestLineCounts.test_traced_func_linear   s    $$%7A>>### %&899q! 	B 	BA@AHd);!+;<==,,..5x@@@@@r   c           	      8   | j                             t          dd           t          t                    }| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fdi}|                     | j                                         j        |           d S )NrC      r3      r-      )r|   r   r1   r"   r}   r   r   r   r_   r   r   s      r   test_traced_func_loopz$TestLineCounts.test_traced_func_loop   s    ,a333%&677 +/2A +/2A +/2A +/2A	
 	,,..5x@@@@@r   c                 \   | j                             t          dd           t          t                    }| j        |dz   fdt          t          j                  dfdt          t          j                  dfdi}|                     | j         	                                j
        |           d S )NrC   r-   r3   r   )r|   r   r4   r"   r}   r   r   r   r   r   r   r   s      r   test_traced_func_importingz)TestLineCounts.test_traced_func_importing   s    11a888%&;<< +/2A())1-q())1-q
 	,,..5x@@@@@r   c                    | j                             t                     t          t                    }t          t                    }| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fdi}|                     | j                                         j        |           d S )Nr3   rC      r   r?   )	r|   r   r@   r"   r=   r}   r   r   r   )r_   firstlineno_callingfirstlineno_genr   s       r   test_trace_func_generatorz(TestLineCounts.test_trace_func_generator   s    9:::-.KLL)*?@@ "5"9:A "5"9:B "5"9:B /A"56 /A"56 /A"56
 	,,..5x@@@@@r   c           	      \   | j                             t                     t          t                    }t          t                    }| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fdi}|                     | j                                         j        |           d S )Nr3   rC      r   r?   )	r|   r   rN   r"   rD   r}   r   r   r   )r_   r   firstlineno_calledr   s       r   test_trace_list_comprehensionz,TestLineCounts.test_trace_list_comprehension   s    <===-.NOO,^<< "5"9:A  "5"9:B "5"9:A "4q"892
 	,,..5x@@@@@r   c                    | j                             t                     t          t                    }| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |dz   fd| j        |d	z   fd| j        |d
z   fd| j        |dz   fdi}|                     | j                                         j        |           d S )Nr3   rC   r   r   r-   r   r      	   r?   r   )r|   r   rZ   r"   r}   r   r   r   r   s      r   test_traced_decorated_functionz-TestLineCounts.test_traced_decorated_function   s   5666%&?@@ +/2A +/2A +/2A +/2A +/2A +/2A +/2A +/2A +/2A +"23Q +"23Q
 	,,..5x@@@@@r   c                 4   dD ]}t          dddd          }t          d          }t          ||          }|                    |d           t	          |          }| j        |dz   fdi}|                     |                                j        |           d S )N)rb   r3   r   rs         )	r   r\   getattrr   r"   r}   r   r   r   )r_   methnamer|   
traced_objmethodr   r   s          r   test_linear_methodsz"TestLineCounts.test_linear_methods   s     0 
	@ 
	@H!JJJF$RJZ22FNN62&&&)&11K$kAo6H V^^--4h????
	@ 
	@r   N)rk   rl   rm   r   r   r   r   r   r   r   r   r$   r   r   rq   rq   }   s        93 3 3

A 
A 
A
A 
A 
A
A 
A 
AA A AA A AA A A&@ @ @ @ @r   rq   c                       e Zd Z	 d Zd ZdS )TestRunExecCountsc                     t          t                    | _        |                     t          j        t	          j                               d S r   )r   r   r}   rx   ry   rz   r{   r~   s    r   r   zTestRunExecCounts.setUp   s4    (22clnn55555r   c           	         t          dddd          | _        d}t          |t          d          }| j                            |t                      t                                 t          t                    }| j	        |dz   fd| j	        |dz   fd| j	        |dz   fd	| j	        |d
z   fdi}|
                                D ]@}|                     | j                                        j        |         ||                    Ad S )Nr3   r   rs   ztraced_func_loop(2, 5)execrC   r   r   r-   r   )r   r|   compiler   runctxglobalsvarsr"   r1   r}   keysr   r   r   )r_   coder   r   r9   s        r   test_exec_countsz"TestRunExecCounts.test_exec_counts   s   !1KKK,tXv..4DFF333%&677 +/2A +/2A +/2A +/2A	
  	K 	KAT[00229!<hqkJJJJ	K 	Kr   N)rk   rl   rm   r   r   r$   r   r   r   r      s:        B6 6 6K K K K Kr   r   c                       e Zd Z	 d Zd Zd Zd Zd Z ej	         e
ed          o ej                    d          d             Zd	 Zd
S )	TestFuncsc                     |                      t          j        t          j                               t	          ddd          | _        t                      | _        t          j                    | _        d S )Nr   r3   )rt   ru   rv   )	rx   ry   rz   r{   r   r|   r   filemod_saved_tracefuncr~   s    r   r   zTestFuncs.setUp  sU    clnn555!1;;;*,, #r   c                 J    | j         t          j        | j                    d S d S r   )r   ry   rz   r~   s    r   tearDownzTestFuncs.tearDown  s,     ,L.///// -,r   c                     | j                             t          d           | j        dz   d| j        dz   di}|                     | j                                         j        |           d S )Nr3   r7   r6   )r|   r   r7   r   r   r   calledfuncsr_   r   s     r   test_simple_callerzTestFuncs.test_simple_caller  sm    5q999 L991L22A
 	,,..:HEEEEEr   c                    | j                             t          dddd          }|                     |ddddf           |                     t
                    5  | j                             t          d           d d d            n# 1 swxY w Y   |                     t
                    5  | j                                          d d d            d S # 1 swxY w Y   d S )Nr3   rC   r   r   )r_   r!   )r3   rC   )r!   arg)r|   r   rH   r   assertRaises	TypeError)r_   ress     r   test_arg_errorszTestFuncs.test_arg_errors  sU   k!!/1aaa!HHv1'='=>???y)) 	= 	=K_!<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=y)) 	" 	"K!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s$   "BBB-CCCc                 6   | j                             t          d           | j        dz   d| j        dz   d| j        dz   d| j        dz   dt	          t
          j                  ddfdi}|                     | j                                         j	        |           d S )Nr3   r   r6   r:   r4   r   r!   )
r|   r   r:   r   r   r   r   r   r   r   r   s     r   test_loop_caller_importingz$TestFuncs.test_loop_caller_importing#  s    8!<<< L991L22AL<<aL55q())9f=q
 	,,..:HEEEEEr   r{   3pre-existing trace function throws off measurementsc                    t          d          }| j                            |j        d           | j        dz   d| j        dz   d| j        dz   di}|                     | j                                        j        |           d S )Nr   r3   )zTracedClass.inst_method_calling)zTracedClass.inst_method_linearr6   )r\   r|   r   rd   r   r   r   r   )r_   objr   s      r   test_inst_method_callingz"TestFuncs.test_inst_method_calling/  s     "ooC3Q777 L??L>>L22A

 	,,..:HEEEEEr   c           
         | j                             t                     | j        dz   d| j        dz   d| j        dz   d| j        dz   d| j        dz   di}|                     | j                                         j        |           d S )N)rZ   r3   )rX   rW   )rS   r    )r|   r   rZ   r   r   r   r   r   s     r   r   z(TestFuncs.test_traced_decorated_function<  s    5666 L991L00!L?*AL?*AL9$a
 	,,..:HEEEEEr   N)rk   rl   rm   r   r   r   r   r   unittestskipIfhasattrry   r{   r   r   r$   r   r   r   r     s        ,/ / /0 0 0F F F" " "
F 
F 
F X_WWS*--@,#,..JL L	F 	FL L	F
F 
F 
F 
F 
Fr   r   c                   |    e Zd Z	 d Z ej         eed          o ej                    d          d             Z	dS )TestCallersc                     |                      t          j        t          j                               t	          ddd          | _        t                      | _        d S )Nr   r3   )rt   ru   rw   )rx   ry   rz   r{   r   r|   r   r   r~   s    r   r   zTestCallers.setUpK  sE    clnn555!11===*,,r   r{   r   c                    | j                             t          d           t          j                            t          j                  d         dz   ddf| j        dz   fd| j        dz   | j        dz   fd| j        dz   | j        dz   fd| j        dz   | j        d	z   fd| j        d	z   t          t          j                  d
dffdi}|                     | j                                         j        |           d S )Nr3   r   .pyru   zTrace.runfuncr   r   r6   r   r   r!   )r|   r   r:   r   r   r   ru   r   r   r   r   r   r   callersr   s     r   r   z&TestCallers.test_loop_caller_importingP  s    	8!<<< gu~..q1E97OT AADEFl;; 77:;<l>> >>ABCl>> ::=>?l77G,--y&ACDE
 	,,..6AAAAAr   N)
rk   rl   rm   r   r   r   r   ry   r{   r   r$   r   r   r   r   I  sy        .- - -
 X_WWS*--@,#,..JL LB BL LB B Br   r   c                   <    e Zd Zd Zd Z	 d
dZd Zd Zd Zd Z	d	S )TestCoveragec                 h    |                      t          j        t          j                               d S r   )rx   ry   rz   r{   r~   s    r   r   zTestCoverage.setUpf  s$    clnn55555r   c                 V    t          t                     t          t                     d S r   )r   r   r   r~   s    r   r   zTestCoverage.tearDowni  s    vvr   _import test.support, test.test_pprint;test.support.run_unittest(test.test_pprint.QueryTestCase)c                     |                     |           |                                }|                    ddt                     d S )NT)show_missingsummarycoverdir)runr   write_resultsr   )r_   r|   cmdrs       r   	_coveragezTestCoverage._coveragem  s@     	

3NN	T4&IIIIIr   c                    t          j        dd          }t                      5 }|                     |           d d d            n# 1 swxY w Y   |                                }|                     d|           |                     d|           t          j        t                    }|                     d|           |                     d|           d S )Nr   r3   ru   rt   z	pprint.pyzcase.pyzpprint.coverzunittest.case.cover)	ru   r   r   r   getvalueassertInr   listdirr   )r_   r|   stdoutfiless       r   test_coveragezTestCoverage.test_coveraget  s    1A... 	#&NN6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#""k6***i(((
6""ne,,,+U33333s   AAAc                 @   t           j                            t           j                            t           j                            t                                        }t          j        t          j        t          j	        |gdd          }t                      5 }|                     |           d d d            n# 1 swxY w Y   t           j                            t                    r2t          j        t                    }|                     |dg           d S d S )Nr   r3   )
ignoredirsru   rt   z_importlib.cover)r   r   normpathdirnamer   ru   r   ry   base_prefixbase_exec_prefixr   r   existsr   r   r   )r_   libpathr|   r   r   s        r   test_coverage_ignorez!TestCoverage.test_coverage_ignore  s   '""27??27??83L3L#M#MNN#:N$)&-.a9 9 9 	#&NN6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#7>>&!! 	:Jv&&EU%7$899999	: 	:s   B==CCc                    t          j        dd          }d}|t          j        v rt          j        |= d}t	                      5 }|                     ||           d d d            n# 1 swxY w Y   |                    d           |                                 i }|D ]K}|                                d d         \  }}}	t          |          t          |d d                   f||	<   Lt          j
        t          j        |         j                  }|                     ||           |                     ||         d           d S )	Nr   r3   r   ztest.tracedmodules.testmodz<import test.tracedmodules.testmod as t;t.func(0); t.func2();r   r   )r-   d   )ru   r   ry   modulesr   r   seekreadlinesplitint_fullmodnamer   r   r   )
r_   r|   r   r   r   coveragelinelinescovmodules
             r   test_issue9936zTestCoverage.test_issue9936  sp   1A....ck!!G$' 	(&NN63'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(A 	; 	;D!%bqb!1E3 #E

CCRCMM:HV$S[%9%BCCgx((('*H55555s   A''A+.A+c                 6   t           dz   }t          |d          5 }t          i i ddif|d           d d d            n# 1 swxY w Y   |                     t          |           t          j        i i |i           }|                     |j        ddi           d S )Nz-infilewbcallerr3   )protocol)	r   openr   rx   r   ru   CoverageResultsr   r   )r_   infilerR   r   s       r   test_coverageresults_updatez(TestCoverage.test_coverageresults_update  s    )#&$ 	91"b8Q-(!a8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9''''B;;8Q-88888s   ?AAN)r   )
rk   rl   rm   r   r   r   r   r   r  r  r$   r   r   r   r   e  s        6 6 6  
RJ J J J	4 	4 	4
: 
: 
:6 6 6*9 9 9 9 9r   r   c                       e Zd Zd ZdS )Test_Ignorec           	         t           j        j        }t          j        ddg |dd          g          }|                     |                    dd                     |                     |                    dd                     |                     |                    dd	                     |                     |                     |ddd
          d                     |                     |                     |dd          d                     |                     |                     |dd
          d                     d S )Nr%   zy.zfoobarzx.pyzxy.pyxyzy.pyr&   zbaz.pybazzz.pyz)r   r   joinru   _Ignore
assertTruenamesassertFalse)r_   jnignores      r   test_ignoredzTest_Ignore.test_ignored  s!   W\U|bb.>.>-?@@VS11222gt44555fc22333RRuh%?%?GGHHHbb&7&7==>>>RRx%8%8%@@AAAAAr   N)rk   rl   rm   r  r$   r   r   r  r    s(        	B 	B 	B 	B 	Br   r  c                   .    e Zd ZdZdZd Zd Zd Zd ZdS )TestCoverageCommandLineOutputztmp.pyz	tmp.coverc                     t          | j        dd          5 }|                    t          j        d                     d d d            d S # 1 swxY w Y   d S )Nwiso-8859-15encodingu                   # coding: iso-8859-15
                x = 'spœm'
                if []:
                    print('unreachable')
            )r  codefilewritetextwrapdedent)r_   rR   s     r   r   z#TestCoverageCommandLineOutput.setUp  s    $-}=== 	GGHO %     	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   (AAAc                 V    t          | j                   t          | j                   d S r   )r   r#  	coverfiler~   s    r   r   z&TestCoverageCommandLineOutput.tearDown  s(    t}t~r   c                    t           j                            t           j                            t          j                            }t           j                            |d          }t          |           d                                | j	        gz   }t          | \  }}}|                     |d           |                     t           j                            |                     |                     t           j                            | j                             t!          | j        d          5 }|                     |                                d           d d d            d S # 1 swxY w Y   d S )Nztrace.coverz-m trace --countr   r   r!  u^          # coding: iso-8859-15
    1: x = 'spœm'
    1: if []:
           print('unreachable')
)r   r   r   abspathru   r   r  r   r   r#  r	   r   r  r   r  r(  r  read)r_   tracedirtracecoverpathargvstatusr   stderrrR   s           r   %test_cover_files_written_no_highlightzCTestCoverageCommandLineOutput.test_cover_files_written_no_highlight  sl    7??27??5>#B#BCCh>>~!''))T]O;!14!8%%%77888t~66777$.=999 	QQVVXX4  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   5)E++E/2E/c                    d                                 | j        gz   }t          | \  }}}|                     t          j                            | j                             t          | j        d          5 }| 	                    |
                                t          j        d                     d d d            d S # 1 swxY w Y   d S )Nz-m trace --count --missingr   r!  u                          # coding: iso-8859-15
                    1: x = 'spœm'
                    1: if []:
                >>>>>>     print('unreachable')
            )r   r#  r	   r  r   r   r   r(  r  r   r+  r%  r&  )r_   r.  r/  r   r0  rR   s         r   'test_cover_files_written_with_highlightzETestCoverageCommandLineOutput.test_cover_files_written_with_highlight  s    +1133t}oE!14!8t~66777$.=999 	QQVVXXx 8 ( (   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   8;C  CCN)	rk   rl   rm   r#  r(  r   r   r1  r3  r$   r   r   r  r    sZ        HI      (
 
 
 
 
r   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestCommandLinec                 f    d}|D ]+^}}t          ddg|R  ^ }}|                     ||           ,d S )N))s3   progname is missing: required with the main options-lz-T)s8   cannot specify both --listfuncs and (--trace or --count)z-lc)s>   argument -R/--no-report: not allowed with argument -r/--reportz-rR)sL   must specify one of --trace, --count, --report, --listfuncs, or --trackcallsz-g)s   -r/--report requires -f/--filez-r)s3   --summary can only be used with --count or --reportz-sT)s   unrecognized arguments: -yz-y-mru   )r
   r   )r_   _errorsmessagerF   _r0  s         r   test_failureszTestCommandLine.test_failures  sZ    3 & 	+ 	+NGd.tWDtDDDJQMM'6****	+ 	+r   c                    t           dz   }t          j                            t                     }t	          |dd          5 }|                     t          |           |                    d           t          ddd|d	          \  }}}| 	                    d
|           d| d| d}| 	                    |
                                |           d d d            d S # 1 swxY w Y   d S )Nr   r  utf-8r!  za = 1
r8  ru   r7  PYTHONIOENCODINGs   functions called:z
filename: z, modulename: z, funcname: <module>)r   r   r   r   r  rx   r   r$  r	   r   encode)r_   r   
modulenamefdr/  r   r0  r   s           r   test_listfuncs_flag_successz+TestCommandLine.test_listfuncs_flag_success  s0   E>W%%f--
(C'222 	5bOOFH---HHY%5dGT8GN&P &P &P"FFFMM.777\H\\J\\\HMM(//++V444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   BCC"%C"c                    t          t          dd          5 }|                     t          t                     |                    d           |                    d           d d d            n# 1 swxY w Y   t          t                    \  }}}t          dddt          d	          \  }}}|                     |                                |           d S )
Nr  r>  r!  zimport sys
zprint(type(sys.argv))
r8  ru   r7  r?  )r  r   rx   r   r$  r	   r   strip)r_   rC  r/  direct_stdoutr0  trace_stdouts         r   test_sys_argv_listz"TestCommandLine.test_sys_argv_list  s   &#000 	0BOOFF+++HH^$$$HH.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0
 )9(@(@%v'7gtVIP(R (R (R$fm))++\:::::s   AA//A36A3c                 n   t            d}t            d}t          j                            t                     }t	          |dd          5 }|                     t          |           |                     t          |           |                    t          j	        d                     d d d            n# 1 swxY w Y   t          ddd	|d
          \  }}}|                                }|                     |d           |                     d|           |                     d| d| d|           d S )Nr   z.coverr  r>  r!  z                x = 1
                y = 2

                def f():
                    return x + y

                for i in range(10):
                    f()
            r8  ru   z-csr?  r   zlines   cov%   module   (path)z6   100%   z   ())r   r   r   r   r  rx   r   r$  r%  r&  r	   decoder   r   )r_   r   coverfilenamerB  rC  r/  r   r;  s           r   test_count_and_summaryz&TestCommandLine.test_count_and_summary  sy   >>>!)))W%%f--
(C'222 	bOOFH---OOFM222HHX_ 	& 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 -T7E8>EG G G###6????J??H???HHHHHs   AB55B9<B9c           	      V    t          ddddddd           t          ddddd           d S )	Nr8  ru   r7  z--moduletimeitz-n1not_a_module_zzzr   r~   s    r   test_run_as_modulez"TestCommandLine.test_run_as_module)  s9    wj(D#NNNdGT:?QRRRRRr   N)rk   rl   rm   r<  rD  rI  rN  rS  r$   r   r   r5  r5    sg        + + +
5 
5 
5	; 	; 	;I I I0S S S S Sr   r5  __main__).r   pickler   ry   test.supportr   test.support.os_helperr   r   r   test.support.script_helperr	   r
   r%  r   ru   r   test.tracedmodulesr   r   r   r"   r*   r1   r4   r7   r:   r=   r@   rD   rH   rN   rZ   objectr\   TestCaserq   r   r   r   r   r  r  r5  rk   mainr$   r   r   <module>r]     s   				       



 ( ( ( ( ( ( ; ; ; ; ; ; ; ; ; ; N N N N N N N N          & & & & & &  ) ) )
( ( (    # # #    
  
  
      
      &   .j@ j@ j@ j@ j@X& j@ j@ j@ZK K K K K) K K K8@F @F @F @F @F! @F @F @FFB B B B B(# B B B8B9 B9 B9 B9 B98$ B9 B9 B9N
B 
B 
B 
B 
B(# 
B 
B 
B0 0 0 0 0H$5 0 0 0d@S @S @S @S @Sh' @S @S @SF zHMOOOOO r   