�
*�Kg}h � �( � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlmZ d dl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlm Z d dl!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d d l(m*Z* d
Z+ G d� d� � Z,dd
�Z-dS )� N)�_parse_args)� findtests�runtest�get_abs_module� is_failed�STDTESTS�NOTTESTS�PROGRESS_MIN_TIME�Passed�Failed�
EnvChanged�Skipped�ResourceDenied�Interrupted�
ChildError� DidNotRun)�setup_tests)�setup_pgo_tests)�removepy�count�format_duration� printlist)�support)� os_helper)�threading_helperg ^@c � � e Zd ZdZd� Zd� Zdd�Zd d�Zd� Zd � Z d
� Z
d� Zd� Zd
� Z
d� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd!d�Zd� Zd� ZdS )"�Regrtestaa Execute a test suite.
This also parses command-line options and modifies its behavior
accordingly.
tests -- a list of strings containing test names (optional)
testdir -- the directory in which to look for tests (optional)
Users other than the Python test suite will certainly want to
specify testdir; if it's omitted, the directory containing the
Python test suite is searched for.
If the tests argument is omitted, the tests listed on the
command-line will be used. If that's empty, too, then all *.py
files beginning with test_ will be used.
The other default arguments (verbose, quiet, exclude,
single, randomize, use_resources, trace, coverdir,
print_slow, and random_seed) allow programmers calling main()
directly to set the values that would normally be set by flags
on the command line.
c �x � d | _ g | _ g | _ g | _ g | _ g | _ g | _ g | _ g | _ g | _ g | _
d | _ d| _ g | _
d | _ t j � � | _ d| _ d| _ d | _ d | _ d | _ d | _ d | _ d | _ d S )NF� � )�ns�tests�selected�good�bad�skipped�resource_denieds�environment_changed�run_no_tests�
need_rerun�rerun�first_result�interrupted�
test_times�tracer�time� monotonic�
start_time�
test_count�test_count_width�next_single_test�next_single_filename�
testsuite_xml�win_load_tracker�tmp_dir�worker_test_name��selfs �,/usr/lib/python3.11/test/libregrtest/main.py�__init__zRegrtest.__init__7 s� � ���� ��
���
� �� ������� "���#%�� ���������
� ��� ��� ��� ��� �.�*�*������ !��� !%���$(��!� "��� !%������ $����� c � � t | j � � t | j � � z t | j � � z t | j � � z t | j � � z t | j � � z S �N)�setr$ r% r& |