Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_regrtest.cpython-311.pyc

�

SԚgh��t�dZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZddlmZddlmZddlmZddlmZddlmZdd	lmZmZmZdd
l m!Z!ddl"m#Z#ej$sej%d���ej&�'ej&�(e)��d
d
��Z*ej&�+ej&�,e*����Z*dZ-dZ.dZ/dZ0dZ1dZ2ej3d��Z4Gd�dej5��Z6ej7d���Gd�d����Z8Gd�dej5��Z9Gd�de9��Z:Gd�d e9��Z;Gd!�d"e9��Z<Gd#�d$ej5��Z=e>d%krej��dSdS)&zM
Tests of regrtest.py.

Note: test_regrtest cannot be run twice in parallel.
�N)�support)�	os_helper)�cmdline)�main)�setup)�utils)�get_match_tests�set_match_tests�
match_test)�	TestStats)�normalize_test_nameztest module requires subprocessz..z5[0-9]+:[0-9]+:[0-9]+ (?:load avg: [0-9]+\.[0-9]{2} )?�����z�
    from signal import SIGINT, raise_signal
    try:
        raise_signal(SIGINT)
    except ImportError:
        import os
        os.kill(os.getpid(), SIGINT)
    c�J�eZdZdZed���Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,d5d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4S)6�ParseArgsTestCasezC
    Test regrtest's argument parsing, function _parse_args().
    c�*�tj|��S�N)r�_parse_args)�argss �//usr/local/lib/python3.11/test/test_regrtest.py�
parse_argszParseArgsTestCase.parse_args>s���"�4�(�(�(�c�:�tj��5}|�t��5|�|��ddd��n#1swxYwYddd��n#1swxYwY|�||�����dSr)r�captured_stderr�assertRaises�
SystemExitr�assertIn�getvalue)�selfr�msg�errs    r�
checkErrorzParseArgsTestCase.checkErrorBs���
�
$�
&�
&�	"�#�t�/@�/@��/L�/L�	"�	"��O�O�D�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��
�
�c�3�<�<�>�>�*�*�*�*�*s4�A(�A�A(�A	�A(�A	�A(�(A,�/A,c	��dD]�}|�|���5tj��5}|�t��5|�|g��ddd��n#1swxYwYddd��n#1swxYwY|�d|�����ddd��n#1swxYwY��dS)N)z-hz--help��optzRun Python regression tests.)�subTestr�captured_stdoutrrrr r!)r"r(�outs   r�	test_helpzParseArgsTestCase.test_helpGs���!�	N�	N�C����#��&�&�
N�
N��,�.�.�+�#��&�&�z�2�2�+�+��O�O�S�E�*�*�*�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+��
�
�<�c�l�l�n�n�M�M�M�	
N�
N�
N�
N�
N�
N�
N�
N�
N�
N�
N����
N�
N�
N�
N��	N�	NsX�C�B�
A-	�!B�-A1
�1B�4A1
�5B�8C�B�C�B�+C�C	�
C	c��|�ddg��}|�|jd��dD]d}|�|���5|�d|��g��}|�|jd��ddd��n#1swxYwY�e|�dgd��|�ddgd	��dS)
N�	--timeoutz4.2g������@)z-1�0�)�valuez
--timeout=�expected one argument�foozinvalid timeout value:)r�assertEqual�timeoutr)r%)r"�nsr1s   r�test_timeoutzParseArgsTestCase.test_timeoutOs��
�_�_�k�5�1�
2�
2�������S�)�)�)�%�	3�	3�E����E��*�*�
3�
3��_�_�&:�5�&:�&:�%;�<�<��� � ���T�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��	
����
�'>�?�?�?�����e�,�.F�G�G�G�G�Gs�
5B�B	�B	c�f�|�dg��}|�|j��dS)N�--wait)r�
assertTrue�wait�r"r6s  r�	test_waitzParseArgsTestCase.test_wait\s/��
�_�_�h�Z�
(�
(������� � � � � rc��dD]y}|�|���5|�|dg��}|�|jd��|�|gd��ddd��n#1swxYwY�zdS)N)z-S�--startr'r3r2)r)rr4�startr%�r"r(r6s   r�
test_startzParseArgsTestCase.test_start`s���"�	@�	@�C����#��&�&�
@�
@��_�_�c�5�\�2�2��� � ���5�1�1�1������'>�?�?�?�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��	@�	@��A
A1�1A5	�8A5	c���|�dg��}|�|jd��|�dg��}|�|jd��|�dg��}|�|jd��|�dgdz��}|�|jd��|�g��}|�|jd��dS)N�-v�z-vvvr�	--verboser)rr4�verboser<s  r�test_verbosezParseArgsTestCase.test_verbosegs���
�_�_�d�V�
$�
$�������Q�'�'�'�
�_�_�f�X�
&�
&�������Q�'�'�'�
�_�_�k�]�
+�
+�������Q�'�'�'�
�_�_�k�]�Q�.�
/�
/�������Q�'�'�'�
�_�_�R�
 �
 �������Q�'�'�'�'�'rc���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)z-w�--rerunz
--verbose2r')r)rr:�rerunrAs   r�
test_rerunzParseArgsTestCase.test_rerunss���0�	*�	*�C����#��&�&�
*�
*��_�_�c�U�+�+�������)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��	*�	*��1A�A	�A	c���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)�-W�
--verbose3r')r)rr:�verbose3rAs   r�
test_verbose3zParseArgsTestCase.test_verbose3y���%�	-�	-�C����#��&�&�
-�
-��_�_�c�U�+�+�������,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��	-�	-rNc��dD]{}|�|���5|�|g��}|�|j��|�|jd��ddd��n#1swxYwY�|dS)N)�-q�--quietr'r)r)rr:�quietr4rHrAs   r�
test_quietzParseArgsTestCase.test_quiets���"�	0�	0�C����#��&�&�
0�
0��_�_�c�U�+�+�������)�)�)�� � ���Q�/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0s�AA3�3A7	�:A7	c���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)z-o�	--slowestr')r)rr:�
print_slowrAs   r�test_slowestzParseArgsTestCase.test_slowest�s���$�	/�	/�C����#��&�&�
/�
/��_�_�c�U�+�+������
�.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/��	/�	/rNc���|�dg��}|�|j��|�dg��}|�|j��dS)Nz--headerrG)rr:�headerr<s  r�test_headerzParseArgsTestCase.test_header�sV��
�_�_�j�\�
*�
*������	�"�"�"�
�_�_�k�]�
+�
+������	�"�"�"�"�"rc��dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�at	j��5}d|d<|�dg��}t
j|��}|�|j��|�	|j
t��|�|j
d��|d=|�dg��}t
j|��}|�|j��|�	|j
t��ddd��dS#1swxYwYdS)N)�-r�--randomizer'�
1697839080�SOURCE_DATE_EPOCHrc)r)rr:�	randomizer�EnvironmentVarGuardr�Regrtest�assertFalse�assertIsInstance�random_seed�strr4�int)r"r(r6�env�regrtests     r�test_randomizez ParseArgsTestCase.test_randomize�s���(�	.�	.�C����#��&�&�
.�
.��_�_�c�U�+�+�������-�-�-�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.���
*�
,�
,�	=��'3�C�#�$����-��1�1�B��}�R�(�(�H����X�/�0�0�0��!�!�(�"6��<�<�<����X�1�<�@�@�@��'�(����-��1�1�B��}�R�(�(�H��O�O�H�.�/�/�/��!�!�(�"6��<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=s$�1A�A	�A	�7C,E0�0E4�7E4c��|�ddg��}|�|jd��|�|j��|�dgd��|�ddgd��dS)Nz
--randseed�12345i90r2r3�invalid int value)rr4rkr:rfr%r<s  r�
test_randseedzParseArgsTestCase.test_randseed�s{��
�_�_�l�G�4�
5�
5��������/�/�/������%�%�%������(?�@�@�@�����u�-�/B�C�C�C�C�Crc�0�dD]�}|�|���5|�|dg��}|�|jd��|�|gd��|�|ddgd��ddd��n#1swxYwY��dS)N)�-f�
--fromfiler'r3r2�-s�don't go together)r)rr4�fromfiler%rAs   r�
test_fromfilezParseArgsTestCase.test_fromfile�s���%�	I�	I�C����#��&�&�
I�
I��_�_�c�5�\�2�2��� � ���e�4�4�4������'>�?�?�?�����e�T� 2�4G�H�H�H�	
I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I����
I�
I�
I�
I��	I�	Is�A#B
�
B	�B	c���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)z-x�	--excluder')r)rr:�excluderAs   r�test_excludezParseArgsTestCase.test_exclude����$�	,�	,�C����#��&�&�
,�
,��_�_�c�U�+�+������
�+�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��	,�	,rNc��dD]y}|�|���5|�|g��}|�|j��|�|ddgd��ddd��n#1swxYwY�zdS)N)rxz--singler'rvr3ry)r)rr:�singler%rAs   r�test_singlezParseArgsTestCase.test_single�s���#�	I�	I�C����#��&�&�
I�
I��_�_�c�U�+�+������	�*�*�*�����d�E� 2�4G�H�H�H�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I����
I�
I�
I�
I��	I�	IrCc�X�dD]z}|�|���5|�|dg��}|�|jdg��|�|gd��ddd��n#1swxYwY�{dD]z}|�|���5|�|dg��}|�|jdg��|�|gd��ddd��n#1swxYwY�{|�gd���}|�|jd	d
g��|�gd���}|�|jd	dg��|�gd
���}|�|jdd
g��|�tjtj��ttjd��5}td|���td|���ddd��n#1swxYwYtj�
tj��}|�ddd|g��}|�|jgd���|�ddd|g��}|�|jgd���dS)N)�-mz--matchr'�pattern)r�Tr2)�-iz--ignore)r�F)r��pattern1r��pattern2)r�T)r�T)r�r�r�r�)r�F)r�r�r�r�)r�F�w�
matchfile1��file�
matchfile2r��match�--matchfile))r�T)r�T)r�Tr��--ignorefile))r�F)r�F)r�F)r)rr4�match_testsr%�
addCleanupr�unlink�TESTFN�open�print�os�path�abspath)r"r(r6�fp�filenames     r�
test_matchzParseArgsTestCase.test_match�s���"�	@�	@�C����#��&�&�
@�
@��_�_�c�9�%5�6�6��� � ���2C�1D�E�E�E������'>�?�?�?�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��
$�	@�	@�C����#��&�&�
@�
@��_�_�c�9�%5�6�6��� � ���2D�1E�F�F�F������'>�?�?�?�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��
�_�_�A�A�A�
B�
B�������*<�>P�)Q�R�R�R�
�_�_�A�A�A�
B�
B�������*<�>Q�)R�S�S�S�
�_�_�A�A�A�
B�
B�������*=�?Q�)R�S�S�S����	�(�)�*:�;�;�;�
�)�"�C�
(�
(�	)�B��,�R�(�(�(�(��,�R�(�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��7�?�?�9�#3�4�4��
�_�_�d�G�]�H�E�
F�
F�������V�V�V�	X�	X�	X��_�_�d�G�^�X�F�
G�
G�������Y�Y�Y�	[�	[�	[�	[�	[s7�AA2�2A6	�9A6	�AC/�/C3	�6C3	�#H
�
H�Hc�^�dD]�}|�|���5|�|dg��}|�|j��|�|dg��}|�|j��|�|gd��ddd��n#1swxYwY��dS)N)z-Gz
--failfastr'rErPz#-G/--failfast needs either -v or -W)r)rr:�failfastr%rAs   r�
test_failfastzParseArgsTestCase.test_failfast�s��%�	N�	N�C����#��&�&�
N�
N��_�_�c�4�[�1�1�������,�,�,��_�_�c�4�[�1�1�������,�,�,������'L�M�M�M�
N�
N�
N�
N�
N�
N�
N�
N�
N�
N�
N����
N�
N�
N�
N��	N�	Ns�A:B!�!B%	�(B%	c�\�dD�]�}|�|���5|�|dg��}|�|jddg��|�|dg��}|�|jdg��t	t
j��}|�d��|�|dg��}|�|j|��|�|gd��|�|d	gd
��|�|dg��}|�|jt	t
j��dgz��|�|d
g��}|�|jd
g��ddd��n#1swxYwY���dS)N)�-uz--user'zgui,network�gui�networkzgui,none,networkzall,-guir2r3zinvalid resourcez
all,tzdata�tzdata�extralargefile)	r)rr4�
use_resources�listr�
ALL_RESOURCES�remover%)r"r(r6�expecteds    r�test_usezParseArgsTestCase.test_use�s�� �	G�	G�C����#��&�&�
G�
G��_�_�c�=�%9�:�:��� � ��!1�E�9�3E�F�F�F��_�_�c�+=�%>�?�?��� � ��!1�I�;�?�?�?��� 5�6�6������&�&�&��_�_�c�:�%6�7�7��� � ��!1�8�<�<�<������'>�?�?�?�����e��.@�A�A�A��_�_�c�<�%8�9�9��� � ��!1�!%�g�&;�!<�!<��z�!I�K�K�K��_�_�c�+;�%<�=�=��� � ��!1�4D�3E�F�F�F�+
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G��	G�	Gs�E7F�F#	�&F#	c��dD]y}|�|���5|�|dg��}|�|jd��|�|gd��ddd��n#1swxYwY�zdS)N)z-Mz
--memlimitr'�4Gr2)r)rr4�memlimitr%rAs   r�
test_memlimitzParseArgsTestCase.test_memlimits���%�	@�	@�C����#��&�&�
@�
@��_�_�c�4�[�1�1��� � ���d�3�3�3������'>�?�?�?�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��	@�	@rCc���|�ddg��}|�|jtj�tjd����|�dgd��dS)Nz	--testdirr3r2)	rr4�testdirr�r��joinr�SAVEDCWDr%r<s  r�test_testdirzParseArgsTestCase.test_testdirs`��
�_�_�k�5�1�
2�
2�������R�W�\�\�)�2D�e�%L�%L�M�M�M�����
�'>�?�?�?�?�?rc���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)z-Lz
--runleaksr')r)rr:�runleaksrAs   r�
test_runleakszParseArgsTestCase.test_runleaksrTrNc��dD�]X}|�|���5|�|dg��}|�|jd��|�|dg��}|�|jd��|�|dg��}|�|jd��|�|d	g��}|�|jd
��|�|gd��|�|dgd
��|�|dgd��|�|dgd��ddd��n#1swxYwY��ZdS)N)�-R�--huntrleaksr'�:)rr�
reflog.txtz6:)�rr�z:3)rrr�z
6:3:leaks.log)r�rz	leaks.logr2�6z&needs 2 or 3 colon-separated argumentszfoo:zinvalid huntrleaks valuez6:foo)r)rr4�
huntrleaksr%rAs   r�test_huntrleaksz!ParseArgsTestCase.test_huntrleakss���'�	L�	L�C����#��&�&�

