Your IP : 216.73.216.213


Current Path : /opt/alt/python310/lib64/python3.10/test/support/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/support/__pycache__/__init__.cpython-310.opt-2.pyc

o

0�i��@s	edkr	ed��ddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZzddlmZWneyNdZYnwgd�ZdZejd	krbd
ejvrbdZnejdkridZd
ZdZdZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�dej�Zdd�Zdd�Z dd�Z!dZ"dZ#da$da%dZ&d Z'da(d!d"�Z)d#d$�Z*d%d&�Z+d'd(�Z,d)d*�Z-�dd+d,�Z.�dd.d/�Z/d0d1�Z0d2d3�Z1d4d5�Z2d6d7�Z3d d d d8�d9d:�Z4�dd d d d8�d;d<�Z5d=d>�Z6d?Z7d@Z8e�9e:�;dA��<dB�dC�Z=�ddEdF�Z>�ddHdI�Z?�ddKdL�Z@�ddNdO�ZAe�9edP�ZBej�<dQ�ZCeDedR�ZEejdSv�rAeE�r>dTndUZFndZFdVZGd ZHd ZIejJ�KejJ�LeM��ZNejJ�KeN�ZOejJ�PeOdW�ZQdXdY�ZR�ddZd[�ZSd\d]�ZT�dddd_�d`da�ZUdbdc�ZVejWddde��ZXdfdg�ZYdhdi�ZZdjdk�Z[dldm�Z\ejWdndo��Z]dpdq�Z^drZ_dsZ`eDedt��r�due_Z_dvZ`e_dwZadxdy�Zbdzd{�Zcd|Zdd}Zed~d�Zfd d��d�d��ZgejWd�d���Zhd�d��Zid�Zjd�ejZkd�ekZld�ekZmejnZod�d��ZpGd�d��d��Zq�dd�d��Zrd�d��ZsGd�d��d��Ztd�d��Zud�d��Zvd�d��Zw�dd�d��Zxd�d��Zyd�d��Zzd�d��Z{d�d��Z|d�d��Z}d�d��Z~dada�da�d�d��Z�d�d��Z��dd�d��Z�d�d��Z�d�d��Z�d�d��Z�ez��oZejd	k�oZe��d��Z�e�j�du�oce�Z�e�9e�d��Z��dd�d��Z�d�d��Z�d a�d�d��Z�ejWd�d���Z�ejWd�d���Z�d�dÄZ�d�dńZ�Gd�dDŽd�e��Z�da�d�dɄZ�Gd�d˄d˃Z�d�d̈́Z�d�dϜd�dфZ�	�	ΐdd�dӄZ��dd�dՄZ�Gd�dׄd׃Z�d�dلZ�ejWd�dۄ�Z�d�d݄Z��dd�d߄Z�gfd�d�Z�da�d�d�Z�ejWd�d��Z�Gd�d�d�Z�d�d�Z�Gd�d�d�Z�e��Z�Gd�d�d�Z�e��Z�ej�Gd�d�d��Z�e��Z�ej�Gd�d�d��Z�e��Z�d�d�Z�ej�j�Z�d�d��Z�Gd�d��d��Z�dd��d�d��Z�d�d��Z�ejW�dd�d���Z��d�d�Z��de��de��de�f�d�d�Z��de��ddf�d�d	�Z�ejW�d
�d��Z��de�e�f�d�d
�Z�dS(ztest.supportz.support must be imported from the test package�N�)�get_test_runner)�unicode_legacy_string)B�
PIPE_MAX_SIZE�verbose�
max_memuse�
use_resources�failfast�Error�
TestFailed�
TestDidNotRun�ResourceDenied�record_original_stdout�get_original_stdout�captured_stdout�captured_stdin�captured_stderr�is_resource_enabled�requires�requires_freebsd_version�requires_linux_version�requires_mac_ver�check_syntax_error�BasicTestRunner�run_unittest�run_doctest�
requires_gzip�requires_bz2�
requires_lzma�
bigmemtest�bigaddrspacetest�cpython_only�
get_attribute�requires_IEEE_754�
requires_zlib�anticipate_failure�load_package_tests�detect_api_mismatch�check__all__�skip_if_buggy_ucrt_strfptime�check_disallow_instantiation�check_sanitizer�skip_if_sanitizer�	is_jython�
is_android�check_impl_detail�
unix_shell�setswitchinterval�open_urlresource�
reap_children�run_with_locale�	swap_item�findfile�	swap_attr�Matcher�set_memlimit�SuppressCrashReport�sortdict�run_with_tz�PGO�missing_compiler_executable�	ALWAYS_EQ�NEVER_EQ�LARGEST�SMALLEST�LOOPBACK_TIMEOUT�INTERNET_TIMEOUT�
SHORT_TIMEOUT�LONG_TIMEOUTg@�win32z
 32 bit (ARM)�
�vxworksgN@g>@g�r@c@�eZdZdS)r
N��__name__�
__module__�__qualname__�rOrO�</opt/alt/python310/lib64/python3.10/test/support/__init__.pyr
g�r
c@rJ)rNrKrOrOrOrPrjrQrcs&eZdZ	�fdd�Zdd�Z�ZS)�TestFailedWithDetailscs&||_||_||_t��|||�dS�N)�msg�errors�failures�super�__init__)�selfrTrUrV��	__class__rOrPrXoszTestFailedWithDetails.__init__cCs|jSrS)rT�rYrOrOrP�__str__uszTestFailedWithDetails.__str__)rLrMrNrXr]�
__classcell__rOrOrZrPrRmsrRc@rJ)rNrKrOrOrOrPrxrQrc@rJ)r
NrKrOrOrOrPr
{rQr
cCs	|rtjSdd�S)NcS�|SrSrO��frOrOrP�<lambda>�sz$anticipate_failure.<locals>.<lambda>)�unittestZexpectedFailure)Z	conditionrOrOrPr%�sr%cCsH	|durd}tj�tj�tj�t���}|j|||d�}|�|�|S)Nztest*)Z	start_dirZ
top_level_dir�pattern)�os�path�dirname�__file__ZdiscoverZaddTests)Zpkg_dir�loaderZstandard_testsrdZtop_dirZ
package_testsrOrOrPr&�s
���
r&cCs4	zt||�}W|Styt�d||f��w)Nzobject %r has no attribute %r)�getattr�AttributeErrorrc�SkipTest)�obj�nameZ	attributerOrOrPr"�s��r"FcCs|adSrS)�_original_stdout)�stdoutrOrOrPr�srcCs
tptjSrS)ro�sysrprOrOrOrPr��
rc
Gstz||�WSty9}z(tdkr$td|jj|f�td|j|f�t�|tj�||�WYd}~Sd}~ww)N�z%s: %szre-run %s%r)	�OSErrorr�printr[rLre�chmod�stat�S_IRWXU)rf�func�args�errrOrOrP�
_force_run�s
��r|c
sttd�rtjSddl}d}tj�d�r|��rd}n�tj�d�rpddl�ddl�d}d}G�fdd�d�j	�}�j
j}|��}|sF��
��|�}�j��}|�||��|���|���|��}	|	sf��
��t|j|@�sod}nHtjd	kr�dd
lm}
m�m}m	}ddlm}
|
�|
d��}|��dkr�d
}n!G�fdd�d|�}|�}||�}|�|�dks�|�|�dkr�d}|s�zddlm}|�}|� �|�!�|�"�Wn-t#y�}z!t$|�}t%|�dkr�|dd�d}d�&t'|�j(|�}WYd}~nd}~ww|t_)|t_tjS)N�resultr�winz(gui is not available on Windows IoT Corercs.eZdZd�jjfd�jjfd�jjfgZdS)z*_is_gui_available.<locals>.USEROBJECTFLAGSZfInheritZ	fReserved�dwFlagsN)rLrMrN�wintypesZBOOL�DWORD�_fields_rO)�ctypesrOrP�USEROBJECTFLAGS�s



�r�z,gui not available (WSF_VISIBLE flag not set)�darwin)�cdll�c_int�pointer�	Structure)�find_libraryZApplicationServicesz0gui tests cannot run without OS X window managercseZdZd�fd�fgZdS)z._is_gui_available.<locals>.ProcessSerialNumberZ
highLongOfPSNZlowLongOfPSNN)rLrMrNr�rO)r�rOrP�ProcessSerialNumber�s�r�z#cannot run without OS X gui process)�Tk�2z [...]zTk unavailable due to {}: {})*�hasattr�_is_gui_availabler}�platformrq�
startswithZwin32_is_iotr�Zctypes.wintypesr�ZwindllZuser32ZGetProcessWindowStationZWinErrorr�r�ZGetUserObjectInformationWZbyrefZsizeof�boolrr�r�r�Zctypes.utilr�ZLoadLibraryZCGMainDisplayIDZGetCurrentProcessZSetFrontProcessZtkinterr�Zwithdraw�updateZdestroy�	Exception�str�len�format�typerL�reason)r�r�Z	UOI_FLAGSZWSF_VISIBLEr��dll�hZuofZneeded�resr�r�r�r�Zapp_servicesr�ZpsnZpsn_pr��root�eZ
err_stringrO)r�r�rPr��sx

��
���r�cCs	tdup|tvSrS)r��resourcerOrOrPrsrcCsB	t|�s|dur
d|}t|��|dkrt�sttj��dSdS)Nz"Use of the %r resource not enabled�gui)rr
r�r�)r�rTrOrOrPrs
�r�LinuxcCsXddl}|��|krdS|���dd�d}zttt|�d���WSty+YdSw)Nr�-r�.)r��system�release�split�tuple�map�int�
ValueError)�sysnamer��version_txtrOrOrP�_get_kernel_version(s�r�cCs�	ddl}d�tt|��}|���dd�d}|��|kr:zttt|�d���}Wnt	y4d}Ynw||k}nd}t
�||�d|�d|���S)Nrr�r�rFz	 version z or higher required, not )r��joinr�r�r�r�r�r�r�r�rc�skipIf)r��min_versionr��min_version_txtr��version�skiprOrOrP�_requires_unix_version2s$�
��r�cG�	td|�S)NZFreeBSD�r��r�rOrOrPrM�
rcGr�)Nr�r�r�rOrOrPrVr�rc�	�fdd�}|S)Ncs"t�����fdd��}�|_|S)Ncs�tjdkr:ddl}|��d}zttt|�d���}Wn	ty$Ynw|�kr:d�tt	���}t
�d||f���|i|��S)Nr�rr�z&Mac OS X %s or higher required, not %s)rqr�Zmac_verr�r�r�r�r�r�r�rcrl)rz�kwr�r�r�r�)ryr�rOrP�wrappergs 
���z4requires_mac_ver.<locals>.decorator.<locals>.wrapper)�	functools�wrapsr��ryr�r��ryrP�	decoratorfsz#requires_mac_ver.<locals>.decoratorrO)r�r�rOr�rPr_sr��address�memory�ubcCsz	|s|s|std��t�d�pd}t�d�pd}d|vp d|v}d|vp(d|v}d|vp0d	|v}|r5|p<|o8|p<|o<|S)
Nz3At least one of address, memory, or ub must be TrueZCFLAGS�ZCONFIG_ARGSz-fsanitize=memoryz--with-memory-sanitizerz-fsanitize=addressz-fsanitize=undefinedz#--with-undefined-behavior-sanitizer)r��	sysconfig�get_config_var)r�r�r�Z_cflagsZ_config_argsZmemory_sanitizerZaddress_sanitizerZub_sanitizerrOrOrPr+|s&�����r+cCs$	|sd}t|||d�}t�||�S)Nz"not working with sanitizers activer�)r+rcr�)r�r�r�r�r�rOrOrPr,�s
r,cs	t����fdd��}|S)Nc
sFz
�|i|��WdSty"}zdt|�vrt�d���d}~ww)NZCERTIFICATE_VERIFY_FAILEDz.system does not contain necessary certificates)rtr�rcrl)rz�kwargsr�r`rOrP�dec�s
��z&system_must_validate_cert.<locals>.dec)r�r�)rar�rOr`rP�system_must_validate_cert�sr�i@iZdoubleZIEEEztest requires IEEE 754 doubles�
requires zlibcC�0zddl}Wntyd}Ynwt�||�S�Nr)�zlib�ImportErrorrc�
skipUnless)r�r�rOrOrPr$���r$�
requires gzipcCr�r�)�gzipr�rcr�)r�r�rOrOrPr�r�r�requires bz2cCr�r�)�bz2r�rcr�)r�r�rOrOrPr�r�r�
requires lzmacCr�r�)�lzmar�rcr�)r�r�rOrOrPr�r�rzrequires legacy Unicode C API�javaZgetandroidapilevel)rGrIz/system/bin/shz/bin/shzhttp://www.pythontest.net�datacCsZ	tjdkrdSddl}d}|�d�}|��\}}t|�|d��t|�td|�dS)Nr�rz NOTICE z� may generate "malloc can't allocate region"
warnings on macOS systems. This behavior is known. Do not
report a bug unless tests are also failing. See bpo-40928.r�)rqr��shutil�get_terminal_sizeru�center)Z	test_namer�rTZdetailZpadding�_rOrOrP�darwin_malloc_err_warning�s

r�cCsd	tj�|�r	|S|durtj�||�}tgtj}|D]}tj�||�}tj�|�r/|Sq|SrS)rerf�isabsr��
TEST_HOME_DIRrq�exists)�filenameZsubdirrf�dn�fnrOrOrPr6sr6cCs.	t|���}dd�|D�}d�|�}d|S)NcSsg|]}d|�qS)z%r: %rrO)�.0ZpairrOrOrP�
<listcomp>$�zsortdict.<locals>.<listcomp>z, z{%s})�sorted�itemsr�)�dictr�Z	reprpairsZ
withcommasrOrOrPr;!s

r;r�)�lineno�offsetcCs�|�t|��}t|dd�Wd�n1swY|j}|�|j�|dur0|�|j|�|�|j�|durC|�|j|�dSdS)Nz
<test string>�exec)�assertRaisesRegex�SyntaxError�compileZ	exceptionZassertIsNotNoner��assertEqualr�)�testcaseZ	statementZerrtextr�r��cmr{rOrOrPr(s��rc
s�ddl}ddl}ddlm}zddl}Wntyd}Ynw��dd��|j�|�d�	d�d}t
j�t
|�}���fdd	�}t
j�|�rV||�}	|	durR|	S||�td
�tretd|t�d�|j��}
|rr|
j�d
�|
j|td�}	|r�|	j�d�dkr�|j|	d�}	z,t|d��}|	��}|r�|�|�|	��}|s�Wd�n1s�wYW|	��n|	��w||�}	|	dur�|	Std|��)Nrr)�unlink�checkrs�/���csDt|g��Ri���}�dur|S�|�r|�d�|S|��dSr�)�open�seek�close)r�ra�rzr�r�rOrP�check_valid_fileBs
z*open_urlresource.<locals>.check_valid_fileZurlfetchz	fetching %s ...��file)zAccept-Encodingr���timeoutzContent-Encodingr�)Zfileobj�wbzinvalid resource %r) Zurllib.requestZurllib.parse�	os_helperr�r�r��pop�parseZurlparser�rerfr��
TEST_DATA_DIRr�rrrurZrequestZbuild_openerZ
addheaders�appendr�rDZheaders�getZGzipFile�read�writer�r)
Zurlrzr�Zurllibr�r�r�r�r�raZopener�out�srOr�rPr24sP�	

����r2c
csT�	ddl}tt|�}tt||���ztt|�VWtt||�dStt||�wr�)�iorjrq�setattr�StringIO)Zstream_namer
Zorig_stdoutrOrOrP�captured_outputks�
rcC�
	td�S)Nrp�rrOrOrOrPrw�rcCr)N�stderrrrOrOrOrPr�rrcCr)N�stdinrrOrOrOrPr�s	rcCs4	ddl}|��trt�d�|��|��dS)Nr皙�����?)�gcZcollectr-�time�sleep)rrOrOrP�
gc_collect�s	
rccsH�ddl}|��}|��zdVW|r|��dSdS|r#|��wwr�)rZ	isenabled�disable�enable)rZhave_gcrOrOrP�
disable_gc�s��
�rcCs8	t�d�pd}d}|��D]	}|�d�r|}q|dvS)NZ	PY_CFLAGSr�z-O)r�z-O0z-Og)r�r�r�r�)ZcflagsZ	final_opt�optrOrOrP�python_is_optimized�s
�rZnPZ0nZ
getobjectsZ2PZ0P�ncC�ddl}|�t|t�Sr�)�struct�calcsize�_header�_align�Zfmtr"rOrOrP�calcobjsize��r'cCr!r�)r"r#�_vheaderr%r&rOrOrP�calcvobjsize�r(r*i@icCspddl}t�|�}t|�tkr|jt@s!t|�tkr&t|�jt@r&||j7}dt|�||f}|�|||�dS)Nrz&wrong size for %s: got %d, expected %d)	�_testinternalcapirq�	getsizeofr��	__flags__�_TPFLAGS_HEAPTYPE�_TPFLAGS_HAVE_GCZSIZEOF_PYGC_HEADr�)�test�o�sizer+r}rTrOrOrP�check_sizeof�s

�r3)�_do_cleanupscsN	d�t�t�r��dd����t��dkrd�t�������fdd�}|S)NF�,� rTcs4t�t�r	td��t��������fdd��}|S)Nz1subTests() can only decorate methods, not classesc	s|�D]9}�r	|f}tt�|��}|jdi|����|g|�Ri|�|��Wd�n1s0wY�r;|��qdS)NrO)r��zipZsubTestZ
doCleanups)rYrzr��valuesZsubtest_kwargs)r4�	arg_names�
arg_valuesry�single_paramrOrPr��s���z,subTests.<locals>.decorator.<locals>.wrapper)�
isinstancer��	TypeErrorr�r�r��r4r9r:r;r�rPr��s

	zsubTests.<locals>.decorator)r<r��replacer�r�r�)r9r:r4r�rOr>rP�subTests�s
r@c
gs��zddl}t||�}|�|�}Wnty�d}}Yn|D]}z	|�||�WnYq$zdVW|rF|rH|�||�dSdSdS|rU|rV|�||�wwwr�)�localerj�	setlocalerk)ZcatstrZlocalesrA�categoryZorig_localeZlocrOrOrPr4�s,�
��r4cs�fdd�}|S)Ncs"��fdd�}�j|_�j|_|S)Nc	s�ztj}Wntyt�d��wdtjvrtjd}nd}�tjd<|�z�|i|��W|dur8tjd=n|tjd<t��S|durKtjd=n|tjd<t��w)Nztzset requiredZTZ)r�tzsetrkrcrlre�environ)rz�kwdsrDZorig_tz)ry�tzrOrP�inners(

�




�


z-run_with_tz.<locals>.decorator.<locals>.inner)rL�__doc__)ryrH�rGr�rPr�szrun_with_tz.<locals>.decoratorrO)rGr�rOrJrPr<sr<i�rs�cCs�dttdtd�}t�d|tjtjB�}|durtd|f��tt|�	d��||�	d��
��}|a|tkr9t}|t
dkrFtd|f��|adS)NrK)�k�m�g�tz(\d+(\.\d+)?) (K|M|G|T)b?$zInvalid memory limit %rr�z$Memory limit %r too low to be useful)�_1M�_1G�re�match�
IGNORECASE�VERBOSEr�r��float�group�lower�real_max_memuse�MAX_Py_ssize_t�_2Gr)�limitZsizesrNZmemlimitrOrOrPr9@s"�
�$r9c@�&eZdZ	dd�Zdd�Zdd�ZdS)�_MemoryWatchdogcCsdjt��d�|_d|_dS)Nz/proc/{pid}/statm)�pidF)r�re�getpid�procfile�startedr\rOrOrPrXZs
z_MemoryWatchdog.__init__c
Cs�ddl}zt|jd�}Wn!ty-}z|�d�|�t�tj�	�WYd}~dSd}~wwddl
}|�td�}|jtj
|g||jd�|_Wd�n1sPwYd|_dS)Nr�rz!/proc not available for stats: {}zmemory_watchdog.py)rrT)�warningsr�rcrt�warnr��RuntimeWarningrqr�flush�
subprocessr6�Popen�
executableZDEVNULL�mem_watchdogrd)rYrfrar�rjZwatchdog_scriptrOrOrP�start^s(�
��
��
z_MemoryWatchdog.startcCs"|jr|j��|j��dSdSrS)rdrmZ	terminate�waitr\rOrOrP�stopps
�z_MemoryWatchdog.stopN)rLrMrNrXrnrprOrOrOrPr`Us
r`Tcs	���fdd�}|S)Ncs ���fdd����_��_�S)Ncs��j}�j}tsd}n|}ts�s"t||kr"t�d||d��tr=tr=t�tdj||dd��t�}|�	�nd}z
�||�W|rL|�
�SS|rT|�
�ww)Ni�'not enough memory: %.1fG minimum needed�@z* ... expected peak memory use: {peak:.1f}G)Zpeak)r2�memuser[rcrlrrur�r`rnrp)rYr2rs�maxsizeZwatchdog)�dry_runrar�rOrPr��s6
���


�
�z.bigmemtest.<locals>.decorator.<locals>.wrapper)r2rsr`�rursr2�rar�rPr��szbigmemtest.<locals>.decoratorrO)r2rsrur�rOrvrPrvs!rcr�)Ncs<ttkrtdkrtdkrt�d��t�dtd���|�S)Nl����lz-not enough memory: try a 32-bit build insteadrqrr)rr\rcrlr\r`rOrPr��s���z!bigaddrspacetest.<locals>.wrapperrOrwrOr`rPr �sr c@seZdZdd�ZdS)rcCst��}||�|SrS)rcZ
TestResult)rYr0r}rOrOrP�run��zBasicTestRunner.runN)rLrMrNrxrOrOrOrPr�srcCr_rSrO)rmrOrOrP�_id��rzcCs6|dkr
t�s
t�tj�St|�rtSt�d�|��S)Nr�zresource {0!r} is not enabled)r�rcr�r�rrzr�r�rOrOrP�requires_resource�s
r|cCs	tdd�|�S)NT)�cpython)�impl_detail�r0rOrOrPr!�sr!cKsZtdi|��r	tS|dur(t|�\}}|rd}nd}t|���}|�d�|��}t�|�S)Nz*implementation detail not available on {0}z%implementation detail specific to {0}z or rO)	r/rz�
_parse_guardsr��keysr�r�rcr�)rT�guardsZ
guardnames�defaultrOrOrPr~�s
r~cCs*|sddidfSt|���d}||fS)Nr}TFr)�listr8)r�Zis_truerOrOrPr��s
r�cKs	t|�\}}|�tjj|�SrS)r�rrq�implementationrn)r�r�rOrOrPr/�sr/cs*	ttd�s�St����fdd��}|S)N�gettracec	s:t��}zt�d��|i|��Wt�|�St�|�wrS)rqr��settrace)rzr�Zoriginal_tracer�rOrPr��s

zno_tracing.<locals>.wrapper)r�rqr�r�r�rOr�rP�
no_tracing�s
r�cCs	tt|��SrS)r�r!rrOrOrP�
refcount_testsr�cCsP	g}|jD]}t|tj�rt||�|�|�q||�r"|�|�q||_dSrS)Z_testsr<rc�	TestSuite�
_filter_suiter)�suiteZpredZnewtestsr0rOrOrPr�s


�
r�cCs�	ttjttdud�}|�|�}tdurt�|���|js#|j	s#t
�|��sit|j
�dkr9|js9|j
dd}nt|j�dkrK|j
sK|jdd}nd}tsS|d7}dd�|j
D�}dd�|jD�}t|||��dS)	N)�	verbosityZcapture_outputrrzmultiple errors occurredz!; run in verbose mode for detailscS�g|]
\}}t|�|f�qSrO�r��r�ZtcZexc_strrOrOrPr�-�z_run_suite.<locals>.<listcomp>cSr�rOr�r�rOrOrPr�.r�)rrqrpr�junit_xml_listrxrZget_xml_elementZtestsRunZskippedrZ
wasSuccessfulr�rUrVrR)r�Zrunnerr}r{rUrVrOrOrP�
_run_suites*�
�r�cCstdurdSt|���S�NT)�_match_test_func�idrrOrOrP�
match_test9sr�cCsd|vo
t�d|�S)Nr�z[?*\[\]])rT�search)rdrOrOrP�_is_full_match_testAsr�cs�|durd}|durd}d��|tkrt|�\}�|tkr$t|�\}�t|�at|�a�dus4�dur?��fdd�}|adSdS)NrOcs*d}d}�r
�|�}�r�|�}|o|S�NTFrO)�test_idZaccept�ignore�Zaccept_funcZignore_funcrOrP�match_function`s
z'set_match_tests.<locals>.match_function)�_accept_test_patterns�_compile_match_function�_ignore_test_patternsr�r�)Zaccept_patternsZignore_patternsr�rOr�rP�set_match_testsKs	�r�csr|s
d}d}||fSttt|��rt|�j}||fSddl}d�t|j|��}t�	|�j
��fdd�}|}||fS)NrOr�|cs �|�rdStt�|�d���S)NTr�)�anyr�r�)r��Zregex_matchrOrP�match_test_regex|sz1_compile_match_function.<locals>.match_test_regex)�allr�r��set�__contains__�fnmatchr��	translaterTr�rU)�patternsryr�Zregexr�rOr�rPr�ls�
�r�cGs�	tjtjf}t��}|D]/}t|t�r)|tjvr%|�t�tj|��q
t	d��t||�r4|�|�q
|�t�
|��q
t|t�t
|�dS)Nz)str arguments must be keys in sys.modules)rcr�ZTestCaser<r�rq�modulesZaddTestZ
findTestCasesr�Z	makeSuiter�r�r�)ZclassesZvalid_typesr��clsrOrOrPr�s



rcC�dSrSrOrOrOrOrP�_check_docstrings�r{r�ZWITH_DOC_STRINGSztest requires docstringscCsb	ddl}|durt}nd}|j|||d�\}}|r"td||f��tr-td|j|f�||fS)Nr)r�optionflagsz%d of %d doctests failedz,doctest (%s) ... %d tests with zero failures)�doctestrZtestmodrrurL)�moduler�r�r�rarPrOrOrPr�s�rcCs(|��D]
}td|��tjdd�qdS)NzWarning -- T)r�ri)�
splitlinesrurq�
__stderr__)rT�linerOrOrP�
print_warning�s�r�cCsh	ttd�rttd�s
dS	zt�dtj�\}}Wn
ty#YdSw|dkr*dStd|���daq)N�waitpid�WNOHANGTr�rz%reap_children() reaped child process )r�rer�r�rtr��environment_altered)ra�statusrOrOrPr3�s��r3c
cs��	t||�r&t||�}t|||�z|VWt|||�dSt|||�wt|||�zdVWt||�r=t||�dSdSt||�rJt||�wwrS)r�rjr�delattr)rm�attr�new_val�real_valrOrOrPr7�s �


��r7c	cst�	||vr||}|||<z
|VW|||<dS|||<w|||<zdVW||vr0||=dSdS||vr9||=wrSrO)rm�itemr�r�rOrOrPr5s�
�r5cC�	ddl}|��Sr�)rjZ_args_from_interpreter_flags�rjrOrOrP�args_from_interpreter_flags8�r�cCr�r�)rjZ"_optim_args_from_interpreter_flagsr�rOrOrP�!optim_args_from_interpreter_flags>r�r�c@s eZdZdZdd�Zdd�ZdS)r8)rT�messagecKs>	d}|D]}||}|�|�}|�|||�sd}|Sq|Sr�)r�match_value)rY�dr�r}rM�v�dvrOrOrP�matchesIs
�zMatcher.matchescCsN	t|�t|�kr
d}|St|�tus||jvr||k}|S|�|�dk}|S)NFr)r�r��_partial_matches�find)rYrMr�r�r}rOrOrPr�Zs��zMatcher.match_valueN)rLrMrNr�r�r�rOrOrOrPr8Esr8cCsZ	ddl}tdur"tjdkr |��ddkr t��jdkr dandatr+t�	d�|�S|S)	NrrGr�cp65001r�TFz!buggy MSVC UCRT strptime/strftime)
rA�_buggy_ucrtrqr�Zgetdefaultlocaler�	localtime�tm_zonercr�)r0rArOrOrPr)hs	
r)c@sheZdZ	ddd�Zejdkrdd�Zndd�Zdd	�Zd
d�Zdd
�Z	dd�dd�Z
dd�dd�ZdS)�
PythonSymlinkNcCsLddlm}|p
tj�|�|_g|_tj�tj	�|_
g|_d|_|�
�dS)Nr)�TESTFN)rr�rerf�abspath�link�_linked�realpathrqrl�real�
_also_link�_env�_platform_specific)rYr�r�rOrOrPrXszPythonSymlink.__init__rGc
Csddl}ddl}tj�|j�rtj�|j�s|�d�|_|�tj	�}tj�
|�}tj�
|j�}|j�
|tj�|tj�|��f�|�tj�|�|�d��D]}|j�
|tj�|tj�|��f�qMdd�tjD�|_tj�
|j�|jd<t�d�r�tj�
tj�|jd<dSdS)Nrzvcruntime*.dllcSsi|]
}|��t�|��qSrO)�upperre�getenv)r�rMrOrOrP�
<dictcomp>�r�z4PythonSymlink._platform_specific.<locals>.<dictcomp>Z
PYTHONHOMETZ
PYTHONPATH)�glob�_winapirerf�lexistsr�r�ZGetModuleFileNamerqZ	dllhandlergr�r�rr��basename�escaperEr�r�Zis_python_buildrh)rYr�r�r�Zsrc_dirZdest_dirZruntimerOrOrPr��s*��
�z PythonSymlink._platform_specificcCr�rSrOr\rOrOrPr��r{cCsJt�|j|j�|j�|j�|jD]\}}t�||�|j�|�q|SrS)re�symlinkr�r�r�rr�)rYr�r�rOrOrP�	__enter__�szPythonSymlink.__enter__cCsV|jD]%}zt�|�Wqty(}ztrtd�||��WYd}~qd}~wwdS)Nzfailed to clean up {}: {})r�re�remove�IOErrorrrur�)rY�exc_type�	exc_valueZexc_tbr�ZexrOrOrP�__exit__�s
���zPythonSymlink.__exit__c	Csxddl}|g|�}|j||j|j|d�}|��}|j|kr:tr2tt|d��tt|d�tj	d�t
d�|j���|S)Nr)rpr�envrr�z'unexpected return code: {0} (0x{0:08X}))rjrk�PIPE�communicate�
returncoderru�reprrqr�RuntimeErrorr�)	rYZpythonrzr�r�rj�cmd�prerOrOrP�_call�s

�

�zPythonSymlink._callr)r�cGs|�|j|d|�SrS)r�r��rYr�rzrOrOrP�	call_real�szPythonSymlink.call_realcGs|�|j||j|�SrS)r�r�r�r�rOrOrP�	call_link�szPythonSymlink.call_linkrS)rLrMrNrXrqr�r�r�r�r�r�r�rOrOrOrPr�}s


r�cCs&	tpt}d}|r|St�|�|�S)Nz#Not run for (non-extended) PGO task)r=�PGO_EXTENDEDrcr�)r0�okrTrOrOrP�skip_if_pgo_task�s
r�rO)r�cCs@	tt|��tt|��}|r|t|�8}tdd�|D��}|S)Ncss(�|]}|�d�r|�d�r|VqdS)r��__N)r��endswith)r�rNrOrOrP�	<genexpr>�s���z&detect_api_mismatch.<locals>.<genexpr>)r��dir)Zref_apiZ	other_apir�Z
missing_itemsrOrOrPr'�sr'cCs�	|dur
|jf}nt|t�r|f}t|�}t|�D])}|�d�s%||vr&qt||�}t|dd�|vs>t|d�sCt|tj	�sC|�
|�q|�|j|�dS)Nr�rM)
rLr<r�r�r�r�rjr��types�
ModuleType�addZassertCountEqual�__all__)Z	test_caser�Zname_of_moduleZextraZnot_exportedZexpectedrnrmrOrOrPr(�s$'


�
�
�r(cCs�zddl}Wn
tyYdSw|�|j|jB|jB|jB�t|d�rG|j|j	|j
fD]}|r@|�||j�|�
||j�q-|�|d�q-dSdS)Nr�CrtSetReportMode)�msvcrtr��SetErrorModeZSEM_FAILCRITICALERRORSZSEM_NOALIGNMENTFAULTEXCEPT�SEM_NOGPFAULTERRORBOXZSEM_NOOPENFILEERRORBOXr��CRT_WARN�	CRT_ERROR�
CRT_ASSERTr�CRTDBG_MODE_FILE�CrtSetReportFile�CRTDBG_FILE_STDERR)rrrNrOrOrP�suppress_msvcrt_asserts s(����
�rc@s&eZdZ	dZdZdd�Zdd�ZdS)r:Nc
	Cs�	tj�d�rPzddl}Wn
tyYdSw|��|_|�|j|jB�t	|d�rNi|_
|j|j|j
fD]}|�||j�}|�||j�}||f|j
|<q6|Sz	ddl}||_Wntyed|_Ynw|jdur�z|j�|jj�|_|j�|jjd|jdf�Wnttfy�Ynwtjdkr�ddl}gd�}|j||j|jd�}|�|��d}	Wd�n1s�wY|	��dkr�td	d
dd�|S)
Nr~rrrr�)z/usr/bin/defaultsr	zcom.apple.CrashReporterZ
DialogType)rprs	developerz:this test triggers the Crash Reporter, that is intentionalr�T)�endri)rqr�r�rr�ZGetErrorMode�	old_valuerrr��	old_modesrrrrr	r
rr�Z	getrlimit�RLIMIT_CORE�	setrlimitr�rtrjrkr�r��stripru)
rYr�report_type�old_mode�old_filer�rjr��procrprOrOrPr�>sj�

���#�

�
��
���zSuppressCrashReport.__enter__c	Gs�	|jdurdStj�d�r7ddl}|�|j�|jr3|j��D]\}\}}|�||�|�	||�q dSdS|j
durVz
|j
�|j
j|j�WdSt
tfyUYdSwdS)Nr~r)rrqr�r�rrrr�rr
r�rrr�rt)rYZ
ignore_excrrrrrOrOrPr��s&
�
��zSuppressCrashReport.__exit__)rLrMrNrrr�r�rOrOrOrPr:5sBr:c	sr	t���d�z�j��Wnttfy t��d��Ynwd�����fdd�}|�|�t��|�dS)NFTcs"�r
t����dSt���dSrS)rr�rO�Z
attr_is_local�	attr_name�object_to_patchrrOrP�cleanup�szpatch.<locals>.cleanup)rj�__dict__rk�KeyErrorZ
addCleanupr)Z
test_instancerrZ	new_valuerrOrrP�patch�s
	�
rc
cs8�	z|dd�}dVW||dd�<dS||dd�<wrSrO)ZorigZsavedrOrOrP�
patch_list�s�rcCsF	zddl}Wn	tyYn
w|��rt�d��ddl}|�|�S)NrzUrun_in_subinterp() cannot be used if tracemalloc module is tracing memory allocations)�tracemallocr��
is_tracingrcrl�	_testcapi�run_in_subinterp)�coderr!rOrOrPr"�s�

r"csHG��fdd�d|�}d�|||���|�tt��t�|���dS)NcseZdZ��fdd�ZdS)z%check_free_after_iterating.<locals>.Acs(d�zt��WdStyYdSwr�)�next�
StopIterationr\�Zdone�itrOrP�__del__�s�z-check_free_after_iterating.<locals>.A.__del__N)rLrMrNr(rOr&rOrP�A�sr)F)ZassertRaisesr%r$rZ
assertTrue)r0�iterr�rzr)rOr&rP�check_free_after_iterating�s	r+cCs�	ddlm}m}m}m}|��}|�|�|jdkr-z|��Wn|j	y,YdSw|j
D]#}|r9||vr9q0t||�}|rAn|sDq0|�|d�durS|dSq0dS)Nr)�	ccompilerr��spawnrUZmsvc)
Z	distutilsr,r�r-rUZnew_compilerZcustomize_compilerZ
compiler_typeZ
initializeZDistutilsPlatformErrorZexecutablesrjZfind_executable)Z	cmd_namesr,r�r-rUZcompilerrnr�rOrOrPr>�s*	

�

��r>cCsHd}tr||krtdurddl}|�ddg���dkatr|}t�|�S)Ng�h㈵��>rZgetpropzro.kernel.qemu�1)r.�_is_android_emulatorrjZcheck_outputrrqr1)ZintervalZminimum_intervalrjrOrOrPr1	s��
r1c
cs^�ddl}tj��}|��}z|��dVW|r"|j|dd�dSdS|r.|j|dd�ww)NrT)r�Zall_threads)�faulthandlerrqr��fileno�
is_enabledrr)r0�fdr2rOrOrP�disable_faulthandlers�
��r4c@r_)�SaveSignalsc	CsZddl}||_|��|_dD]}zt||�}Wn	ty Yqw|j�|�qi|_dS)Nr)�SIGKILL�SIGSTOP)�signal�
valid_signals�signalsrjrkr��handlers)rYr8Zsigname�signumrOrOrPrX3s
�
zSaveSignals.__init__cCs0|jD]}|j�|�}|durq||j|<qdSrS)r:r8�	getsignalr;�rYr<ZhandlerrOrOrP�save@s
�zSaveSignals.savecCs&|j��D]\}}|j�||�qdSrS)r;r�r8r>rOrOrP�restoreLs�zSaveSignals.restoreN)rLrMrNrXr?r@rOrOrOrPr5*s

r5cCsddl}|jSr�)r!Z
WITH_PYMALLOC)r!rOrOrP�
with_pymallocQsrAc@�eZdZ	dd�Zdd�ZdS)�
_ALWAYS_EQcC�dSr�rO�rY�otherrOrOrP�__eq__Zr{z_ALWAYS_EQ.__eq__cCrD�NFrOrErOrOrP�__ne__\r{z_ALWAYS_EQ.__ne__N)rLrMrNrGrIrOrOrOrPrCVsrCc@r_)�	_NEVER_EQcCrDrHrOrErOrOrPrGer{z_NEVER_EQ.__eq__cCrDr�rOrErOrOrPrIgr{z_NEVER_EQ.__ne__cCrD)NrrOr\rOrOrP�__hash__ir{z_NEVER_EQ.__hash__N)rLrMrNrGrIrKrOrOrOrPrJas
rJc@rB)�_LARGESTcC�
t|t�SrS)r<rLrErOrOrPrGsrrz_LARGEST.__eq__cCrDrHrOrErOrOrP�__lt__ur{z_LARGEST.__lt__N)rLrMrNrGrNrOrOrOrPrLn�rLc@rB)�	_SMALLESTcCrMrS)r<rPrErOrOrPrGrrz_SMALLEST.__eq__cCrDrHrOrErOrOrP�__gt__�r{z_SMALLEST.__gt__N)rLrMrNrGrQrOrOrOrPrPzrOrPcCs	ddl}|jjSr�)Zasyncio.eventsZeventsZ_event_loop_policy)ZasynciorOrOrP�maybe_get_event_loop_policy�srRc
Cs�||}}ddl}|���K}|��d}t|d�|_|�|�}|d||}||}	||	}
||
}||d|d|||	d|	}t|�t|���fWd�S1s[wYdS)Nrrs�r)�decimalZlocalcontext�
bit_length�maxZprecZDecimalrXZsqrt)
ZnbinsZnballsr rMrT�ctx�bitsr�Zp1emptyZ	meanemptyZoccupiedZ
collisions�varrOrOrP�collision_stats�s


($�rZc@s.eZdZ	dd�Zdd�Zdd�Zdd�Zd	S)
�catch_unraisable_exceptioncCsd|_d|_dSrS)�
unraisable�	_old_hookr\rOrOrPrX�s
z#catch_unraisable_exception.__init__cCs
||_dSrS)r\)rYr\rOrOrP�_hook�s
z catch_unraisable_exception._hookcCstj|_|jt_|SrS)rq�unraisablehookr]r^r\rOrOrPr��ryz$catch_unraisable_exception.__enter__cGs|jt_|`dSrS)r]rqr_r\)rY�exc_inforOrOrPr��sz#catch_unraisable_exception.__exit__N)rLrMrNrXr^r�r�rOrOrOrPr[�sr[rcCs&	tjdkrdddl}|durt}t��}d}d}	t�|tj�\}}|dkr'n<t��|}	|	|krVzt�||j	�t�|d�Wn	t
yIYnwtd|�d|	d�d	���t|d
|�}t�
|�qnt�|d�\}}t�|�}
|
|kr�td|�d|
�d|�d
���||kr�td|�d|����dS)N�ntrg����MbP?rTzprocess z is still running after z.1fz secondsrsz exited with code z, but exit code z is expectedzpid z != pid )rernr8rFr�	monotonicr�r��killr6rt�AssertionError�minr�waitstatus_to_exitcode)raZexitcoderr8Zt0rZ	max_sleepZpid2r�ZdtZ	exitcode2rOrOrP�wait_process�sH

�

�
�

��rgc
Csh	ddlm}|d�|d�}tjdkr2z	|jdd�WdSty1}zt�d|����d}~wwdS)Nr)�
import_moduleZ_multiprocessingzmultiprocessing.synchronizeZlinux)rWz broken multiprocessing SemLock: )Z
import_helperrhrqr�ZLockrtrcrl)rhZsynchronize�excrOrOrP�*skip_if_broken_multiprocessing_synchronizes
���rj�Kc	cs8�t��}zt�|�dVWt�|�dSt�|�wrS)rq�getrecursionlimit�setrecursionlimit)Z	max_depthZoriginal_depthrOrOrP�infinite_recursion.s�
rncOs^	|j}|j}|dkr|�d|��}n|�}dt�|��d�}|jt||g|�Ri|��dS)N�builtinsr�zcannot create 'z' instances)rMrLrTr�r�r=)r��tprzrF�modrn�qualnamerTrOrOrPr*8s r*r��like�returncCs,t�}tjdt||dt|��d�d�|S)Nr��
(?#support�))rCr�r�)�objectrf�filterwarnings�DeprecationWarningr�)r�rs�tokenrOrOrP�ignore_deprecations_fromHs�r{�tokensc	Gs�|std��g}tdd�|D��}tjD]-\}}}}}|dkr7|tur7t|tj�r-|j}n|p0d}|�	|�r7q|�
|||||f�qtj|krT|tjdd�<t��dSdS)Nz<Provide token or tokens returned by ignore_deprecations_fromcss �|]}dt|��d�VqdS)rurvN)r�)r�rzrOrOrPr�Xs�z-clear_ignored_deprecations.<locals>.<genexpr>r�r�)r�r�rf�filtersryr<rT�Patternrdr�r�_filters_mutated)	r|Znew_filtersr��actionr�rCr�r�rTrOrOrP�clear_ignored_deprecationsSs 

�r�c	cs:�	t��}zt�|�dVWt�|�dSt�|�wrS)rq�get_int_max_str_digits�set_int_max_str_digits)Z
max_digitsZcurrentrOrOrP�adjust_int_max_str_digitsgs�
r�cCs	dd�tdd�D�dgS)NcSsg|]}t|��qSrO)�chr)r��crOrOrPr�vr�z)control_characters_c0.<locals>.<listcomp>r� �)�rangerOrOrOrP�control_characters_c0rsr�rS)r�)r�)r�)r�)r�)r�)T)NNr�)NrOrO)F)rO)rk)�rLr��
contextlibr�rerTrwrqr�rr�rcrfZ
testresultrr!rrrCr�r�rDrErFr�r
rrRrrlr
r%r&r"rrrr[r�r	rorrr|r�rrr�r�rrrr+r,r�rZ
SOCK_MAX_SIZEr�rX�
__getformat__r�r#r$rrrZrequires_legacy_unicode_capir-r�r.r0Z
TEST_HTTP_URLr=r�rfrgr�rhZTEST_SUPPORT_DIRr�r�rr�r6r;rr2�contextmanagerrrrrrrrr$r%r)r'r*r/r.r3r@r4r<rRrSr]Z_4Grtr\r9r`rr rrzr|r!r~r�r/r�r�r�r�r�r�r�r�r�r�r�rr�r�ZMISSING_C_DOCSTRINGSrIZHAVE_DOCSTRINGSZrequires_docstringsrr�r�r3r7r5r�r�rwr8r�r)r�r�r'r(rr:rrr"r+r>r/r1r4r5rArCr?rJr@�total_orderingrLrArPrBrR�	hash_info�widthZ	NHASHBITSrZr[rgrjrnr*r�r{r�r�r�r�rOrOrOrP�<module>s��,

	M	
		��
7
		



#!0


! �
���


"R�;`"
	 
'			",4