L�

L��_�_�c�3�Z�0�0��� � ���0D�E�E�E��_�_�c�4�[�1�1��� � ���0D�E�E�E��_�_�c�4�[�1�1��� � ���0D�E�E�E��_�_�c�?�%;�<�<��� � ���0C�D�D�D������'>�?�?�?�����c�
� H�J�J�J�����f�
�/I�J�J�J�����g��0J�K�K�K�

L�

L�

L�

L�

L�

L�

L�

L�

L�

L�

L����

L�

L�

L�

L��	L�	Ls�D(E�E	�E	c��dD]�}|�|���5|�|dg��}|�|jd��|�|gd��|�|dgd��|�|ddgd	��|�|d
dgd	��ddd��n#1swxYwY��dS)N)�-jz--multiprocessr'�2rr2r3rs�-Tryr/)r)rr4�use_mpr%rAs   r�test_multiprocessz#ParseArgsTestCase.test_multiprocess.s/��)�	G�	G�C����#��&�&�
G�
G��_�_�c�3�Z�0�0��� � ���A�.�.�.������'>�?�?�?�����e��.A�B�B�B�����c�4� 0�2E�F�F�F�����c�4� 0�2E�F�F�F�

G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G��	G�	Gs�BB;�;B?	�B?	c���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)r��
--coverager')r)rr:�tracerAs   r�
test_coveragezParseArgsTestCase.test_coverage8s���%�	*�	*�C����#��&�&�
*�
*��_�_�c�U�+�+�������)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��	*�	*rNc	�N�dD]�}|�|���5|�|dg��}|�|jtj�tjd����|�	|gd��ddd��n#1swxYwY��dS)N)z-Dz
--coverdirr'r3r2)
r)rr4�coverdirr�r�r�rr�r%rAs   r�
test_coverdirzParseArgsTestCase.test_coverdir>s���%�	@�	@�C����#��&�&�
@�
@��_�_�c�5�\�2�2��� � ���!#����i�.@�%�!H�!H�J�J�J������'>�?�?�?�	
@�
@�
@�
@�
@�
@�
@�
@�
@�
@�
@����
@�
@�
@�
@��	@�	@s�A2B�B	� B	c���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)z-Nz--nocoverdirr')r)r�assertIsNoner�rAs   r�test_nocoverdirz!ParseArgsTestCase.test_nocoverdirFs���'�	/�	/�C����#��&�&�
/�
/��_�_�c�U�+�+���!�!�"�+�.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/��	/�	/rNc�.�dD]�}|�|���5|�|dg��}|�|jd��|�|gd��|�|dgd��ddd��n#1swxYwY��dS)N)z-tz--thresholdr'�1000��r2r3rs)r)rr4�	thresholdr%rAs   r�test_thresholdz ParseArgsTestCase.test_thresholdLs���&�	C�	C�C����#��&�&�
C�
C��_�_�c�6�]�3�3��� � ���t�4�4�4������'>�?�?�?�����e��.A�B�B�B�	
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C����
C�
C�
C�
C��	C�	Cs�A"B	�	B
	�B
	c��dD]�}|�|���5tjtj����5}|�|g��}ddd��n#1swxYwY|�|j��|���}|�	d|��ddd��n#1swxYwY��dS)N)�-nz--nowindowsr'z)the --nowindows (-n) option is deprecated)
r)�
contextlib�redirect_stderr�io�StringIOrr:�	nowindowsr!r )r"r(�stderrr6r$s     r�test_nowindowsz ParseArgsTestCase.test_nowindowsTsN��&�	P�	P�C����#��&�&�
P�
P��/���
�
�>�>�0�&����#��/�/�B�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0������-�-�-��o�o�'�'���
�
�I�3�O�O�O�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P����
P�
P�
P�
P��	P�	Ps6�&B?�A$�B?�$A(�(B?�+A(�,AB?�?C	�C	c���dD]`}|�|���5|�|g��}|�|j��ddd��n#1swxYwY�adS)N)z-F�	--foreverr')r)rr:�foreverrAs   r�test_foreverzParseArgsTestCase.test_forever]r�rNc�4�|�dgd��dS)Nz--xxxzusage:�r%�r"s r�test_unrecognized_argumentz,ParseArgsTestCase.test_unrecognized_argumentcs������	�8�,�,�,�,�,rc��|�dg��}|�|j��|�|jd��dS)Nz--quir)rr:rXr4rHr<s  r�test_long_option__partialz+ParseArgsTestCase.test_long_option__partialfsG��
�_�_�g�Y�
'�
'�������!�!�!������Q�'�'�'�'�'rc���|�ddg��}|�|j��|�|jd��|�|j��dS)NrWr}r)rr:rXr4rHr~r<s  r�test_two_optionsz"ParseArgsTestCase.test_two_optionsks^��
�_�_�i��5�
6�
6�������!�!�!������Q�'�'�'�����
�#�#�#�#�#rc�j�|�ddg��}|�|jd��dS)Nr?r0)rr4r@r<s  r�#test_option_with_empty_string_valuez5ParseArgsTestCase.test_option_with_empty_string_valueqs5��
�_�_�i��_�
-�
-�������2�&�&�&�&�&rc�j�|�dg��}|�|jdg��dS)Nr3)rr4rr<s  r�test_argzParseArgsTestCase.test_argus5��
�_�_�e�W�
%�
%�������5�'�*�*�*�*�*rc���|�ddg��}|�|j��|�|jd��|�|jdg��dS)NrWr3r)rr:rXr4rHrr<s  r�test_option_and_argz%ParseArgsTestCase.test_option_and_argysd��
�_�_�i��/�
0�
0�������!�!�!������Q�'�'�'������5�'�*�*�*�*�*rc��|�gd���}|�|jd��|�|jddg��dS)N)�test_unaryoprE�
test_binoprFr�r�)rr4rHrr<s  r�test_arg_option_argz%ParseArgsTestCase.test_arg_option_argsU��
�_�_�A�A�A�
B�
B�������Q�'�'�'������>�<�"@�A�A�A�A�Arc�4�|�dgd��dS)Nz--unknown-optionz(unrecognized arguments: --unknown-optionr�r�s r�test_unknown_optionz%ParseArgsTestCase.test_unknown_option�s0�����+�,�B�	D�	D�	D�	D�	Drc��tj|��}tj��5}d|vr|d=t	j|��}ddd��n#1swxYwY|S)Nre)rrrrgrrh)r"rr6rnros     r�create_regrtestz!ParseArgsTestCase.create_regrtest�s���
�
 ��
&�
&���
*�
,�
,�	)��"�c�)�)��+�,��}�R�(�(�H�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)��s�A�A�ATc�J�|�|��}|�|jd��|�|j|��|�|j��|�|jt��|�|j	��|�|j
��|�|j��|�|j��|�t|j��t|����|S)N���)r�r4�num_workers�
want_rerunr:rfrjrkrm�fail_env_changed�
fail_rerun�
print_slowest�output_on_failure�sortedr�)r"rr�rLros     r�
check_ci_modezParseArgsTestCase.check_ci_mode�s����'�'��-�-������-�r�2�2�2�����,�e�4�4�4�����*�+�+�+����h�2�C�8�8�8�����1�2�2�2�����+�,�,�,�����.�/�/�/�����2�3�3�3������ 6�7�7��
�9N�9N�O�O�O��rc���dg}ttj��}|�d��|�||��}|�|jd��dS)N�	--fast-ci�cpu�X)rrr�r�rr4r5�r"rr�ros    r�test_fast_cizParseArgsTestCase.test_fast_ci�sa���}���w�4�5�5�
����U�#�#�#��%�%�d�M�:�:������)�7�3�3�3�3�3rc��gd�}ttj��}|�d��|�||d���}|�|jd��|�|jd��dS)N)r�--pythonz
python -X devrF)rLr)�python�-X�dev)rrr�r�rr4r5�
python_cmdrs    r�test_fast_ci_python_cmdz)ParseArgsTestCase.test_fast_ci_python_cmd�s���9�9�9���w�4�5�5�
����U�#�#�#��%�%�d�M��%�G�G������)�7�3�3�3�����,�.E�F�F�F�F�Frc��ddg}ttj��}|�d��|�d��|�||��dS)Nrz
-u-networkrr�)rrr�r�r)r"rr�s   r�test_fast_ci_resourcez'ParseArgsTestCase.test_fast_ci_resource�s`���\�*���w�4�5�5�
����U�#�#�#����Y�'�'�'����4��/�/�/�/�/rc��dg}ttj��}|�||��}|�|jd��dS)N�	--slow-cii�)rrr�rr4r5rs    r�test_slow_cizParseArgsTestCase.test_slow_ci�sM���}���w�4�5�5�
��%�%�d�M�:�:������)�7�3�3�3�3�3rc�h�dg}tj|��}|�|j��dS)Nz--dont-add-python-opts)rrri�_add_python_opts)r"rr6s   r�test_dont_add_python_optsz+ParseArgsTestCase.test_dont_add_python_opts�s7��(�)��
�
 ��
&�
&������,�-�-�-�-�-rc�j�dg}|�|��}|�|j��dS)N�--bisect)r�r:�want_bisect�r"rros   r�test_bisectzParseArgsTestCase.test_bisect�s7���|���'�'��-�-������,�-�-�-�-�-rc�v�gd�}tj��5|�|��}ddd��n#1swxYwY|�|j��|�|jjd��|�|jjd��|�|j	��dS)N)r�z3:10rQr�
)
rrr��assertIsNotNone�hunt_refleakr4�warmups�runsrirrs   r�test_verbose3_huntrleaksz*ParseArgsTestCase.test_verbose3_huntrleaks�s���+�+�+��
�
$�
&�
&�	2�	2��+�+�D�1�1�H�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2����X�2�3�3�3�����.�6��:�:�:�����.�3�R�8�8�8�����3�4�4�4�4�4�
�:�>�>c�v�gd�}tj��5|�|��}ddd��n#1swxYwY|�|j��|�|jjd��|�|jjd��|�|j	��dS)N)r�z3:12z--junit-xmlz
output.xmlr�)
rrr�r r!r4r"r#r��junit_filenamers   r�test_xml_huntrleaksz%ParseArgsTestCase.test_xml_huntrleaks�s���:�:�:��
�
$�
&�
&�	2�	2��+�+�D�1�1�H�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2����X�2�3�3�3�����.�6��:�:�:�����.�3�R�8�8�8����(�1�2�2�2�2�2r%N)T)6�__name__�
__module__�__qualname__�__doc__�staticmethodrr%r,r7r=rBrIrMrSrYr]r`rprtr{rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrrrrr$r)�rrrr9sH���������)�)��\�)�+�+�+�
N�N�N�H�H�H�!�!�!�@�@�@�
(�
(�
(�*�*�*�-�-�-�0�0�0�/�/�/�#�#�#�=�=�=�,D�D�D�I�I�I�,�,�,�I�I�I�"[�"[�"[�HN�N�N�G�G�G�2@�@�@�@�@�@�
-�-�-�L�L�L�"G�G�G�*�*�*�@�@�@�/�/�/�C�C�C�P�P�P�,�,�,�-�-�-�(�(�(�
$�$�$�'�'�'�+�+�+�+�+�+�B�B�B�
D�D�D��������4�4�4�G�G�G�0�0�0�4�4�4�.�.�.�
.�.�.�
5�5�5�3�3�3�3�3rrT)�slotsc�4�eZdZUeed<edzed<eed<dS)�Rerun�nameNr��success)r*r+r,rl�__annotations__�boolr/rrr2r2�s2�������

�I�I�I���:����
�M�M�M�M�Mrr2c�~�eZdZdZdZdZd�Zdd�Zd�Zdd
�Z	d�Z
dddddddddddddd
�
d�Zdedefd�Z
dd�Zd�ZdS)�BaseTestCaserF�test_regrtest_ztest_[a-zA-Z0-9_]+c��tj�tj�t����|_t
j��|_|�	tj|j��dSr)r�r��realpath�dirname�__file__r��tempfile�mkdtemp�
tmptestdirr�r�rmtreer�s r�setUpzBaseTestCase.setUp�sV���w�'�'������(A�(A�B�B���"�*�,�,������	�(�$�/�:�:�:�:�:rNc�&�|s$dtjz}txjdz
c_|�tjd��}|j|z}t
j�|j|dz��}|�	tj|��	t|dd���5}|�
|��ddd��n#1swxYwYnA#t$r4}tj��s|�d|�d	|�����d}~wwxYw|S)
Nznoop%srFz�
                    import unittest

                    class Tests(unittest.TestCase):
                        def test_empty_test(self):
                            pass
                z.py�xzutf-8)�encodingz
cannot write z: )r8�TEST_UNIQUE_ID�textwrap�dedent�TESTNAME_PREFIXr�r�r�r@r�rr�r��write�PermissionError�	sysconfig�is_python_build�skipTest)r"r3�coder�r��excs      r�create_testzBaseTestCase.create_test�s]���	-��l�9�9�D��'�'�1�,�'�'��<��?�$���D��#�d�*���w�|�|�D�O�T�E�\�:�:�����	�(�$�/�/�/�	��d�C�'�2�2�2�
�b��������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
����	�	�	��,�.�.�
C��
�
�
�t�t�t�S�S�A�B�B�B������	�����s<�C�"C�8C�C�C�C�C�
D�/D	�	Dc�~�tj||tj��}|s|�|�d|����|S)Nz not found in )�re�search�	MULTILINE�fail)r"�regex�outputr�s    r�regex_searchzBaseTestCase.regex_search
sA���	�%����6�6���	>��I�I�e�e�e�V�V�<�=�=�=��rFTc��|stj|��}|r|dz
}tjd|ztj��}|�||��dS)N�
�^)rS�escape�compilerU�assertRegex)r"rXr��fullrWs     r�
check_linezBaseTestCase.check_lines]���	)��i��(�(�G��	��t�O�G��
�4�'�>�2�<�8�8�������'�'�'�'�'rc��dt�d|j�d�}tj||tj��}td�|D����S)Nr\z\[ *[0-9]+(?:/ *[0-9]+)*\] (�)c3�@K�|]}|�d��V��dS)rFN��group��.0r�s  r�	<genexpr>z4BaseTestCase.parse_executed_tests.<locals>.<genexpr>s,����7�7�u�E�K�K��N�N�7�7�7�7�7�7r)�
LOG_PREFIX�TESTNAME_REGEXrS�finditerrUr�)r"rXrW�parsers    r�parse_executed_testsz!BaseTestCase.parse_executed_testssO����J�J�� 3� 3� 3�5����U�F�B�L�9�9���7�7��7�7�7�7�7�7rr/)
�skipped�failed�env_changed�omittedrL�run_no_tests�resource_deniedrf�parallel�interruptedr�r��filteredc	�:�"�t|t��r|g}t|t��r|g}t|
t��r|
g}
t|t��r|g}t|t��r|g}t|t��r|g}t|	t��r|	g}	t|t��rt|��}|rd}g}|�+|s)|jg}|js|�|j��|�|��}t|��}|�|�|j��|r2|�	t|��t|��|��n|�	|||��d��"�"fd�}|r"|d|��}|�||��|
r"|d|
��}|�||��|r"|d|��}|�||��|r"|d|��}|�||��|r"|d|��}|�||��|�}|d	|jg��}|�||��td
z}|�||��d|j�d�}|j
r
|�d
|j
�d�}|�||��|	r"|d|	��}|�||��t|��t|��z
t|
��z
t|��z
t|��z
t|��z
t|	��z
}|rA|�d�"|���d�}|s|s|�|jr|dkrd|z}|�||d���|
r|�|d��d|jd��}|r|�d�}|g}|jr|�d|jd����|jr|�d|jd����dd�|����}|�||d���t|��t|
��z
}|�t|��}d}nt|��}d}|
rd}d|��}|s|�dt|����}|r|�d�}|g}d|fd t|��fd!t|��fd"t|
��fd#|fd$t|	��ffD]!\}}|r|�|�d%|�����"d&d�|����}|�||d���g} |r| �d'��n|r|r| �d(��|
r| �d)��t'|||
|||f��s| �d*��n| s| �d+��d,�| ��} |�|jrd+nd'}!| �d-|!��} |�|d.| ��d���dS)/NTc��|dkrdndS)NrF�sr0r/)�counts r�pluralz1BaseTestCase.check_executed_tests.<locals>.pluralKs���1�*�*�3�3�"�,rc���t|��}d�t|����}||�|��fz}|�d|�d�}|S)N� z:\n    �$)�lenr�r)�line_format�testsr{�namesrWr|s     �r�
list_regexz5BaseTestCase.check_executed_tests.<locals>.list_regexNsS�����J�J�E��H�H�V�E�]�]�+�+�E��5�&�&��-�-�"8�8�E�',�u�u�e�e�e�4�E��Lrz%s test%s skippedz%%s test%s skipped \(resource denied\)z%s test%s failedz;%s test%s altered the execution environment \(env changed\)z%s test%s omittedz%s re-run test%sz)Re-running 1 failed tests in verbose modezRe-running z in verbose modez
 \(matching: z\)z%s test%s run no testsz testz OK\.rFzAll %s)r`z(Test suite interrupted by signal SIGINT.zrun=�,z
 \(filtered\)z	failures=zskipped=z
Total tests: r~r�/rprqrortrLrs�=zTotal test files: �FAILUREzENV CHANGED�INTERRUPTEDzNO TESTS RAN�SUCCESS�, z then zResult: )�
isinstancerlrmrr3r4�appendrnr�r4�setrarjr�r��	tests_run�failuresror��any)#r"rXr��statsrorprqrrrLrsrtrfrurvr�r�rw�rerun_failed�executed�total_testsr�rW�good�text�parts�line�run�total_failed�total_rerun�reportr3�ntest�state�	new_stater|s#                                  @r�check_executed_testsz!BaseTestCase.check_executed_tests!s�����e�S�!�!�	��G�E��g�s�#�#�	 ��i�G��o�s�+�+�	0�.�/�O��f�c�"�"�	��X�F��k�3�'�'�	(�&�-�K��g�s�#�#�	 ��i�G��l�C�(�(�	*�(�>�L��e�S�!�!�	%��e�$�$�E��	��I�����[���j�\�F��=�
0��#�#�E�J�/�/�/��,�,�V�4�4���5�k�k�������u�z�*�*�*��	<����S��]�]�C��,<�,<�f�E�E�E�E����X�{�F�;�;�;�	-�	-�	-�	�	�	�	�	��	+��J�2�G�<�<�E��O�O�F�E�*�*�*��	+��J�G��Y�Y�E��O�O�F�E�*�*�*��	+��J�1�6�:�:�E��O�O�F�E�*�*�*��	+��J� 2�*�,�,�E�
�O�O�F�E�*�*�*��	+��J�2�G�<�<�E��O�O�F�E�*�*�*����J�1�E�J�<�@�@�E��O�O�F�E�*�*�*��!M�M�E��O�O�F�E�*�*�*�?�5�:�?�?�?�E��{�
@�!�?�?���?�?�?���O�O�F�E�*�*�*��	+��J�7��F�F�E��O�O�F�E�*�*�*��E�
�
�S��\�\�)�C��,@�,@�@�3�v�;�;�N��g�,�,��!$�[�!1�!1�2�47��4E�4E�F���	6�)-���v�v�d�|�|�|�|�<�E��
)�6�
)�u�}��
�}�SW�Z[�S[�S[� �5�(���O�O�F�E��O�5�5�5��	P��O�O�F�$N�O�O�O�*�e�o�)�)�)���	+��*�*�*�D�����>�	9��L�L�7�U�^�7�7�7�8�8�8��=�	7��L�L�5�E�M�5�5�5�6�6�6�1�������1�1�������4��0�0�0��+����_�!5�!5�5�����|�,�,�L��K�K��v�;�;�L��K��	��C��c�|�|���	*��)�)�S��Z�Z�)�)�D��	+��*�*�*�D����
�|�$�
�C��,�,�-�
��G���%�
��O� 4� 4�5�
�k�"�
�S��.�.�/�

�		1�		1�K�D�%��
1��
�
��/�/��/�/�0�0�0��7�S�X�X�f�%5�%5�7�7�������4��0�0�0����	(��L�L��#�#�#�#�
�	(�+�	(��L�L��'�'�'��	(��L�L��'�'�'��D�&�+�w��!1�3�4�4�	$��L�L��(�(�(�(��	$��L�L��#�#�#��	�	�%� � ����%*�]�A�	�	�	�I��/�/�I�/�/�E����� 2�5� 2� 2���>�>�>�>�>rrX�returnc�X�|�d|��}|�d��S)NzUsing random seed: (.*)rF)rYrf)r"rXr�s   r�parse_random_seedzBaseTestCase.parse_random_seed�s(���!�!�"<�f�E�E���{�{�1�~�~�rrc	��|sd}d|vrtj|d<|�dd��}|�/ttj��}|�dd��tj|fd|tj|d�|��}|j|krOdt|���d|j�d	|�d
|j
�d�	}|jr
|d|jzz
}|�|��|S)
Nr0r�rnreT)r��input�stdoutrnzCommand z failed with exit code z, but exit code z expected!

stdout:
---
z
---
z
stderr:
---
%s---
)
�
subprocess�STDOUT�pop�dictr��environr��PIPE�
returncoderlr�r�rV)r"rr��exitcode�kwrn�procr#s        r�run_commandzBaseTestCase.run_command�s���	��E��2���%�,�B�x�L��f�f�U�D�!�!���;��r�z�"�"�C��G�G�'��.�.�.��~�d�$�#'�$)�%/�_�"%�	$�$�
!#�$�$���?�h�&�&�&��$�i�i�i�i�����(�(�(�D�K�K�K�
I�C��{�
'�� �
�+�&�'��
�I�I�c�N�N�N��rc��g}dtjvr|�ddg��tjg|�d�d�d�|�}|j|fi|��}|jS)N�uopsr
�faulthandlerz-I)�sys�	_xoptions�extend�
executabler�r�)r"rr��	extraargsr�s     r�
run_pythonzBaseTestCase.run_python�sq���	��S�]�"�"����d�F�^�,�,�,���N��N�D�N�.�N�$�N��N���t���+�+��+�+���{�r)NN�FT)Nr)r*r+r,rFrIrkrBrQrYrarnr�rlr�r�r�r/rrr8r8�s�������N�&�O�*�N�;�;�;�����<���(�(�(�(�8�8�8�&(��)+�R�#'�b�-/�',�u�%�.3�%*�U�]?�]?�]?�]?�]?�~��������!�!�!�!�F����rr8c��eZdZd�ZdS)�CheckActualTestsc	���gd�}|�|��}t|�����}tj�t
jtj�t����d��}tt
j|����}|�
||dzdzdd�|����������dS)	zP
        Check that regrtest appears to find the expected set of tests.
        )�-Wd�-E�-bbr��
test.regrtest�--list-testsztest*.py�	rz+Unexpectedly low number of tests found in:
r�)r#N)r�r��
splitlinesr�r�r��globr]r<r=�
assertGreater)r"rrX�rough_number_of_tests_found�actual_testsuite_glob�rough_counted_test_py_filess      r�#test_finds_expected_number_of_testsz4CheckActualTests.test_finds_expected_number_of_tests�s���K�J�J������&�&��&)�&�*;�*;�*=�*=�&>�&>�#� "����T�[������9R�9R�-S�-S�-7�!9�!9��&)�$�)�4I�*J�*J�&K�&K�#�	
���6�6�q�8�"�<� ?�"�i�i��(9�(9�(;�(;�<�<� ?� ?�	�	@�	@�	@�	@�	@rN)r*r+r,r�r/rrr�r��s(������@�@�@�@�@rr�c�2��eZdZdZdZ�fd�Zd�Zdd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zejej��d��ejejdkd��d�����Zejejdkd��d���Z�xZS)�ProgramsTestCasezp
    Test various ways to run the Python test suite. Use options close
    to options used on the buildbot.
    rc�V���t������fd�t�j��D���_gd��_ddd�jzg�_�j�d��tj
dkr�j�d��dSdS)	Nc�8��g|]}������Sr/�rQ�rh�indexr"s  �r�
<listcomp>z*ProgramsTestCase.setUp.<locals>.<listcomp>s%���H�H�H�U�d�&�&�(�(�H�H�Hr)r�r�r�z-uallz-rwW�--testdir=%s)r.�3600z-j4�win32r�)�superrB�range�NTESTr��python_argsr@�
regrtest_argsr�r��platformr�)r"�	__class__s`�rrBzProgramsTestCase.setUps�����
���
�
����I�H�H�H�e�D�J�6G�6G�H�H�H��
�/�/�/���%�v�,�t��>�@�����!�!�">�?�?�?��<�7�"�"���%�%�d�+�+�+�+�+�#�"rc���|�|��}|�|���|��|�||jdt|j�����dS)NT)rfr�)r�r:�isdigitr�r�r�)r"rX�randseeds   r�check_outputzProgramsTestCase.check_outputst���)�)�&�1�1������(�(�*�*�H�5�5�5��!�!�&�$�*�,0��D�J���	"�	I�	I�	I�	I�	IrNc�^�|�||���}|�|��dS)N)rn)r�r�)r"rrnrXs    r�	run_testszProgramsTestCase.run_tests%s1������3��/�/�����&�!�!�!�!�!rc��tj�|jd��}g|j�|�|j�|j�}|�|��dS)Nzregrtest.py�r�r�r�r�r�r�r�r��r"�scriptrs   r�test_script_regrtestz%ProgramsTestCase.test_script_regrtest)sR������d�l�M�:�:��L��!�L�6�L�D�,>�L���L�����t�����rc�f�g|j�d�d�|j�|j�}|�|��dS)Nr��test�r�r�r�r��r"rs  r�test_module_testz!ProgramsTestCase.test_module_test0sN��2��!�2�4�2��2��#�2�&*�j�2�����t�����rc�f�g|j�d�d�|j�|j�}|�|��dS)Nr�r�r�r�s  r�test_module_regrtestz%ProgramsTestCase.test_module_regrtest6�N��2��!�2�4�2��2��#�2�&*�j�2�����t�����rc�f�g|j�d�d�|j�|j�}|�|��dS)Nr�z
test.autotestr�r�s  r�test_module_autotestz%ProgramsTestCase.test_module_autotest<r�rc�j�d}g|j�d�|�|j�|j�}|�|��dS)Nzfrom test import autotestz-cr�)r"rOrs   r�test_module_from_test_autotestz/ProgramsTestCase.test_module_from_test_autotestBsS��*��2��!�2�4�2��2��#�2�&*�j�2�����t�����rc��tj�|jd��}g|j�|�|j�|j�}|�|��dS)Nzautotest.pyr�r�s   r�test_script_autotestz%ProgramsTestCase.test_script_autotestIsR������d�l�M�:�:��L��!�L�6�L�D�,>�L���L�����t�����rc�d�|�|��}|�|j��dSr)r�r�r�)r"rr�s   r�	run_batchzProgramsTestCase.run_batchOs1������%�%�����$�+�&�&�&�&�&rz test.bat script is not installedr�zWindows onlyc���tj�tddd��}d|jzg}tj��dkr|�d��n_tj��dkr|�d��n2tj��d	d
kr|�d��tj
s|�d��|j|g|�|j�R�dS)
N�Tools�buildbotztest.batr��ARM64�-arm64�ARM�-arm32r�64bit�-x64z+d)
r�r�r��ROOT_DIRr@r��machiner��architecturer�Py_DEBUGr�r�)r"r��	test_argss   r�test_tools_buildbot_testz)ProgramsTestCase.test_tools_buildbot_testSs���
����h���Z�H�H��#�d�o�5�6�	������(�(����X�&�&�&�&�
�
�
�
�5�
(�
(����X�&�&�&�&�
�
"�
$�
$�Q�
'�7�
2�
2����V�$�$�$���	#����T�"�"�"����v�7�	�7�D�J�7�7�7�7�7�7rc�X�tj�td��}tj�|��s|�d|�d���dg}t
j��dkr|�d��n_t
j��dkr|�d��n2t
j	��d	d
kr|�d��tjr|�d��|j|g|�|j
�|j�R�dS)
NzPCbuild\rt.batzFile "z" does not existrVr�r�r�rrrrz-d)r�r�r�r�isfilerNr�rr�rrrr�r�r�)r"r��rt_argss   r�test_pcbuild_rtz ProgramsTestCase.test_pcbuild_rtds������h�(9�:�:���w�~�~�f�%�%�	=��M�M�;�6�;�;�;�<�<�<��&�������(�(��N�N�8�$�$�$�$�
�
�
�
�5�
(�
(��N�N�8�$�$�$�$�
�
"�
$�
$�Q�
'�7�
2�
2��N�N�6�"�"�"���	!��N�N�4� � � ����v�J��J�$�*<�J�t�z�J�J�J�J�J�Jrr)r*r+r,r-r�rBr�r�r�r�r�r�r�r�r��unittest�
skipUnlessrLrMr�r�rr�
__classcell__)r�s@rr�r�	sr���������

�E�,�,�,�,�,�I�I�I�"�"�"�"�������������������'�'�'��X��2��2�4�4�;�=�=��X�����0�.�A�A�8�8�B�A�=�=�8��X�����0�.�A�A�K�K�B�A�K�K�K�K�Krr�c���eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zdd�d�Zejejd��defd���Zd�Zd�Zejejd��d���Zejejd��d���Zd�Zd�Zejd���Zd�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.d+�Z/d,�Z0d-�Z1ejd.���Z2d/�Z3d0�Z4d1�Z5d2�Z6d3�Z7d4�Z8ej9ej:d5��d6���Z;d7�Z<d8�Z=defd9�Z>d:�Z?d;�Z@d<�ZAd=�ZBd>�ZCd?�ZDej9ejEd@��dA���ZFdB�ZGdCS)D�ArgsTestCasez2
    Test arguments of the Python test suite.
    c�<�ddd|jzg|�}|j|fi|��S)Nr�r�r�)r@r�)r"�testargsr��cmdargss    rr�zArgsTestCase.run_tests{s4�����$�/�!A�M�H�M���t��w�-�-�"�-�-�-rc�����tjd�����fd�tdd��D��}�j|�}��||dt|��z���dS)Na
            import unittest

            class PassingTests(unittest.TestCase):
                def test_test1(self):
                    pass

                def test_test2(self):
                    pass

                def test_test3(self):
                    pass
        c�D��g|]}��d|��������S)�ok�rOr��rh�irOr"s  ��rr�z-ArgsTestCase.test_success.<locals>.<listcomp>�s2���L�L�L�1��!�!�(�q�(�(��!�6�6�L�L�LrrFr�r�r�)rGrHr�r�r�r�)r"r�rXrOs`  @r�test_successzArgsTestCase.test_successs������� �
�
��M�L�L�L�L��a����L�L�L������'���!�!�&�%�()�C��J�J��	"�	8�	8�	8�	8�	8rc���tjd��}|�d��}|�d|���}||g}|j|�}|�|||gd���dS)NzQ
            import unittest
            raise unittest.SkipTest("nope")
        r�skiprrF)ror��rGrHrQr�r�)r"rO�test_ok�	test_skipr�rXs      rr!zArgsTestCase.test_skip�s����� �
�
���"�"�4�(�(���$�$�V�$�$�7�7�	��)�$������'���!�!�&�%�+4�+�()�	"�	+�	+�	+�	+�	+rc	��tjd��}|�d��}|�d|���}||g}|j|dti�}|�|||t
dd�����dS)	Nz�
            import unittest

            class FailingTest(unittest.TestCase):
                def test_failing(self):
                    self.fail("bug")
        r�failingrr�rrF�rpr��rGrHrQr��EXITCODE_BAD_TESTr�r)r"rOr �test_failingr�rXs      r�test_failing_testzArgsTestCase.test_failing_test�s����� �
�
���"�"�4�(�(���'�'�	��'�=�=���,�'������C�1B�C�C���!�!�&�%��(1�!�Q���	"�	9�	9�	9�	9�	9rc��i}dD]2}tjd|z��}|�||��||<�3t|�����}|jddg|�R�}|�||d���|jdg|�R�}|�|||dd	�
��|j|dti�}|�|||d�
��dS)
N)�audior�a
                        from test import support; support.requires(%r)
                        import unittest
                        class PassingTest(unittest.TestCase):
                            def test_pass(self):
                                pass
                    r��allrrz-uaudior�rF)rtr�r�r)rGrHrQr�valuesr�r��EXITCODE_NO_TESTS_RAN)r"r��resourcerO�
test_namesrXs      r�test_resourceszArgsTestCase.test_resources�s1����,�		?�		?�H��?�$�#�
$#�$�$�D�#�.�.�x��>�>�E�(�O�O��E�L�L�N�N�+�+�
� ����e�9�j�9�9�9���!�!�&�*�A�!�>�>�>� ���	�7�J�7�7�7���!�!�&�*�27�	�2B�()�	"�	+�	+�	+�
 ����L�6K�L�L���!�!�&�*�2<�()�	"�	+�	+�	+�	+�	+rc���tjd��}|�d|��}|�d|t���}|�|��}|�d|��}t|�d����}|�dd|��|t���}|�|��}|�	||��|�d|��}t|�d����}|�	||��|�|t���}|�|��}|�
|���|��d}	ttj|	�	��}
|�d|t|
�
��}|�|��}|�	||	��|�|d��ttjd�	��}
|�d|t|
�
��}|�|��}|�	|d��|�|d
��ttjd�	��}
|�d|t|
�
��}|�|��}|�
|���|��dS)Nza
            import random
            print("TESTRANDOM: %s" % random.randint(1, 1000))
        �randomrb�r�zTESTRANDOM: ([0-9]+)rF�--randseed=rd)re�r�rnzTESTRANDOM: 520�XYZzTESTRANDOM: 22r0)rGrHrQr�r-r�rYrmrfr4r:r�r�r�r�ra)r"rOr�rXr�r��test_random�	randseed2�test_random2�	timestamprns           rr7zArgsTestCase.test_random�s����� �
�
������$�/�/������d�5J��K�K���)�)�&�1�1���!�!�"9�6�B�B���%�+�+�a�.�.�)�)������&>�H�&>�&>��)>� �@�@���*�*�6�2�2�	�����H�-�-�-��!�!�"9�6�B�B���5�;�;�q�>�>�*�*������{�3�3�3�����/D��E�E���)�)�&�1�1������(�(�*�*�H�5�5�5�!�	��2�:��;�;�;������d�5J�$'� �)�)���)�)�&�1�1������9�-�-�-����� 1�2�2�2��2�:��7�7�7������d�5J�$'� �)�)���)�)�&�1�1������5�)�)�)����� 0�1�1�1��2�:��4�4�4������d�5J�$'� �)�)���)�)�&�1�1������(�(�*�*�H�5�5�5�5�5rc
�����fd�td��D��}tj}��tj|��t|d��5}d}t
|d��D]8\}}d||t|��|fz}|r|d|zz
}t||���|}�9	ddd��n#1swxYwY��	d|��}t|��}	��
|||	�	��t|d��5}t
|d��D],\}}td
|�dt|���d|��|����-	ddd��n#1swxYwY��	d|��}��
|||	�	��t|d��5}|D]}t||����	ddd��n#1swxYwY��	d|��}��
|||	�	��t|d��5}|D]}td
|z|����	ddd��n#1swxYwY��	d|��}��
|||	�	��dS)Nc�8��g|]}������Sr/r�r�s  �rr�z.ArgsTestCase.test_fromfile.<locals>.<listcomp>�%���:�:�:���!�!�#�#�:�:�:rrr�rFz00:00:%02i [%s/%s] %sz -- %s took 0 secr�rwr�[r�z] zLib/test/%s.py)r�rr�r�r�r��	enumerater�r�r�r�)
r"r�r�r��previousr�r3r�rXr�s
`         rr{zArgsTestCase.test_fromfiles����:�:�:�:��q���:�:�:��
�#�����	�(�(�3�3�3��(�C�
 �
 �	 �B��H�(���2�2�
 �
 ���t�/� �%��U���T�:�;���;��/�(�:�:�D��d��$�$�$�$����

 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �����h�7�7���E�
�
���!�!�&�%�u�!�=�=�=��(�C�
 �
 �	I�B�(���2�2�
I�
I���t���e�e�e�S��Z�Z�Z�Z���>�R�H�H�H�H�H�
I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�����h�7�7���!�!�&�%�u�!�=�=�=��(�C�
 �
 �	%�B��
%�
%���d��$�$�$�$�$�
%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�����h�7�7���!�!�&�%�u�!�=�=�=��(�C�
 �
 �	8�B��
8�
8���&��-�B�7�7�7�7�7�
8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�����h�7�7���!�!�&�%�u�!�=�=�=�=�=sI�AB2�2B6�9B6�
>E�E�E�G�G�	G�H2�2H6�9H6c��t}|�d|���}|�|t���}|�|||dd���dS)N�sigintrr3Tr�rrrvr�)�TEST_INTERRUPTEDrQr��EXITCODE_INTERRUPTEDr��r"rOr�rXs    r�test_interruptedzArgsTestCase.test_interrupted7sg��������t��4�4������/C��D�D���!�!�&�$��.2�!�	"�	=�	=�	=�	=�	=rc����fd�td��D��}�jdg|�R�}��||t|�����d�j�dt|���d�}��||��dS)Nc�8��g|]}������Sr/r�r�s  �rr�z-ArgsTestCase.test_slowest.<locals>.<listcomp>@r=rrr[rz10 slowest tests:
(?:- z: .*
){�})r�r�r�r�rkra)r"r�rXrWs`   rr]zArgsTestCase.test_slowest>s����:�:�:�:��q���:�:�:������4�e�4�4�4���!�!�&�%�s�5�z�z�!�B�B�B�B��'�'�'��U�����5��	
�����&�&�&�&�&rc	�H�t}|�d|���}dD]�}|�|���5|rdd|f}nd|f}|j|dti�}|�|||dd	�
��d}|�||��ddd��n#1swxYwY��dS)NrBrr�)�multiprocessingr[�-j2r�TrrCz10 slowest tests:
)rDrQr)r�rEr�ra)r"rOr�rLrrXrWs       r�test_slowest_interruptedz%ArgsTestCase.test_slowest_interruptedHs��������t��4�4��,�	/�	/�O����o��>�>�
/�
/�"�/�'���5�D�D�'��.�D�'����M�8L�M�M���)�)�&�$�26�D�01�*�3�3�3�/�������.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/��	/�	/s�AB�B	�B	c��|�d��}|�d|��}|�||gd���d}|�||��dS)N�coverager�rFrzLlines +cov% +module +\(path\)\n(?: *[0-9]+ *[0-9]{1,2}% *[^ ]+ +\([^)]+\)+)+)rQr�r�ra)r"r�rXrWs    rr�zArgsTestCase.test_coverage[sg�����
�+�+������d�3�3���!�!�&�4�&��!�:�:�:�B�������&�&�&�&�&rc��|�d��}|�d|d���}|�|d��dS)Nr;r9�key)r�zPress any key to continue)rQr�ra)r"r�rXs   rr=zArgsTestCase.test_waitdsG������'�'������$�e��<�<������ ;�<�<�<�<�<rc	��tjd��}|�d|���}|�d|t���}|�||gdz|t
dd��d�	��|�dd
|d���}|�||gdzt|dd�
��t
dd��d���dS)NaL
            import builtins
            import unittest

            class ForeverTester(unittest.TestCase):
                def test_run(self):
                    # Store the state in the builtins module, because the test
                    # module is reload at each run
                    if 'RUN' in builtins.__dict__:
                        builtins.__dict__['RUN'] += 1
                        if builtins.__dict__['RUN'] >= 3:
                            self.fail("fail at the 3rd runs")
                    else:
                        builtins.__dict__['RUN'] = 1
        r�rr�r3rrFT)rpr�r�rKr�test_run�r�r4r)rLr�r�)rGrHrQr�r&r�rr2rFs    rr�zArgsTestCase.test_foreverjs����� �
�
�����	���5�5������T�<M��N�N���!�!�&�4�&��(�4�(1�!�Q���*.�	"�	0�	0�	0�
����Y��q��I�I���!�!�&�4�&��(�(-�d�4>�6:�)<�)<�)<�)2�!�Q���*.�	"�	0�	0�	0�	0�	0rF��run_workersc�V�|�d|���}d}|�tj|��ddg}|r|�d��|�|��|j|ttjd��}|�	||g|d�	��d
}|�
||��|�d|�d�}	|�|	|��t|��5}
|
�
��}|�|	|��ddd��dS#1swxYwYdS)
Nr�rr�r��3:3:�-j1�r�r�rFr$z6beginning 6 repetitions. .*\n123:456\n[.0-9X]{3} 111\nz leaked [1, 1, 1] z, sum=3
)rQr�rr�r�r�r&r�r�r�rar r��read)r"rO�whatrWr�r��cmdrXr��line2r��reflogs            r�
check_leakzArgsTestCase.check_leak�s}������4��8�8�������	�(�(�3�3�3��v�&���	��J�J�u�����
�
�4��������):�'1�'8�:�:�:��	
�!�!�&�4�&��Q�!�G�G�G�H�������%�%�%�59�T�T�4�4�4�@���
�
�e�V�$�$�$�
�(�^�^�	)�r��W�W�Y�Y�F��M�M�%��(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�&+D�D"�%D"zneed a debug buildrWc�^�tjd��}|�|d|���dS)Nz�
            import unittest

            GLOBAL_LIST = []

            class RefLeakTest(unittest.TestCase):
                def test_leak(self):
                    GLOBAL_LIST.append(object())
        �
referencesrV�rGrHra)r"rWrOs   r�check_huntrleakszArgsTestCase.check_huntrleaks�s:���� �
�
��	
����l���D�D�D�D�Drc�2�|�d���dS�NFrV�rer�s rr�zArgsTestCase.test_huntrleaks�s�����%��0�0�0�0�0rc�2�|�d���dS�NTrVrhr�s r�test_huntrleaks_mpzArgsTestCase.test_huntrleaks_mp�s�����$��/�/�/�/�/rc��tjd��}|�d|���}d}|�tj|��ddd|g}|j|ttj	d��}|�
d	|��|��|�
d	|�d
�|��|�
d|��|�
d|�d
�|��dS)Nay
            import unittest

            GLOBAL_LIST = []

            class RefLeakTest(unittest.TestCase):
                def test1(self):
                    pass

                def test2(self):
                    pass

                def test3(self):
                    GLOBAL_LIST.append(object())

                def test4(self):
                    pass
        r�rr�r�rYrr[zBisect z
: exit code 0zBisection completed inz
Tests (1):
* z.RefLeakTest.test3
)rGrHrQr�rr�r�r&r�r�r )r"rOr�r�r^rXs      r�test_huntrleaks_bisectz#ArgsTestCase.test_huntrleaks_bisect�s���� �
�
��&����4��8�8�������	�(�(�3�3�3��v�z�4�8������):�'1�'8�:�:�:��	
�
�
�&��&�&��/�/�/��
�
�3��3�3�3�V�<�<�<�	
�
�
�.��7�7�7��
�
�
,��
,�
,�
,��	�	�	�	�	rc�Z�tjd��}|�|d��dS)Na
            import os
            import unittest

            class FDLeakTest(unittest.TestCase):
                def test_leak(self):
                    fd = os.open(__file__, os.O_RDONLY)
                    # bug: never close the file descriptor
        zfile descriptorsrd)r"rOs  r�test_huntrleaks_fd_leakz$ArgsTestCase.test_huntrleaks_fd_leak�s7���� �
�
��	
����0�1�1�1�1�1rc�����fd�td��D��}�jdg|�R�}��|������|��dS)Nc�8��g|]}������Sr/r�)rhrr"s  �rr�z0ArgsTestCase.test_list_tests.<locals>.<listcomp>�s%���6�6�6���!�!�#�#�6�6�6rrr�)r�r�r4�rstripr�)r"r�rXs`  r�test_list_testszArgsTestCase.test_list_tests�sv���6�6�6�6�U�1�X�X�6�6�6������7��7�7�7����������3�3�5�5��	 �	 �	 �	 �	 rc�v�tjd��}|�|���}d|zd|zg}|�d|��}|�|���|��d|zg}|�ddd|��}|�|���|��dS)Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_method1(self):
                    pass
                def test_method2(self):
                    pass
        rz%s.Tests.test_method1z%s.Tests.test_method2z--list-casesr��test_method1)rGrHrQr�r4r�)r"rO�testname�all_methodsrXs     r�test_list_caseszArgsTestCase.test_list_cases�s����� �
�
���#�#��#�.�.��/��9�.��9�;�������9�9������*�*�,�,�k�:�:�:�/��9�:������ $�n� (�*�*��	
����*�*�,�,�k�:�:�:�:�:rc��d}|�d|���}|g}|jdg|�Rdti�}|�|||dd���dS)	Nz,import faulthandler; faulthandler._sigsegv()�crash�r3rOrMr�Tr�rprur�)rQr�r&r�)r"rO�
crash_testr�rXs     r�test_crashedzArgsTestCase.test_crasheds|��>���%�%�7��%�>�>�
��������J��J�J�J�8I�J�J���!�!�&�%�
�+/�q�	"�	:�	:�	:�	:�	:rc��tjdtj���}d�|�|��D��S)Nz^(test[^ ]+).*ok$��flagsc�8�g|]}|�d����S)rFrergs  rr�z.ArgsTestCase.parse_methods.<locals>.<listcomp>s"��C�C�C�5����A���C�C�Cr)rSr^rUrl)r"rXrWs   r�
parse_methodszArgsTestCase.parse_methodss9���
�.�b�l�C�C�C��C�C�E�N�N�6�,B�,B�C�C�C�Crc���tjd��}|�|���}tj}|�tj|��dd|zg}t|d��5}|D]}t||����	ddd��n#1swxYwY|�	dd||��}|�
|��}d	d
g}|�||��dS)N�V
            import unittest

            class Tests(unittest.TestCase):
                def test_method1(self):
                    pass
                def test_method2(self):
                    pass
                def test_method3(self):
                    pass
                def test_method4(self):
                    pass
        rru�%s.Tests.test_method3r�r�rEr��test_method2�test_method4)rGrHrQrr�r�r�r�r�r�r�r4)	r"rOrvr��subsetr�r3rX�methodss	         r�test_ignorefilezArgsTestCase.test_ignorefilesE���� �
�
���#�#��#�.�.���#�����	�(�(�3�3�3�
�#�h�.�	0��
�(�C�
 �
 �	%�B��
%�
%���d��$�$�$�$�$�
%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�����n�h��I�I���$�$�V�,�,�� �.�1������&�)�)�)�)�)s�.B�B�Bc�V�tjd��}gd�}|�|���}|�d|��}|�|��}|�||��tj}|�tj	|��dd|zg}t|d��5}|D]}	t|	|����	ddd��n#1swxYwY|�dd	||��}|�|��}dd
g}|�||��dS)Nr�)rur��test_method3r�rrErur�r�r�r�r�)rGrHrQr�r�r4rr�r�r�r�r�)
r"rOrwrvrXr�r�r�r�r3s
          r�test_matchfilezArgsTestCase.test_matchfileAs����� �
�
��7�7�7���#�#��#�.�.������h�/�/���$�$�V�,�,������+�.�.�.��#�����	�(�(�3�3�3�
�#�h�.�	0��
�(�C�
 �
 �	%�B��
%�
%���d��$�$�$�$�$�
%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�����m�X�x�H�H���$�$�V�,�,�� �.�1������&�)�)�)�)�)s�3C�C�Cc
��tjd��}|�|���}|�|��}|�||g|d���|�d|t
���}|�||g|dd���|�d	|��}|�||g|t
|dd�
��d���dS)
Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_env_changed(self):
                    open("env_changed", "w").close()
        rrF)rqr��--fail-env-changedr3T�rqr�r�rKrUr)rqrLr�)rGrHrQr�r��EXITCODE_ENV_CHANGEDr2�r"rOrvrXs    r�test_env_changedzArgsTestCase.test_env_changedjs!���� �
�
���#�#��#�.�.������)�)���!�!�&�8�*�.6�a�	"�	A�	A�	A���� 4�h�)=� �?�?���!�!�&�8�*�(�37�q�	"�	B�	B�	B����	�8�4�4���!�!�&�8�*�.6�(-�h�48�6:�)<�)<�)<�)*�	"�	+�	+�	+�	+�	+rc	��tjd��}|�|���}|�d|t���}|�||gt
|dd���tdd	���
��dS)Na
            import unittest

            class Tests(unittest.TestCase):
                def test_succeed(self):
                    return

                def test_fail_always(self):
                    # test that always fails
                    self.fail("bug")
        rrKr3�test_fail_alwaysF)r4rr�rLr�)rGrHrQr�r&r�r2rr�s    r�test_rerun_failzArgsTestCase.test_rerun_fail�s�����
 �

�

���#�#��#�.�.�����	�8�>O��P�P���!�!�&�8�*�(-�h�.@�6;�)=�)=�)=�)2�!�Q���		"�	9�	9�	9�	9�	9rc	���tj�d��}|�tj|��|�tj�|����tj	d|�d���}|�
|���}|�d|d���}|�||gt|dd	�
��tdd���
��t	j|��|�dd|t���}|�||gt|dd	�
��tdd���
��t	j|��dS)N�regrtest_marker_filenamezW
            import os.path
            import unittest

            marker_filename = aD

            class Tests(unittest.TestCase):
                def test_succeed(self):
                    return

                def test_fail_once(self):
                    if not os.path.exists(marker_filename):
                        open(marker_filename, "w").close()
                        self.fail("bug")
        rrKrr3�test_fail_onceTrUrrFr�z--fail-rerun)r�r�r�r�rr�ri�existsrGrHrQr�r�r2r�EXITCODE_RERUN_FAIL)r"�marker_filenamerOrvrXs     r�test_rerun_successzArgsTestCase.test_rerun_success�s����'�/�/�*D�E�E�����	�(�/�:�:�:���������8�8�9�9�9��� � /�	 � � �
�
���#�#��#�.�.�����	�8�a��@�@���!�!�&�8�*�(-�h�4D�6:�)<�)<�)<�)2�!�Q���		"�	9�	9�	9�
	���)�)�)����	�>�8�)<� �>�>���!�!�&�8�*�(-�h�4D�6:�)<�)<�)<�)2�!�Q���		"�	9�	9�	9�
	���)�)�)�)�)rc
���tjd��}|�|���}|�d|t���}|�|||gt
|dd���d�	��dS)
Na
            import unittest

            class ExampleTests(unittest.TestCase):
                @classmethod
                def setUpClass(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        rrKr3�ExampleTestsFrUr�rprLr��rGrHrQr�r&r�r2r�s    r�#test_rerun_setup_class_hook_failurez0ArgsTestCase.test_rerun_setup_class_hook_failure������
 �

�

���#�#��#�.�.�����	�8�>O��P�P���!�!�&�(�*2��(-�h�4B�6;�)=�)=�)=�)*�	"�	+�	+�	+�	+�	+rc
���tjd��}|�|���}|�d|t���}|�|||gt
|dd���d�	��dS)
Na
            import unittest

            class ExampleTests(unittest.TestCase):
                @classmethod
                def tearDownClass(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        rrKr3r�FrUrr�r�r�s    r�&test_rerun_teardown_class_hook_failurez3ArgsTestCase.test_rerun_teardown_class_hook_failure�r�rc
���tjd��}|�|���}|�d|t���}|�|||gt
|dd���d���dS)	Nz�
            import unittest

            def setUpModule():
                raise RuntimeError('Fail')

            class ExampleTests(unittest.TestCase):
                def test_success(self):
                    return
        rrKr3FrUrr�r�r�s    r�$test_rerun_setup_module_hook_failurez1ArgsTestCase.test_rerun_setup_module_hook_failure�s�����	 �	
�	
���#�#��#�.�.�����	�8�>O��P�P���!�!�&�(�*2��(-�h�48�6;�)=�)=�)=�)*�	"�	+�	+�	+�	+�	+rc
���tjd��}|�|���}|�d|t���}|�||g|gt
|dd���d���dS)	Nz�
            import unittest

            def tearDownModule():
                raise RuntimeError('Fail')

            class ExampleTests(unittest.TestCase):
                def test_success(self):
                    return
        rrKr3FrUrr�r�r�s    r�'test_rerun_teardown_module_hook_failurez4ArgsTestCase.test_rerun_teardown_module_hook_failure
s�����	 �	
�	
���#�#��#�.�.�����	�8�>O��P�P���!�!�&�8�*�*2��(-�h�48�6;�)=�)=�)=�)*�	"�	+�	+�	+�	+�	+rc
���tjd��}|�|���}|�d|t���}|�|||gt
|dd���d�	��dS)
Nz�
            import unittest

            class ExampleTests(unittest.TestCase):
                def setUp(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        rrKr3rFrUrr�r�r�s    r�test_rerun_setup_hook_failurez*ArgsTestCase.test_rerun_setup_hook_failure#�����	 �	
�	
���#�#��#�.�.�����	�8�>O��P�P���!�!�&�(�*2��(-�h�4B�6;�)=�)=�)=�)*�	"�	+�	+�	+�	+�	+rc
���tjd��}|�|���}|�d|t���}|�|||gt
|dd���d�	��dS)
Nz�
            import unittest

            class ExampleTests(unittest.TestCase):
                def tearDown(self):
                    raise RuntimeError('Fail')

                def test_success(self):
                    return
        rrKr3rFrUrr�r�r�s    r� test_rerun_teardown_hook_failurez-ArgsTestCase.test_rerun_teardown_hook_failure9r�rc	���tjd��}|�|���}|�d|t���}|�||t
|dd���d�	��dS)
Na

            import unittest

            class ExampleTests(unittest.IsolatedAsyncioTestCase):
                async def asyncSetUp(self):
                    raise RuntimeError('Fail')

                async def test_success(self):
                    return
        rrKr3rFrUrr�r�r�s    r�#test_rerun_async_setup_hook_failurez0ArgsTestCase.test_rerun_async_setup_hook_failureOs�����	 �	
�	
���#�#��#�.�.�����	�8�>O��P�P���!�!�&�(�(-�h�4B�6;�)=�)=�)=�)*�		"�	+�	+�	+�	+�	+rc
���tjd��}|�|���}|�d|t���}|�|||gt
|dd���d�	��dS)
Na
            import unittest

            class ExampleTests(unittest.IsolatedAsyncioTestCase):
                async def asyncTearDown(self):
                    raise RuntimeError('Fail')

                async def test_success(self):
                    return
        rrKr3rFrUrr�r�r�s    r�&test_rerun_async_teardown_hook_failurez3ArgsTestCase.test_rerun_async_teardown_hook_failuredr�rc���tjd��}|�|���}|�|ddt���}|�||g|dd���dS�	N��
            import unittest

            class Tests(unittest.TestCase):
                def test_bug(self):
                    pass
        rr��
nosuchtestr3rT�rsr�rw�rGrHrQr�r-r�r�s    r�test_no_tests_ranzArgsTestCase.test_no_tests_ranzs����� �
�
���#�#��#�.�.������$��)>� �@�@���!�!�&�8�*�/7�()�D�	"�	:�	:�	:�	:�	:rc���tjd��}|�|���}|�|��}|�||gtdd������dS)Nz�
            import unittest

            class Tests(unittest.TestCase):
                def test_skipped(self):
                    self.skipTest("because")
        rrF)ror)rGrHrQr�r�rr�s    r�test_no_tests_ran_skipz#ArgsTestCase.test_no_tests_ran_skip�s����� �
�
���#�#��#�.�.������)�)���!�!�&�8�*�(1�!�Q�(?�(?�(?�	"�	A�	A�	A�	A�	Arc��tjd��}|�|���}|�|���}|�||ddt���}|�|||g||gdd���dSr�r�)r"rOrv�	testname2rXs     r�,test_no_tests_ran_multiple_tests_nonexistentz9ArgsTestCase.test_no_tests_ran_multiple_tests_nonexistent�s����� �
�
���#�#��#�.�.���$�$�$�$�/�/�	�����)�T�<�)>� �@�@���!�!�&�8�Y�*?�08�)�/D�()�D�	"�	:�	:�	:�	:�	:rc	� �tjd��}|�|���}tjd��}|�|���}|�||ddddd���}|�|||g|gd	d
���dS)Nr�rz�
            import unittest

            class Tests(unittest.TestCase):
                def test_other_bug(self):
                    pass
        r�r��test_other_bugrr3rFTr�r)r"rOrv�
other_coder�rXs      r�)test_no_test_ran_some_test_exist_some_notz6ArgsTestCase.test_no_test_ran_some_test_exist_some_not�s����� �
�
���#�#��#�.�.���_�&�
�
�
��$�$�*�$�5�5�	�����)�T�<� $�&6�� �D�D���!�!�&�8�Y�*?�08�z�()�D�	"�	:�	:�	:�	:�	:rc���tjd��}|�|���}|�d|t���}|�||g|gdd���dS)Na�
            import _testcapi
            import gc
            import unittest

            @_testcapi.with_tp_del
            class Garbage:
                def __tp_del__(self):
                    pass

            class Tests(unittest.TestCase):
                def test_garbage(self):
                    # create an uncollectable object
                    obj = Garbage()
                    obj.ref_cycle = obj
                    obj = None
        rr�r3TrFr�)rGrHrQr�r�r�r�s    r�test_uncollectablezArgsTestCase.test_uncollectable�s����� �
�
��"�#�#��#�.�.����� 4�h�)=� �?�?���!�!�&�8�*�/7�j�37�()�	"�	+�	+�	+�	+�	+rc�6�tjd��}|�|���}|�dd|t���}|�||g|d���|�|tjd|ztj	����dS)	Naa
            import time
            import unittest
            try:
                import faulthandler
            except ImportError:
                faulthandler = None

            class Tests(unittest.TestCase):
                # test hangs and so should be stopped by the timeout
                def test_sleep(self):
                    # we want to test regrtest multiprocessing timeout,
                    # not faulthandler timeout
                    if faulthandler is not None:
                        faulthandler.cancel_dump_traceback_later()

                    time.sleep(60 * 5)
        rrMz
--timeout=1.0r3rr$z%s timed out)
rGrHrQr�r&r�r_rSr^rUr�s    r�test_multiprocessing_timeoutz)ArgsTestCase.test_multiprocessing_timeout�s����� �
�
��$�#�#��#�.�.��������):� �<�<���!�!�&�8�*�)1��	"�	<�	<�	<�������N�X�$=�r�|�L�L�	N�	N�	N�	N�	Nrc�&�tjd��}|�|���}|�dd|t���}|�||g|gdd���|�d	|��|�d
|��dS)Na�
            import unittest
            import weakref
            from test.support import captured_stderr

            class MyObject:
                pass

            def weakref_callback(obj):
                raise Exception("weakref callback bug")

            class Tests(unittest.TestCase):
                def test_unraisable_exc(self):
                    obj = MyObject()
                    ref = weakref.ref(obj, weakref_callback)
                    with captured_stderr() as stderr:
                        # call weakref_callback() which logs
                        # an unraisable exception
                        obj = None
                    self.assertEqual(stderr.getvalue(), '')
        rr�rEr3TrFr�zWarning -- Unraisable exceptionzException: weakref callback bug�rGrHrQr�r�r�r r�s    r�test_unraisable_excz ArgsTestCase.test_unraisable_exc�s����� �
�
��*�#�#��#�.�.����� 4�d�H�)=� �?�?���!�!�&�8�*�/7�j�37�()�	"�	+�	+�	+�	
�
�
�7��@�@�@��
�
�7��@�@�@�@�@rc�&�tjd��}|�|���}|�dd|t���}|�||g|gdd���|�d	|��|�d
|��dS)Na[
            import threading
            import unittest
            from test.support import captured_stderr

            class MyObject:
                pass

            def func_bug():
                raise Exception("bug in thread")

            class Tests(unittest.TestCase):
                def test_threading_excepthook(self):
                    with captured_stderr() as stderr:
                        thread = threading.Thread(target=func_bug)
                        thread.start()
                        thread.join()
                    self.assertEqual(stderr.getvalue(), '')
        rr�rEr3TrFr�z$Warning -- Uncaught thread exceptionzException: bug in threadr�r�s    r�test_threading_excepthookz&ArgsTestCase.test_threading_excepthooks����� �
�
��&�#�#��#�.�.����� 4�d�H�)=� �?�?���!�!�&�8�*�/7�j�37�()�	"�	+�	+�	+�	
�
�
�<�f�E�E�E��
�
�0�&�9�9�9�9�9rc	�V�tjd��}|�|���}d}dD]y}|�|���5d||g}|j|dt
i�}|�||g|gdd	�
��|�||��ddd��n#1swxYwY�zdS)Na%
            import sys
            import unittest
            from test import support

            class MyObject:
                pass

            def func_bug():
                raise Exception("bug in thread")

            class Tests(unittest.TestCase):
                def test_print_warning(self):
                    print("msg1: stdout")
                    support.print_warning("msg2: print_warning")
                    # Fail with ENV CHANGED to see print_warning() log
                    support.environment_altered = True
        rzFtest_print_warning.*msg1: stdout\nWarning -- msg2: print_warning\nok\n)rErP)�optionr�r�TrFr�)rGrHrQr)r�r�r�r_)r"rOrvrWr�r^rXs       r�test_print_warningzArgsTestCase.test_print_warning=s'���� �
�
��$�#�#��#�.�.����#�	0�	0�F����V��,�,�
0�
0�+�V�X�>��'����L�7K�L�L���)�)�&�8�*�7?�j�;?�01�*�3�3�3�� � ���/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0s�A
B�B!	�$B!	c���tj�tj��}|�|tj�d���|���r|�d��dSdS)Nz not setzModified guard)r�r��getr�UNICODE_GUARD_ENVr �isasciirN)r"�guards  r�test_unicode_guard_envz#ArgsTestCase.test_unicode_guard_envfso���
���u�6�7�7�����U�u�'>�$H�$H�$H�I�I�I��=�=�?�?�	,�
�M�M�*�+�+�+�+�+�	,�	,rc���tj�|jd��}tj|��tj�|jd��}t|d�����||g}ddd|jzdg}|�|��|D]5}|�tj�	|��|���6dS)N�test_python_123�test_python_456�wbr�r�z--tempdir=%sz	--cleanup)
r�r�r�r@�mkdirr��closer�rir�)r"r<r�r�rr3s      r�test_cleanupzArgsTestCase.test_cleanupns����'�,�,�t��0A�B�B��
�������7�<�<���1B�C�C���X�t���"�"�$�$�$��(�#����!�D�O�3�� ��	
���� � � ��	9�	9�D����R�W�^�^�D�1�1�4�8�8�8�8�	9�	9rz.checking temp files is not implemented on WASIc
�(���tjd�����fd�td��D��}�jdddg|�Rdti�}��|||ddt
|���	��|D]}��d
|�d�|���dS)Nam
            import os.path
            import tempfile
            import unittest

            class FileTests(unittest.TestCase):
                def test_leak_tmp_file(self):
                    filename = os.path.join(tempfile.gettempdir(), 'mytmpfile')
                    with open(filename, "wb") as fp:
                        fp.write(b'content')
        c�<��g|]}��������S�rr��rh�_rOr"s  ��rr�z3ArgsTestCase.test_leak_tmp_file.<locals>.<listcomp>�s*���C�C�C�Q�T�%�%�4�%�0�0�C�C�Crrr�rErMr�T)rqr�rur�zWarning -- z& leaked temporary files (1): mytmpfile)rGrHr�r�r�r�r�r )r"�	testnamesrXrvrOs`   @r�test_leak_tmp_filezArgsTestCase.test_leak_tmp_file}s�������
 �

�

��D�C�C�C�C�%��(�(�C�C�C�	���� 4�d�E�?�I�?�?�?�)=�?�?���!�!�&�)�.7�37�+/�(+�I���		"�	8�	8�	8�
"�	"�	"�H��M�M�2��2�2�2� �
"�
"�
"�
"�	"�	"rc���tjdkrtj��}n;tjj}|�(tjj}|�|�d��td�tdd��D����}d|fz}d}||�
d��z
}	|�|��|�|�d	���n#t$rYnwxYw|�|d
��}tjd|�d���}|�|�
��}|�ddd|��}|�||gdd���|�||d���dS)Nr�z#cannot get regrtest worker encodingc3�K�|]}|V��dSrr/)rh�chs  rriz8ArgsTestCase.test_worker_decode_error.<locals>.<genexpr>�s"����6�6���6�6�6�6�6�6r��snonascii:%s
z*Assertion failed: tstate_is_alive(tstate)
z	utf-16-lez can decode non-ASCII bytes�backslashreplacez�
            import sys
            import unittest

            class Tests(unittest.TestCase):
                def test_pass(self):
                    pass

            # bytes which cannot be decoded from UTF-8
            corrupted_output = ze
            sys.stdout.buffer.write(corrupted_output)
            sys.stdout.buffer.flush()
        rr�rErZTrF)rur�F)rW)r�r��locale�getencodingr�rE�
__stdout__rN�bytesr��encode�decode�UnicodeDecodeErrorrGrHrQr�r�ra)	r"rE�nonascii�corrupted_output�assertion_failed�
expected_linerOrvrXs	         r�test_worker_decode_errorz%ArgsTestCase.test_worker_decode_error�s����<�7�"�"��)�+�+�H�H��z�*�H����>�2���#��M�M�"G�H�H�H��6�6�e�C��o�o�6�6�6�6�6��+�x�k�9��I���,�3�3�K�@�@�@��	D��#�#�H�-�-�-�
�M�M�X�B�B�B�C�C�C�C��"�	�	�	��D�	����
)�/�/��:L�M�M�
��� �!1� � � �
�
���#�#��#�.�.����� 4�d�E�8�L�L���!�!�&�8�*�+/�()�	"�	+�	+�	+�	
����
�U��;�;�;�;�;s�(C�
C#�"C#c���tjd��}|�|���}|�ddd|t���}|�||g|gdt
ddd	���
��dS)NaX
            import doctest
            import sys
            from test import support

            def my_function():
                """
                Pass:

                >>> 1 + 1
                2

                Failure:

                >>> 2 + 3
                23
                >>> 1 + 1
                11

                Skipped test (ignored):

                >>> id(1.0)  # doctest: +SKIP
                7948648
                """

            def load_tests(loader, tests, pattern):
                tests.addTest(doctest.DocTestSuite())
                return tests
        rr�rErZr3TrFrr|r%r�s    r�test_doctestzArgsTestCase.test_doctest�s����� �
�
��:�#�#��#�.�.����� 4�d�E�8�):� �<�<���!�!�&�8�*�*2��+/�(1�!�Q��(:�(:�	"�	<�	<�	<�	<�	<rc���
�tjd���
�
�fd�tdd��D��}d}dd|��g}|r%|�dt	|������|�|���j|�}tj|��d	�td
��D��}d|��}d}tj
||tj�
��}	��|	|gt	|��z��dS)Na 
            import random
            import unittest

            class RandomSeedTest(unittest.TestCase):
                def test_randint(self):
                    numbers = [random.randint(0, 1000) for _ in range(10)]
                    print(f"Random numbers: {numbers}")
        c�D��g|]}��d|��������S)r7r{r�rs  ��rr�z3ArgsTestCase._check_random_seed.<locals>.<listcomp>�sE���)�)�)���!�!�'8�Q�'8�'8�t�!�D�D�)�)�)rrFriJ�3rcr4r�c�8�g|]}tjdd����S)rr�)r2�randint)rhr�s  rr�z3ArgsTestCase._check_random_seed.<locals>.<listcomp>
s$��>�>�>�q�6�>�!�T�*�*�>�>�>rrzRandom numbers: z^Random numbers: .*$r�)
rGrHr�r�r�r�r�r2�seedrS�findallrUr4)r"rWr�rkr^rX�numbersr�rW�matchesrOs`         @r�_check_random_seedzArgsTestCase._check_random_seed�s2������ �
�
��)�)�)�)�)���3�-�-�)�)�)��"���9�K�9�9�:���	*��J�J�(�C��J�J�(�(�)�)�)��
�
�5��������%����K� � � �?�>�E�"�I�I�>�>�>��/�g�/�/��'���*�U�F�"�,�?�?�?������8�*�s�5�z�z�"9�:�:�:�:�:rc�2�|�d���dSrg�rr�s r�test_random_seedzArgsTestCase.test_random_seeds�����E��2�2�2�2�2rc�2�|�d���dSrjrr�s r�test_random_seed_workersz%ArgsTestCase.test_random_seed_workerss�����D��1�1�1�1�1rc����tjd�����fd�td��D��}tjddg}tj|��}�jd|dg|�R�}��||t|��d�	��dS)
Nz�
            import sys
            import unittest

            class WorkerTests(unittest.TestCase):
                def test_dev_mode(self):
                    self.assertTrue(sys.flags.dev_mode)
        c�<��g|]}��������Sr�r�r�s  ��rr�z4ArgsTestCase.test_python_command.<locals>.<listcomp> s*���?�?�?���!�!�t�!�,�,�?�?�?rrr
rrz-j0T�r�ru)
rGrHr�r�r��shlexr�r�r�r�)r"r�rrXrOs`   @r�test_python_commandz ArgsTestCase.test_python_commands������� �
�
��@�?�?�?�?�e�A�h�h�?�?�?���n�d�E�2�
��Z�
�+�+�
����
�J��F��F�F�F���!�!�&�%�(+�E�
�
�T�	"�	C�	C�	C�	C�	Crc��tj�tj�t��dd��}d�dD��}ddddd	d
|zg|�}|�|��}|�||d���dS)
N�regrtestdata�import_from_testsc��g|]}d|����S)r9r/�rhr3s  rr�z2ArgsTestCase.test_unload_tests.<locals>.<listcomp>:s!��E�E�E�T�(�$�(�(�E�E�Er)�a�b�cr�r�r�r�r�r�rr)r�r�r�r<r=r�r�)r"r�r�rrXs     r�test_unload_testszArgsTestCase.test_unload_tests,s����'�,�,�r�w���x�8�8�-�/B�D�D��E�E�_�E�E�E���t�U�D�&�.�7�2J�S�U�S������&�&���!�!�&�%�q�!�9�9�9�9�9rc��tjd��}|�|���}tjdd|d|j��|g}t
j|tjtj	d���}|�
|jd|��dS)	Na)
            import sys
            import unittest
            from test import support
            try:
                from _testinternalcapi import get_config
            except ImportError:
                get_config = None

            # WASI/WASM buildbots don't use -E option
            use_environment = (support.is_emscripten or support.is_wasi)

            class WorkerTests(unittest.TestCase):
                @unittest.skipUnless(get_config is None, 'need get_config()')
                def test_config(self):
                    config = get_config()['config']
                    # -u option
                    self.assertEqual(config['buffered_stdio'], 0)
                    # -W default option
                    self.assertTrue(config['warnoptions'], ['default'])
                    # -bb option
                    self.assertTrue(config['bytes_warning'], 2)
                    # -E option
                    self.assertTrue(config['use_environment'], use_environment)

                def test_python_opts(self):
                    # -u option
                    self.assertTrue(sys.__stdout__.write_through)
                    self.assertTrue(sys.__stderr__.write_through)

                    # -W default option
                    self.assertTrue(sys.warnoptions, ['default'])

                    # -bb option
                    self.assertEqual(sys.flags.bytes_warning, 2)

                    # -E option
                    self.assertEqual(not sys.flags.ignore_environment,
                                     use_environment)
        rr�r�z
--testdir=T)r�r�r�r)rGrHrQr�r�r@r�r�r�r�r4r�)r"r�rOrvr^r�s      r�check_add_python_optsz"ArgsTestCase.check_add_python_opts?s�����' �'
�'
��P�#�#��#�.�.���~��V�V�-�D�O�-�-�����~�c�%/�_�%/�%6�#'�)�)�)��	
�����!�T�2�2�2�2�2rc��dD]E}|�|���5|�|��ddd��n#1swxYwY�FdS)N)rrr')r)r)r"r(s  r�test_add_python_optsz!ArgsTestCase.test_add_python_optsvs���-�	0�	0�C����#��&�&�
0�
0��*�*�3�/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0s�=�A	�A	z(raising SIGSEGV on Android is unreliablec�8�	ddlm}n%#t$r|�d��YnwxYwt	jd��}|�|���}ttj	��}d}tj||��|�d|t|���}|�|||gdd	�
��tjs4t!t"j��}|�d|�d�|��|�|d
d	d���dS)Nr)�_sigsegvzneed faulthandler._sigsegvak
            import faulthandler
            import unittest
            from test import support

            class CrashTests(unittest.TestCase):
                def test_crash(self):
                    print("just before crash!", flush=True)

                    with support.SuppressCrashReport():
                        faulthandler._sigsegv(True)
        rz
handle_segv=0rZr5T)rpr�ruz
Exit code z
 (SIGSEGV)zjust before crash!F)r`rW)r�r�ImportErrorrNrGrHrQr�r�r�r�set_sanitizer_env_varr�r&r��
MS_WINDOWSrm�signal�SIGSEGVr ra)r"rrOrvrnr�rXr�s        r�test_worker_output_on_failurez*ArgsTestCase.test_worker_output_on_failure|sY��	8�-�-�-�-�-�-�-���	8�	8�	8��M�M�6�7�7�7�7�7�	8������ �
�
���#�#��#�.�.���2�:���� ���%�c�6�2�2�2�����x�):�$'� �)�)��	
�!�!�&�(�*2��()�D�	"�	:�	:�	:��!�	E��F�N�+�+�+�H��M�M�;�x�;�;�;�V�D�D�D����� 4�4�u��M�M�M�M�Ms�	�+�+c��tjd��}|�|���}|�d|��}|�||d���|�d|��tjrJ|�ddd	d|��}|�||dd
���|�d|��dSdS)Nz�
            import unittest
            from test import support

            class VerboseTests(unittest.TestCase):
                def test_pass(self):
                    print("SPAM SPAM SPAM")
        rrQrFrzSPAM SPAM SPAMr�z3:3rZTr	)rGrHrQr�r��assertNotInrrr�s    rrSzArgsTestCase.test_verbose3�s����� �
�
���#�#��#�.�.������h�7�7���!�!�&�(�!�!�<�<�<����)�6�2�2�2���	7��^�^�D�%���h�O�O�F��%�%�f�h�a�$�%�O�O�O����-�v�6�6�6�6�6�		7�	7rN)Hr*r+r,r-r�rr!r(r0r7r{rGr]rNr�r=r�rar
rrrr6rer�rkrmrorsrx�cpython_onlyr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��skipIf�is_wasir�r�r�rrrrrrr�
is_androidr rSr/rrrrvs���������.�.�.�8�8�8�(+�+�+�9�9�9�"+�+�+�>36�36�36�j/>�/>�/>�b=�=�=�'�'�'�/�/�/�&'�'�'�=�=�=� 0� 0� 0�D5:�)�)�)�)�)�0�X���)�+?�@�@�E�t�E�E�E�A�@�E�1�1�1�0�0�0��X���)�+?�@�@�&�&�A�@�&�P�X���)�+?�@�@�2�2�A�@�2� � � �;�;�;�4
��:�:���:�D�D�D� *� *� *�D'*�'*�'*�R+�+�+�<9�9�9�,)*�)*�)*�V+�+�+�.+�+�+�.+�+�+�,+�+�+�,+�+�+�,+�+�+�,+�+�+�*+�+�+�,:�:�:� A�A�A�:�:�:�":�:�:�0
��+�+���+�6N�N�N�8!A�!A�!A�F:�:�:�B'0�'0�'0�R,�,�,�
9�
9�
9��X�_�W�_�E�G�G�"�"�G�G�"�4-<�-<�-<�^%<�%<�%<�N ;�d� ;� ;� ;� ;�D3�3�3�2�2�2�C�C�C�*:�:�:�&53�53�53�n0�0�0��X�_�W�'�?�A�A�"N�"N�A�A�"N�H7�7�7�7�7rrc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�	TestUtilsc�&�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�tjd	��d
��|�tjd��d��|�tjd
��d��|�tjd��d��|�tjd��d��|�tjd��d��dS)Nrz0 msg��&�.>z1 msg{�G�z�?z10 msg�?z1.5 secrFz1.0 sec�xz2 min�yz2 min 1 seci0*z3 houri�*z3 hour 2 mini1*z3 hour 1 sec)r4r�format_durationr�s r�test_format_durationzTestUtils.test_format_duration�s�������.�q�1�1��	!�	!�	!�����.�t�4�4��	!�	!�	!�����.�u�5�5� �	"�	"�	"�����.�s�3�3�"�	$�	$�	$�����.�q�1�1�"�	$�	$�	$�����.�v�6�6� �	"�	"�	"�����.�z�:�:�&�	(�	(�	(�����.�x�8�8�!�	#�	#�	#�����.�/E�F�F�'�	)�	)�	)�����.�|�<�<�'�	)�	)�	)�	)�	)rc�V�t}|�|d��d��|�|dd���d��|�|dd���d��|�|d	d�����|�|d
d�����dS)Nz0test_access (test.test_os.FileTests.test_access)�test_accessz(setUpClass (test.test_os.ChownFileTests)T)�is_error�ChownFileTestsz6test_success (test.test_bug.ExampleTests.test_success)rzsetUpModule (test.test_x)z!tearDownModule (test.test_module))r
r4r�)r"�	normalizes  r�test_normalize_test_namez"TestUtils.test_normalize_test_name�s���'�	������#U�V�V�&�	(�	(�	(������#M�X\�]�]�]�)�	+�	+�	+������#[�fj�k�k�k�'�	)�	)�	)����)�)�$?�$�O�O�O�P�P�P����)�)�$G�RV�W�W�W�X�X�X�X�Xrc���ttj��dfttj��dfddfD].\}}|�tj|��||���/dS)N�SIGINTr)l�STATUS_ACCESS_VIOLATION)l��STATUS_STACK_OVERFLOW)rmrr5rr4r�get_signal_name)r"r�r�s   r�test_get_signal_namezTestUtils.test_get_signal_name�s~���&�-� � �
 �(�+��&�.�!�!�
!�9�-�3�1�	#
�	R�	R��H�h�
���U�2�8�<�<�h��Q�Q�Q�Q�
	R�	Rrc��tj}tj}|�|d��d��|�|d��d��|�||��d��|�|t	d�|D������d��|�|g|�d�R��d	��dS)
N)r�zresources (1): network)r*�decimalr�z$resources (3): audio,decimal,networkzresources: allc3�&K�|]}|dk�|V��
dS)rNr/rs  rriz2TestUtils.test_format_resources.<locals>.<genexpr>�s3����#5�#5�D�&*�e�m�m�$(�&3�m�m�m�#5�#5rzresources: all,-cpur�zresources: all,tzdata)r�format_resourcesr�r4�tuple)r"r=r�s   r�test_format_resourceszTestUtils.test_format_resources�s*�� �1���+�
������\�*�*�$�	&�	&�	&�	
�����<�=�=�2�	4�	4�	4�	
�����]�+�+��	�	�	�	
�����U�#5�#5�M�#5�#5�#5�5�5�
6�
6�!�	#�	#�	#�	
�����7�}�7�h�7�7�8�8�#�	%�	%�	%�	%�	%rc��Gd�d��}t��}|�t|��|d��}|d��}|d��}tjtdd��5tg��|�t
|����|�t
|����td��|�t
|����|�t
|����t|���dfg��|�t
|����|�t
|����td	g��|�t
|����|�t
|����|�t
|����td
g��|�t
|����|�t
|����tdg��|�t
|����tdg��|�t
|����td
g��|�t
|����|�t
|����|�t
|����t|���df|���dfg��|�t
|����|�t
|����|�t
|����tddg��|�t
|����|�t
|����ddd��n#1swxYwYtjtdd��5t|���dfg��|�t
|����|�t
|����tdg��|�t
|����|�t
|����|�t
|����tdg��|�t
|����|�t
|����tdg��|�t
|����tdg��|�t
|����tdg��|�t
|����|�t
|����|�t
|����t|���df|���dfg��|�t
|����|�t
|����|�t
|����tddg��|�t
|����|�t
|����ddd��n#1swxYwYtjtdd��5tddg��|�t
|����|�t
|����|�t
|����tddg��|�t
|����|�t
|����|�t
|����ddd��dS#1swxYwYdS)Nc��eZdZd�Zd�ZdS)�'TestUtils.test_match_test.<locals>.Testc��||_dSr��test_id)r"rEs  r�__init__z0TestUtils.test_match_test.<locals>.Test.__init__�s
��&����rc��|jSrrDr�s r�idz*TestUtils.test_match_test.<locals>.Test.id�s
���|�#rN)r*r+r,rFrHr/rr�TestrB�s2������
'�
'�
'�
$�
$�
$�
$�
$rrIz"test.test_os.FileTests.test_accessz'test.test_os.Win32ErrorTests.test_chdirz#test.test_shutil.TestCopy.test_copy�_test_matchersr/T)�test_osT)�test_*T)�	filetestsT)�	FileTestsT)�*test_os.*.test_*T)r/T)�	DONTMATCHTF)rKF)rLF)rMF)rNF)rOF)r/F)rPF)�*test_osF)rQT)	r	r�r
r�	swap_attrr:rrHri)r"rI�patternsr/�
test_chdir�	test_copys      r�test_match_testzTestUtils.test_match_test�sO��	$�	$�	$�	$�	$�	$�	$�	$�#�$�$�������2�2�2��d�?�@�@���T�C�D�D�
��D�>�?�?�	��
�w�(8�"�
=�
=�/	5�/	5��B�����O�O�J�{�3�3�4�4�4��O�O�J�z�2�2�3�3�3�
�D�!�!�!��O�O�J�{�3�3�4�4�4��O�O�J�z�2�2�3�3�3�
�k�n�n�.�.��5�6�7�7�7��O�O�J�{�3�3�4�4�4����Z�
�3�3�4�4�4�
�.�/�0�0�0��O�O�J�{�3�3�4�4�4��O�O�J�z�2�2�3�3�3����Z�	�2�2�3�3�3�
�-�.�/�/�/��O�O�J�{�3�3�4�4�4��O�O�J�z�2�2�3�3�3�
�0�1�2�2�2����Z��4�4�5�5�5��0�1�2�2�2��O�O�J�{�3�3�4�4�4�
�8�9�:�:�:��O�O�J�{�3�3�4�4�4��O�O�J�z�2�2�3�3�3����Z�	�2�2�3�3�3�
�k�n�n�.�.��5�
�
�
����7N�O�P�P�P��O�O�J�{�3�3�4�4�4��O�O�J�z�2�2�3�3�3����Z�	�2�2�3�3�3��2�4G�H�I�I�I��O�O�J�{�3�3�4�4�4����Z�
�3�3�4�4�4�_/	5�/	5�/	5�/	5�/	5�/	5�/	5�/	5�/	5�/	5�/	5����/	5�/	5�/	5�/	5�d�
�w�(8�"�
=�
=�%	4�%	4��k�n�n�.�.��6�7�8�8�8����Z��4�4�5�5�5��O�O�J�z�2�2�3�3�3�
�/�0�1�1�1����Z��4�4�5�5�5����Z�
�3�3�4�4�4��O�O�J�y�1�1�2�2�2�
�.�/�0�0�0����Z��4�4�5�5�5����Z�
�3�3�4�4�4�
�1�2�3�3�3��O�O�J�{�3�3�4�4�4��1�2�3�3�3����Z��4�4�5�5�5�
�9�:�;�;�;����Z��4�4�5�5�5����Z�
�3�3�4�4�4��O�O�J�y�1�1�2�2�2�
�k�n�n�.�.��6������%�8P�Q�R�R�R����Z��4�4�5�5�5����Z�
�3�3�4�4�4��O�O�J�y�1�1�2�2�2��3�5I�J�K�K�K����Z��4�4�5�5�5��O�O�J�z�2�2�3�3�3�K%	4�%	4�%	4�%	4�%	4�%	4�%	4�%	4�%	4�%	4�%	4����%	4�%	4�%	4�%	4�P�
�w�(8�"�
=�
=�		4�		4��0�2G�H�I�I�I��O�O�J�{�3�3�4�4�4����Z�
�3�3�4�4�4��O�O�J�y�1�1�2�2�2��/�1G�H�I�I�I����Z��4�4�5�5�5��O�O�J�z�2�2�3�3�3����Z�	�2�2�3�3�3�		4�		4�		4�		4�		4�		4�		4�		4�		4�		4�		4�		4����		4�		4�		4�		4�		4�		4s9�3N'P&�&P*�-P*�L]�]� ]�?C/a;�;a?�a?N)r*r+r,r-r3r9r?rVr/rrr(r(�sj������)�)�)�,	Y�	Y�	Y�R�R�R�%�%�%�(t4�t4�t4�t4�t4rr(�__main__)?r-r��dataclassesr�r�r��os.pathr�r�r2rSr
rr�r�rLr>rGr
r�r�test.supportr�test.libregrtestrrrr�test.libregrtest.filterr	r
r�test.libregrtest.resultr�test.libregrtest.utilsr
�has_subprocess_support�SkipTestr�r�r<r=rr��normpathrjr&r�r-r�rErHrD�TestCaser�	dataclassr2r8r�r�rr(r*r/rr�<module>rds�����������������	�	�	�	�
�
�
�
���������
�
�
�
�	�	�	�	�����
�
�
�
�����
�
�
�
�����������������������"�"�"�"�"�"�$�$�$�$�$�$�!�!�!�!�!�!�"�"�"�"�"�"�"�"�"�"�"�"�P�P�P�P�P�P�P�P�P�P�-�-�-�-�-�-�6�6�6�6�6�6��%�?�
�(�
�=�
>�
>�>�
�7�<�<������1�1�4��>�>��
�7�?�?�2�7�+�+�H�5�5�6�6��
E�
�����������"�8�?�$�	�	��a3�a3�a3�a3�a3��)�a3�a3�a3�H
���T�"�"�"��������#�"��J�J�J�J�J�8�$�J�J�J�Z@�@�@�@�@�|�@�@�@�0jK�jK�jK�jK�jK�|�jK�jK�jK�ZA7�A7�A7�A7�A7�<�A7�A7�A7�H*s4�s4�s4�s4�s4��!�s4�s4�s4�l�z����H�M�O�O�O�O�O��r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists