403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.9/test/support/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.9/test/support/__pycache__/__init__.cpython-39.opt-2.pyc
a

9	d���	@s�edkred��ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z	ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZgd�ZdZejdkr�e��d	kr�d
ZdZdZd
Z Gdd�de!�Z"Gdd�de"�Z#Gdd�de#�Z$Gdd�de"�Z%Gdd�dej&�Z'ej(�dydd��Z)dd�Z*�dzdd�d d!�Z+d"d#�Z,d$d%�Z-d&d'�Z.�d{d(d)�Z/d*d+�Z0dZ1dZ2da3da4dZ5dZ6da7d,d-�Z8d.d/�Z9d0d1�Z:d2d3�Z;ej�<d4��r �d|d5d6�Z=d7d8�Z>d9d:�Z?d;d<�Z@d=d>�ZAnejBZ>ejCZ?d?d<�Z@d@d>�ZAdAdB�ZBdCdD�ZCdEdF�ZDdGdH�ZEdIdJ�ZFdKdL�ZGdMdN�ZH�d}dOdP�ZIdQdR�ZJdSdT�ZKdUdV�ZLdWdX�ZMddddY�dZd[�ZN�d~ddddY�d\d]�ZOd^d_�ZPd`ZQdaZRe�SeT�Udb��<dc�dd�ZV�ddfdg�ZW�d�didj�ZX�d�dldm�ZY�d�dodp�ZZej�<dq�Z[e\edr�Z]ejdk�rRe]�rLdsndtZ^ndZ^ej_dqk�rhduZ`ndvZ`dw�ae`e�b��Z`dxZcdyZddzD]DZeze�fe�gee��eek�r�eh�Wneh�y�Yn0eeZd�qΐq�e`d{Ziejd|k�r�ddljZjej�kd}ei�Zie�l�ZmdZnej_d~k�r`e�o�jdk�r�e`d�Znzen�pem�Wneq�yHYn0erd�enemf�dZnn@ejd|k�r�zd��sem�Wn$et�y�e`d��semd��ZnYn0dZud�D]@Z_ze_�sem�Wn*et�y�e�ge`�e_ZuY�q�Yn0�q�ed�r�e`edZvndZvev�pe`Zwe�x�ZydZzdZ{ej(�d�d�d���Z|ej(�d�d�d���Z}ej(�d�d�d���Z~e\ed���rhej(d�d���Zej���ej���e���Z�ej���e��Z�ej���e�d��Z�d�d��Z��d�d�d��Z�d�d��Z�ej(d�d���Z�d�d��Z�d�d��Z��d�ddd��d�d��Z��d�ddd��d�d��Z�d�d��Z�Gd�d��d�e��Z��d�d�d��Z�ej(d�d���Z�ej(dye�dfd�d���Z�ej(d�d���Z�Gd�d��d�e��Z�Gd�d��d�ej�j��Z�Gd�d��d�e��Z�Gd�d��d�e��Z�e�e�ej�d��Z�e�e�ej�d��Z�e�e�ej�d��Z�ej(d�d���Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�ej(d�d„�Z�d�dĄZ�d�Z�d�Z�e\edǃ�r d�e�Z�d�Z�e�d�Z�d�d̄Z�d�d΄Z�d�Z�d�Z�d�d҄Z�ej(d�dԄ�Z�d�dքZ�d�Z�d�e�Z�de�Z�d�e�Z�ej�Z�d�dۄZ�Gd�d݄d݃Z��d�d�d߄Z�d�d�Z�Gd�d�d�Z�d�d�Z�d�d�Z�d�d�Zd�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d��Z�d�d��Z�da�da�da�d�d��Z�d�d��Zΐd�d�d��Z�d�d��ZАd�d�Zѐd�d�Z�eŃ�otejdk�ote�Ӑd�Z�e�j�du�o�e�Z�e�Se֐d�Zאd��d�d�Zؐd�d	�Zِd
�d�Zڐd�d
�Z�daܐd�d�Zݐd�d�Zސd�d�Z�ej(�d��d�d��Z�d��d�d�Z�d�d�Z�ej(�d��d�d��Z�ej(�d�d��Z�ej(�d�d��Z�d �d!�Z�d"�d#�Z�G�d$�d%��d%e��Z�da�d&�d'�Z�d(�d)�Z�da�d*�d+�Z�G�d,�d-��d-�Z�da�d.�d/�Z�d0�d1�Z�d2�d3�Z�d4�d5�Z�d�d6��d7�d8�Z�d��d9�d:�Z��d��d;�d<�Z�G�d=�d>��d>�Z��d?�d@�Z��dA�dB�Z��d��dC�dD�Z�gf�dE�dF�Z�da��dG�dH�Z�ej(�dI�dJ��Z��dK�dL�Z�G�dM�dN��dN��Z�dO�dP��ZG�dQ�dR��dR��ZG�dS�dT��dT��Z�e��ZG�dU�dV��dV��Z�e��Ze�jG�dW�dX��dX���Z�e��Z	e�jG�dY�dZ��dZ���Z
�e
��Z�d[�d\��Ze�j
�j�Z�d]�d^��ZG�d_�d`��d`��ZG�da�db��db��Zd�dc��dd�de��Z�df�dg��Z�dh�di��Zej(�dj�dk���Z�dl�dm��Zej(�d��do�dp���Z�e�ee��dq��dr�ds��Ze�d�dt��du�dv��Zej(�dw�dx���ZdS(�ztest.supportz.support must be imported from the test package�N�)�get_test_runner)`�
PIPE_MAX_SIZE�verbose�
max_memuse�
use_resources�failfast�Error�
TestFailed�
TestDidNotRun�ResourceDenied�
import_module�import_fresh_module�CleanImport�unload�forget�record_original_stdout�get_original_stdout�captured_stdout�captured_stdin�captured_stderr�TESTFN�SAVEDCWD�unlink�rmtree�temp_cwd�findfile�create_empty_file�can_symlink�fs_is_case_insensitive�is_resource_enabled�requires�requires_freebsd_version�requires_linux_version�requires_mac_ver�check_syntax_error�check_syntax_warning�TransientResource�time_out�socket_peer_reset�ioerror_peer_reset�BasicTestRunner�run_unittest�run_doctest�skip_unless_symlink�
requires_gzip�requires_bz2�
requires_lzma�
bigmemtest�bigaddrspacetest�cpython_only�
get_attribute�requires_IEEE_754�skip_unless_xattr�
requires_zlib�anticipate_failure�load_package_tests�detect_api_mismatch�check__all__�skip_if_buggy_ucrt_strfptime�ignore_warnings�check_sanitizer�skip_if_sanitizer�	is_jython�
is_android�check_impl_detail�
unix_shell�setswitchinterval�open_urlresource�
temp_umask�
reap_children�threading_setup�threading_cleanup�reap_threads�
start_threads�check_warnings�check_no_resource_warning�check_no_warnings�EnvironmentVarGuard�run_with_locale�	swap_item�	swap_attr�Matcher�set_memlimit�SuppressCrashReport�sortdict�run_with_tz�PGO�missing_compiler_executable�fd_count�	ALWAYS_EQ�NEVER_EQ�LARGEST�SMALLEST�LOOPBACK_TIMEOUT�INTERNET_TIMEOUT�
SHORT_TIMEOUT�LONG_TIMEOUTg@�win32ZARM�
gN@g>@g�r@c@seZdZdS)r	N��__name__�
__module__�__qualname__�rjrj�+/usr/lib/python3.9/test/support/__init__.pyr	vsr	c@seZdZdS)r
Nrfrjrjrjrkr
ysr
cs$eZdZ�fdd�Zdd�Z�ZS)�TestFailedWithDetailscs&||_||_||_t��|||�dS�N)�msg�errors�failures�super�__init__)�selfrnrorp��	__class__rjrkrr~szTestFailedWithDetails.__init__cCs|jSrm�rn�rsrjrjrk�__str__�szTestFailedWithDetails.__str__)rgrhrirrrx�
__classcell__rjrjrtrkrl|srlc@seZdZdS)rNrfrjrjrjrkr�src@seZdZdS)rNrfrjrjrjrkr�srTccsL|rBt���$t�ddt�dVWd�qH1s60YndVdS)N�ignorez.+ (module|package))�warnings�catch_warnings�filterwarnings�DeprecationWarning�rzrjrjrk�_ignore_deprecated_imports�s
�&r�cs�fdd�}|S)Ncst�����fdd��}|S)NcsPt���4tjd�d��|g|�Ri|��Wd�S1sB0YdS)Nrz��category)r{r|�simplefilter)rs�args�kwargs)r��testrjrk�wrapper�s
z3ignore_warnings.<locals>.decorator.<locals>.wrapper��	functools�wraps)r�r�r��r�rk�	decorator�sz"ignore_warnings.<locals>.decoratorrj)r�r�rjr�rkr>�sr>Frj)�required_oncCs�t|��pzt�|�WWd�Styh}z,tj�t|��rF�t�	t
|���WYd}~n
d}~00Wd�n1s~0YdSrm)r��	importlibr
�ImportError�sys�platform�
startswith�tuple�unittest�SkipTest�str)�name�
deprecatedr�rnrjrjrkr
�s	
r
cCsLi}tdd�|D��}ttj�D]&}||vs6|�|�r tj�|�||<q |S)Ncss|]}|dVqdS)�.Nrj)�.0r�rjrjrk�	<genexpr>��z+_save_and_remove_modules.<locals>.<genexpr>)r��listr��modulesr��pop)�names�orig_modules�prefixes�modnamerjrjrk�_save_and_remove_modules�sr�cCs|r
tjSdd�S)NcSs|Srmrj��frjrjrk�<lambda>�r�z$anticipate_failure.<locals>.<lambda>)r�ZexpectedFailure)Z	conditionrjrjrkr9�sr9cCsF|durd}tj�tj�tj�t���}|j|||d�}|�|�|S)Nztest*)Z	start_dirZ
top_level_dir�pattern)�os�path�dirname�__file__ZdiscoverZaddTests)Zpkg_dir�loaderZstandard_testsr�Ztop_dirZ
package_testsrjrjrkr:�s
���
r:c
Cs�t|���t|�}t|�}|h|�|�}t|�}|D]}dtj|<q4z|z|D]}t|�qLWn6ty�YWt|�tj�|�Wd�dS0t�	|�Wt|�tj�|�Wd�St|�tj�|�0Wd�n1�s�0YdSrm)
r�r�r�r�r��
__import__r��updater�r
)r�ZfreshZblockedr�r�r�r�rjrjrkr�s0
�
��rcCs<zt||�}Wn$ty2t�d||f��Yn0|SdS)Nzobject %r has no attribute %r)�getattr�AttributeErrorr�r�)�objr�Z	attributerjrjrkr5!s
r5cCs|adSrm)�_original_stdout)�stdoutrjrjrkr6srcCs
tptjSrm)r�r�r�rjrjrjrkr:srcCs$ztj|=WntyYn0dSrm)r�r��KeyError)r�rjrjrkr=src
Gsxz
||�WStyr}zPtdkrHtd|jj|f�td|j|f�t�|tj�||�WYd}~Sd}~00dS)N�z%s: %szre-run %s%r)	�OSErrorr�printrurgr��chmod�stat�S_IRWXU)r��funcr��errrjrjrk�
_force_runCs
r��wincCs�||�|r|}ntj�|�\}}|p(d}d}|dkrjt�|�}|rJ|sVn||vsVdSt�|�|d9}q.tjd|tdd�dS)Nr����MbP?g�?r�z)tests may fail, delete still pending for ���
stacklevel)	r�r��split�listdir�time�sleepr{�warn�RuntimeWarning)r��pathname�waitallr�r��timeout�Lrjrjrk�_waitforNs



�r�cCsttj|�dSrm)r�r�r��filenamerjrjrk�_unlinkosr�cCsttj|�dSrm)r�r��rmdir�r�rjrjrk�_rmdirrsr�cs,�fdd��t�|dd�tdd�|�dS)Ncs�t|tj|�D]�}tj�||�}zt�|�j}Wn>tyn}z&td||ft	j
d�d}WYd}~n
d}~00t�|�r�t
�|dd�t|tj|�qt|tj|�qdS)Nz-support.rmtree(): os.lstat(%r) failed with %s��filerT�r�)r�r�r�r��join�lstat�st_moder�r�r��
__stderr__r��S_ISDIRr�r�r)r�r��fullname�mode�exc��
_rmtree_innerrjrkr�vs�
�_rmtree.<locals>._rmtree_innerTr�cSst|tj|�Srm)r�r�r�)�prjrjrkr��r�z_rmtree.<locals>.<lambda>)r��r�rjr�rk�_rmtreeusr�cCs\zddl}WntyYn:0|�t|�d�}|jj�||t|��}|rX|d|�S|S)Nrr�)�ctypesr�Zcreate_unicode_buffer�len�windllZkernel32ZGetLongPathNameW)r�r��buffer�lengthrjrjrk�	_longpath�s�r�csNddl}z|�|�WdSty*Yn0�fdd���|�t�|�dS)Nrc	s~t|tj|�D]j}tj�||�}zt�|�j}WntyFd}Yn0t�	|�rj�|�t|tj
|�qt|tj|�qdS�Nr)r�r�r�r�r�r�r�r�r�r�r�r)r�r�r�r�r�rjrkr��s

r�)�shutilrr�r�r�)r�r�rjr�rkr��s
cCs|Srmrjr�rjrjrkr��sc	Cs(zt|�Wnttfy"Yn0dSrm)r��FileNotFoundError�NotADirectoryErrorr�rjrjrkr�srcCs$zt|�WntyYn0dSrm)r�r�r�rjrjrkr��sr�cCs$zt|�WntyYn0dSrm)r�r�r�rjrjrkr�srcCsBtj�|�}tj�tj�|��}tj�||d�}t�||�|S)N�c)	r��util�cache_from_sourcer�r�r��abspathr��rename)�sourceZpyc_fileZup_oneZ
legacy_pycrjrjrk�make_legacy_pyc�s
r�cCsTt|�tjD]@}tj�||d�}t|d�dD]}ttjj||d��q4qdS)Nz.pyr�)�rr�)�optimization)	rr�r�r�r�rr�r�r�)r�r�r��optrjrjrkr�s
rc
sttd�rtjSd}tj�d�r0t��r0d}�nBtj�d�r�ddl�ddl�d}d}G�fdd�d�j	�}�j
j}|��}|s���
��|�}�j��}|�||��|���|���|��}|sƈ�
��t|j|@�s�d}n�tjd	k�rrdd
lm}	m�m}
m	}ddlm}|	�|d��}
|
��dk�r,d
}nFG�fdd�d|�}|�}|
|�}|
�|�dk�sn|
�|�dk�rrd}|�sz.ddlm}|�}|� �|�!�|�"�Wn^t#�y}zDt$|�}t%|�dk�r�|dd�d}d�&t'|�j(|�}WYd}~n
d}~00|t_)|t_tjS)N�resultr�z(gui is not available on Windows IoT Corerrcs.eZdZd�jjfd�jjfd�jjfgZdS)z*_is_gui_available.<locals>.USEROBJECTFLAGSZfInheritZ	fReserved�dwFlagsN)rgrhri�wintypesZBOOL�DWORD�_fields_rj)r�rjrk�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)rgrhrir�rj)rrjrk�ProcessSerialNumbers�rz#cannot run without OS X gui process)�Tk�2z [...]zTk unavailable due to {}: {})*�hasattr�_is_gui_availabler�r�r�r�Zwin32_is_iotr�Zctypes.wintypesrr�Zuser32ZGetProcessWindowStationZWinErrorr�r�ZGetUserObjectInformationWZbyrefZsizeof�boolr�rrrZctypes.utilrZLoadLibraryZCGMainDisplayIDZGetCurrentProcessZSetFrontProcess�tkinterrZwithdrawr�Zdestroy�	Exceptionr�r��format�typerg�reason)rZ	UOI_FLAGSZWSF_VISIBLEr��dll�hZuofZneeded�resrrrrZapp_servicesrZpsnZpsn_pr�root�eZ
err_stringrj)rr�rkr
�sr

���r
cCstdup|tvSrm)r��resourcerjrjrkr -sr cCs<t|�s |durd|}t|��|dkr8t�s8ttj��dS)Nz"Use of the %r resource not enabled�gui)r rr
r)rrnrjrjrkr!5sr!cCs�ddl}d�tt|��}|���dd�d}|��|krrzttt|�d���}Wnt	yfd}Yqv0||k}nd}t
�||�d|�d|���S)Nrr��-rFz	 version z or higher required, not )r�r��mapr��releaser��systemr��int�
ValueErrorr��skipIf)�sysname�min_versionr��min_version_txt�version_txt�version�skiprjrjrk�_requires_unix_version>s 

��r&cGs
td|�S)NZFreeBSD�r&�r!rjrjrkr"Ysr"cGs
td|�S)NZLinuxr'r(rjrjrkr#bsr#cs�fdd�}|S)Ncs"t�����fdd��}�|_|S)Ncsztjdkrlt��d}zttt|�d���}Wnty@Yn,0|�krld�tt	���}t
�d||f���|i|��S)Nrrr�z&Mac OS X %s or higher required, not %s)r�r�Zmac_verr�rrr�rr�r�r�r�)r��kwr#r$r")r�r!rjrkr�ss
��z4requires_mac_ver.<locals>.decorator.<locals>.wrapper)r�r�r!�r�r�r(�r�rkr�rsz#requires_mac_ver.<locals>.decoratorrj)r!r�rjr(rkr$ksr$��address�memory�ubcCsx|s|s|std��t�d�p d}t�d�p.d}d|vp>d|v}d|vpNd|v}d|vp^d	|v}|rh|pv|rp|pv|ov|S)
Nz3At least one of address, memory, or ub must be TrueZCFLAGSr�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_sanitizerrjrjrkr?�s$�����r?cCs"|sd}t|||d�}t�||�S)Nz"not working with sanitizers activer,)r?r�r)rr-r.r/r%rjrjrkr@�sr@cst����fdd��}|S)Nc
sTz�|i|��Wn<tyN}z$dt|�vr8t�d���WYd}~n
d}~00dS)NZCERTIFICATE_VERIFY_FAILEDz.system does not contain necessary certificates)r�r�r�r�)r�r�rr�rjrk�dec�s
z&system_must_validate_cert.<locals>.decr�)r�r2rjr�rk�system_must_validate_cert�sr3i@iZdoubleZIEEEztest requires IEEE 754 doubles�
requires zlibcCs0zddl}Wnty"d}Yn0t�||�Sr�)�zlibr�r��
skipUnless)rr5rjrjrkr8�s

r8�
requires gzipcCs0zddl}Wnty"d}Yn0t�||�Sr�)�gzipr�r�r6)rr8rjrjrkr/�s

r/�requires bz2cCs0zddl}Wnty"d}Yn0t�||�Sr�)�bz2r�r�r6)rr:rjrjrkr0�s

r0�
requires lzmacCs0zddl}Wnty"d}Yn0t�||�Sr�)�lzmar�r�r6)rr<rjrjrkr1�s

r1�java�getandroidapilevelz/system/bin/shz/bin/shz$testz@testz	{}_{}_tmpzhttp://www.pythontest.netr�)�æuİuŁuφuКuאu،uتuก� u€u-àòɘŁğrZNFD�ntr�u-共Ł♡ͣ�ztWARNING: The filename %r CAN be encoded by the filesystem encoding (%s). Unicode filename tests may not be effective��s-��surrogateescape)s�w�rBs���s�s��c
cs�ddl}d}|dur.|��}d}tj�|�}nZzt�|�d}WnFty�}z.|sV�tjd|�d|��t	dd�WYd}~n
d}~00|r�t�
�}z"|VW|r�|t�
�kr�t|�n|r�|t�
�kr�t|�0dS)NrFTz5tests may fail, unable to create temporary directory �: �r�)�tempfile�mkdtempr�r��realpath�mkdirr�r{r�r��getpidr)r��quietrFZdir_createdr��pidrjrjrk�temp_dir�s6
���
�rMc
cs�t��}zt�tj�|��WnFtyd}z.|s4�tjd|�d|��tdd�WYd}~n
d}~00zt��VWt�|�nt�|�0dS)NzBtests may fail, unable to change the current working directory to rDrEr�)	r��getcwd�chdirr�rHr�r{r�r�)r�rKZ	saved_dirr�rjrjrk�
change_cwd�s 
���rP�tempcwdc	csbt||d��B}t||d��}|VWd�n1s60YWd�n1sT0YdS)N)r�rK)rK)rMrP)r�rKZ	temp_pathZcwd_dirrjrjrkr�sr�umaskc	cs0t�|�}zdVWt�|�nt�|�0dSrm)r�rR)rRZoldmaskrjrjrkrG�s
rG�datacCsXtjdkrdSddl}d}|�d�}|��\}}t|�|d��t|�td|�dS)Nrrz 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)r�r�r��get_terminal_sizer��center)Z	test_namer�rnZdetailZpadding�_rjrjrk�darwin_malloc_err_warning�s

rWcCsbtj�|�r|S|dur&tj�||�}tgtj}|D]&}tj�||�}tj�|�r6|Sq6|Srm)r�r��isabsr��
TEST_HOME_DIRr��exists)r�Zsubdirr��dn�fnrjrjrkrsrcCs(t�|tjtjBtjB�}t�|�dSrm)r��open�O_WRONLY�O_CREAT�O_TRUNC�close)r��fdrjrjrkrsrc	cs4t�|tj�}z|VWt�|�nt�|�0dSrm)r�r]�O_RDONLYra)r��dir_fdrjrjrk�open_dir_fdsrecCs,t|���}dd�|D�}d�|�}d|S)NcSsg|]}d|�qS)z%r: %rrj)r�Zpairrjrjrk�
<listcomp>(r�zsortdict.<locals>.<listcomp>z, z{%s})�sorted�itemsr�)�dictrhZ	reprpairsZ
withcommasrjrjrkrW%s
rWcCs<ttd�}z|��W|��tt�S|��tt�0dS)N�wb)r]r�filenorarr�rjrjrk�make_bad_fd,s
��rl��lineno�offsetcCs�|�t|��}t|dd�Wd�n1s.0Y|j}|�|j�|dur`|�|j|�|�|j�|dur�|�|j|�dS)Nz
<test string>�exec)ZassertRaisesRegex�SyntaxError�compile�	exception�assertIsNotNonern�assertEqualro)�testcase�	statement�errtextrnro�cmr�rjrjrkr%9s*r%cCstjdd��(}t�dt�t|dd�Wd�n1s:0Y|�t|�d|�|\}|�t|j	t�|j	�|r�|�
t|j�|�|�|j
d�|�|j�|dur�|�|j|�tjdd��.}t�dt�t|||||d�Wd�n1s�0Y|�|g�dS)	NT��record�alwaysz
<testcase>rpr�errorrm)r{r|r��
SyntaxWarningrrrur��
assertTrue�
issubclassr�ZassertRegexr��messager�rtrnr%)rvrwrxrnro�warnsr�rjrjrkr&Ds$*�$r&cs�ddl}ddl}zddl}Wnty2d}Yn0��dd��|j�|�d�d�d}tj	�
t|�}���fdd�}tj	�|�r�||�}|dur�|St
|�td�tr�td	|t�d
�|j��}	|r�|	j�d�|	j|td�}|�r
|j�d
�dk�r
|j|d�}z\t|d��4}
|��}|�r<|
�|�|��}�q Wd�n1�sR0YW|��n
|��0||�}|du�r�|Std|��dS)Nr�checkr��/���csDt|g��Ri���}�dur"|S�|�r8|�d�|S|��dSr�)r]�seekra)r\r��r�r�r)rjrk�check_valid_filels
z*open_urlresource.<locals>.check_valid_fileZurlfetchz	fetching %s ...r�)zAccept-Encodingr8�r�zContent-Encodingr8)�fileobjrjzinvalid resource %r)Zurllib.request�urllib.parser8r�r��parse�urlparser�r�r�r��
TEST_DATA_DIRrZrr!rr�rZrequestZbuild_openerZ
addheaders�appendr]raZheaders�getZGzipFile�read�writerar
)�urlr�r)�urllibr8r�r\r�r��opener�out�srjr�rkrF_sD
	

.
rFc@s0eZdZdd�Zdd�Zedd��Zdd�Zd	S)
�WarningsRecordercCs||_d|_dSr���	_warnings�_last)rsZ
warnings_listrjrjrkrr�szWarningsRecorder.__init__cCsDt|j�|jkr t|jd|�S|tjjvr0dStd||f��dS)Nr�z%r has no attribute %r)r�r�r�r�r{�WarningMessage�_WARNING_DETAILSr�)rs�attrrjrjrk�__getattr__�s
zWarningsRecorder.__getattr__cCs|j|jd�Srmr�rwrjrjrkr{�szWarningsRecorder.warningscCst|j�|_dSrm)r�r�r�rwrjrjrk�reset�szWarningsRecorder.resetN)rgrhrirrr��propertyr{r�rjrjrjrkr��s

r�ccst�d�}|j�d�}|r"|��tjdd��*}tjd�d�t	|�VWd�n1s^0Yt
|�}g}|D]j\}}d}	|dd�D]8}|j}
t�
|t|
�tj�r�t|
j|�r�d}	|�|�q�|	sx|sx|�||jf�qx|r�td|d	��|�rtd
|d	��dS)Nr�Z__warningregistry__Trzr{r|Fzunhandled warning %srz)filter (%r, %s) did not catch any warning)r��	_getframe�	f_globalsr��clearr{r|r�r�r�r�r��re�matchr��Ir�ru�remover�rg�AssertionError)�filtersrK�frame�registry�wZreraise�missingrn�cat�seen�warningrjrjrk�_filterwarnings�s4
(
��r�cOs.|�d�}|s$dtff}|dur$d}t||�S)NrKr�T)r��Warningr�)r�r�rKrjrjrkrM�s

rMccs\tjdd��0}tjd||d�dV|r.t�Wd�n1sB0Y|�|g�dS)NTrzr|)r�r�)r{r|r}�
gc_collectru)rvr�r��force_gcr�rjrjrkrO�s�$rOccs8t|tdd��dVWd�n1s*0YdS)NT)r�r�)rO�ResourceWarning)rvrjrjrkrNsrNc@s$eZdZdd�Zdd�Zdd�ZdS)rcGsJtj��|_|D]4}|tjvrtj|}|j|kr<tj|j=tj|=qdSrm)r�r��copy�original_modulesrg)rs�module_names�module_name�modulerjrjrkrr!s



zCleanImport.__init__cCs|Srmrjrwrjrjrk�	__enter__.szCleanImport.__enter__cGstj�|j�dSrm)r�r�r�r��rs�
ignore_excrjrjrk�__exit__1szCleanImport.__exit__N�rgrhrirrr�r�rjrjrjrkrs
rc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)rPcCstj|_i|_dSrm)r��environ�_environ�_changedrwrjrjrkrr:szEnvironmentVarGuard.__init__cCs
|j|Srm)r��rs�envvarrjrjrk�__getitem__>szEnvironmentVarGuard.__getitem__cCs*||jvr|j�|�|j|<||j|<dSrm�r�r�r��rsr��valuerjrjrk�__setitem__As
zEnvironmentVarGuard.__setitem__cCs2||jvr|j�|�|j|<||jvr.|j|=dSrmr�r�rjrjrk�__delitem__Gs

zEnvironmentVarGuard.__delitem__cCs
|j��Srm)r��keysrwrjrjrkr�NszEnvironmentVarGuard.keyscCs
t|j�Srm)�iterr�rwrjrjrk�__iter__QszEnvironmentVarGuard.__iter__cCs
t|j�Srm)r�r�rwrjrjrk�__len__TszEnvironmentVarGuard.__len__cCs|||<dSrmrjr�rjrjrk�setWszEnvironmentVarGuard.setcCs
||=dSrmrjr�rjrjrk�unsetZszEnvironmentVarGuard.unsetcCs|Srmrjrwrjrjrkr�]szEnvironmentVarGuard.__enter__cGsF|j��D].\}}|dur.||jvr8|j|=q
||j|<q
|jt_dSrm)r�rhr�r�r�)rsr��k�vrjrjrkr�`s

zEnvironmentVarGuard.__exit__N)rgrhrirrr�r�r�r�r�r�r�r�r�r�rjrjrjrkrP5srPc@s$eZdZdd�Zdd�Zdd�ZdS)�
DirsOnSysPathcGs(tjdd�|_tj|_tj�|�dSrm)r�r��original_value�original_object�extend)rs�pathsrjrjrkrrvszDirsOnSysPath.__init__cCs|Srmrjrwrjrjrkr�{szDirsOnSysPath.__enter__cGs|jt_|jtjdd�<dSrm)r�r�r�r�r�rjrjrkr�~szDirsOnSysPath.__exit__Nr�rjrjrjrkr�jsr�c@s&eZdZdd�Zdd�Zddd�ZdS)	r'cKs||_||_dSrm)r��attrs)rsr�r�rjrjrkrr�szTransientResource.__init__cCs|Srmrjrwrjrjrkr��szTransientResource.__enter__NcCsT|durPt|j|�rP|j��D](\}}t||�s4qPt||�|krqPqtd��dS)Nz%an optional resource is not available)r�r�r�rhr	r�r)rs�type_r��	tracebackr�Z
attr_valuerjrjrkr��s
zTransientResource.__exit__)NNNr�rjrjrjrkr'�sr')�errnoc
csRddl}tt|�}tt||���ztt|�VWtt||�ntt||�0dSr�)�ior�r��setattr�StringIO)Zstream_namer�Zorig_stdoutrjrjrk�captured_output�s
r�cCstd�S)Nr��r�rjrjrjrkr�srcCstd�S)N�stderrr�rjrjrjrkr�srcCstd�S)N�stdinr�rjrjrjrkr�s
rcCs2ddl}|��trt�d�|��|��dS)Nr皙�����?)�gcZcollectrAr�r�)r�rjrjrkr��s

r�ccsBddl}|��}|��zdVW|r>|��n|r<|��0dSr�)r��	isenabled�disable�enable)r�Zhave_gcrjrjrk�
disable_gc�s
�r�cCs6t�d�pd}d}|��D]}|�d�r|}q|dvS)NZ	PY_CFLAGSr�z-O)r�z-O0z-Og)r0r1r�r�)ZcflagsZ	final_optr�rjrjrk�python_is_optimized�s
r�ZnPZ0nZ
getobjectsZ2PZ0P�ncCst�t|t�Srm)�struct�calcsize�_header�_align��fmtrjrjrk�calcobjsize�sr�cCst�t|t�Srm)r�r��_vheaderr�r�rjrjrk�calcvobjsizesr�i@icCspddl}t�|�}t|�tkr(|jt@sBt|�tkrLt|�jt@rL||j7}dt|�||f}|�|||�dS)Nrz&wrong size for %s: got %d, expected %d)	�_testinternalcapir��	getsizeofr�	__flags__�_TPFLAGS_HEAPTYPE�_TPFLAGS_HAVE_GCZSIZEOF_PYGC_HEADru)r��o�sizer�r�rnrjrjrk�check_sizeofs

��
�r�c
gs�z ddl}t||�}|�|�}Wn&ty4�YnBd}}Yn00|D](}z|�||�WqvWqLYqL0qLzdVW|r�|r�|�||�n|r�|r�|�||�0dSr�)�localer��	setlocaler�)ZcatstrZlocalesr�r�Zorig_locale�locrjrjrkrQs(

�rQcs�fdd�}|S)Ncs"��fdd�}�j|_�j|_|S)Nc	s�z
tj}Wnty&t�d��Yn0dtjvr>tjd}nd}�tjd<|�zH�|i|��W|durttjd=n
|tjd<t��S|tjd<t��n&|dur�tjd=n
|tjd<t��0dS)Nztzset requiredZTZ)r��tzsetr�r�r�r�r�)r��kwdsrZorig_tz)r��tzrjrk�inner6s0




�

�

z-run_with_tz.<locals>.decorator.<locals>.inner)rg�__doc__)r�r�rr+rkr�5szrun_with_tz.<locals>.decoratorrj)rr�rjrrkrX4srXi�r�cCs�dttdtd�}t�d|tjtjB�}|dur>td|f��tt|�	d��||�	d��
��}|a|tkrrt}|t
dkr�td|f��|adS)Nr)r��m�g�tz(\d+(\.\d+)?) (K|M|G|T)b?$zInvalid memory limit %rrrEz$Memory limit %r too low to be useful)�_1M�_1Gr�r��
IGNORECASE�VERBOSErr�float�group�lower�real_max_memuse�MAX_Py_ssize_t�_2Gr)�limitZsizesr�memlimitrjrjrkrU^s"�
�$rUc@s$eZdZdd�Zdd�Zdd�ZdS)�_MemoryWatchdogcCsdjt��d�|_d|_dS)Nz/proc/{pid}/statm)rLF)rr�rJ�procfile�startedrwrjrjrkrrxsz_MemoryWatchdog.__init__c
Cs�zt|jd�}WnBtyR}z*t�d�|�t�tj�	�WYd}~dSd}~00|�2t
d�}tjtj
|g|tjd�|_Wd�n1s�0Yd|_dS)N�rz!/proc not available for stats: {}zmemory_watchdog.py)r�r�T)r]rr�r{r�rr�r�r��flushr�
subprocess�Popen�
executable�DEVNULL�mem_watchdogr)rsr�rZwatchdog_scriptrjrjrk�start|s�
�&z_MemoryWatchdog.startcCs|jr|j��|j��dSrm)rr�	terminate�waitrwrjrjrk�stop�s
z_MemoryWatchdog.stopN)rgrhrirrr r#rjrjrjrkrssrcs���fdd�}|S)Ncs ���fdd����_��_�S)Ncs��j}�j}tsd}n|}ts"�sDt||krDt�d||d��trztrzt�tdj||dd��t�}|�	�nd}z�||�W|r�|�
�Sn|r�|�
�0dS)Ni�'not enough memory: %.1fG minimum needed�@z* ... expected peak memory use: {peak:.1f}G)Zpeak)r��memuserr�r�rr�rrr r#)rsr�r&�maxsizeZwatchdog)�dry_runr�r�rjrkr��s<
�
��
�

��z.bigmemtest.<locals>.decorator.<locals>.wrapper)r�r&r��r(r&r��r�r�rkr��szbigmemtest.<locals>.decoratorrj)r�r&r(r�rjr)rkr2�s
!r2cs�fdd�}|S)NcsDttkr8tdkr$tdkr$t�d��q@t�dtd��n�|�SdS)Nl����lz-not enough memory: try a 32-bit build insteadr$r%)rrr�r�rwr�rjrkr��s���z!bigaddrspacetest.<locals>.wrapperrjr*rjr�rkr3�sr3c@seZdZdd�ZdS)r+cCst��}||�|Srm)r�Z
TestResult)rsr�r�rjrjrk�run�szBasicTestRunner.runN)rgrhrir+rjrjrjrkr+�sr+cCs|Srmrj)r�rjrjrk�_id�sr,cCs:|dkrt�st�tj�St|�r&tSt�d�|��SdS)Nrzresource {0!r} is not enabled)r
r�r%rr r,rrrjrjrk�requires_resource�s
r-cCstdd�|�S)NT)�cpython)�impl_detailr�rjrjrkr4�sr4cKsZtfi|��rtS|durPt|�\}}|r0d}nd}t|���}|�d�|��}t�|�S)Nz*implementation detail not available on {0}z%implementation detail specific to {0}z or )	rCr,�
_parse_guardsrgr�rr�r�r%)rn�guardsZ
guardnames�defaultrjrjrkr/�sr/cCs*|sddidfSt|���d}||fS)Nr.TFr)r��values)r1Zis_truerjrjrkr0�sr0cKs t|�\}}|�t����|�Srm)r0r�r�Zpython_implementationr)r1r2rjrjrkrCsrCcs,ttd�s�St����fdd��}|SdS)N�gettracec	s>t��}z$t�d��|i|��Wt�|�St�|�0dSrm)r�r4�settrace)r�r�Zoriginal_tracer+rjrkr�s

�zno_tracing.<locals>.wrapper)r	r�r�r�r*rjr+rk�
no_tracing
s

r6cCstt|��Srm)r6r4r�rjrjrk�
refcount_testsr7cCsNg}|jD]8}t|tj�r0t||�|�|�q
||�r
|�|�q
||_dSrm)Z_tests�
isinstancer��	TestSuite�
_filter_suiter�)�suiteZpredZnewtestsr�rjrjrkr:(s

r:cCs�ttjttdud�}|�|�}tdur4t�|���|jsD|j	sDt
�|��s�t|j
�dkrp|jsp|j
dd}n4t|j�dkr�|j
s�|jdd}nd}ts�|d7}dd�|j
D�}dd�|jD�}t|||��dS)	N)�	verbosity�capture_outputrrzmultiple errors occurredz!; run in verbose mode for detailscSsg|]\}}t|�|f�qSrj�r��r�ZtcZexc_strrjrjrkrfIr�z_run_suite.<locals>.<listcomp>cSsg|]\}}t|�|f�qSrjr>r?rjrjrkrfJr�)rr�r�r�junit_xml_listr+r�Zget_xml_elementZtestsRunZskippedrZ
wasSuccessfulr�rorprl)r;Zrunnerr�r�rorprjrjrk�
_run_suite4s&�
rAcCstdurdSt|���SdS�NT)�_match_test_func�idr�rjrjrk�
match_testUsrEcCsd|vot�d|�S)Nr�z[?*\[\]])r��search)r�rjrjrk�_is_full_match_test]srGcs~|durd}|durd}d��|tkr4t|�\}�|tkrHt|�\}�t|�at|�a�dush�durz��fdd�}|adS)Nrjcs*d}d}�r�|�}�r �|�}|o(|S�NTFrj)�test_id�acceptrz�Zaccept_funcZignore_funcrjrk�match_function|sz'set_match_tests.<locals>.match_function)�_accept_test_patterns�_compile_match_function�_ignore_test_patternsr�rC)Zaccept_patterns�ignore_patternsrLrjrKrk�set_match_testsgs	rQcs^|sd}d}nHttt|��r(t|�j}n.d�ttj|��}t�	|�j
��fdd�}|}||fS)Nrj�|cs$�|�rdStt�|�d���SdS)NTr�)�anyrr�)rI�Zregex_matchrjrk�match_test_regex�sz1_compile_match_function.<locals>.match_test_regex)�allrrGr��__contains__r��fnmatch�	translater�rrr�)�patternsr�ZregexrUrjrTrkrN�srNcGs�tjtjf}t��}|D]`}t|t�rR|tjvrH|�t�tj|��qxt	d��qt||�rh|�|�q|�t�
|��qt|t�t
|�dS)Nz)str arguments must be keys in sys.modules)r�r9ZTestCaser8r�r�r�ZaddTestZ
findTestCasesrZ	makeSuiter:rErA)�classesZvalid_typesr;�clsrjrjrkr,�s




r,cCsdSrmrjrjrjrjrk�_check_docstrings�sr]ZWITH_DOC_STRINGSztest requires docstringscCs`ddl}|durt}nd}|j|||d�\}}|rBtd||f��trXtd|j|f�||fS)Nr)r�optionflagsz%d of %d doctests failedz,doctest (%s) ... %d tests with zero failures)�doctestr�testmodr
r�rg)r�r<r^r_r�r	rjrjrkr-�s�r-cCs(|��D]}td|��tjdd�qdS)NzWarning -- T)r�r)�
splitlinesr�r�r�)rn�linerjrjrk�
print_warning�srccCstj��fSrm)r�r�r�rjrjrjrk�
modules_setup�srdcCs:dd�tj��D�}tj��tj�|�tj�|�dS)NcSs"g|]\}}|�d�r||f�qS)z
encodings.)r�)r�r�r�rjrjrkrf�s
�z#modules_cleanup.<locals>.<listcomp>)r�r�rhr�r�)Z
oldmodules�	encodingsrjrjrk�modules_cleanup�s
rfcCst��tj��fSrm)�_thread�_count�	threading�	_danglingr�rjrjrjrkrIsrIc	Gs�d}t|�D]�}t��tjf}||kr*q�|s�da|d}td|d|d�d|d�dt|��d��|D]}td	|���qnd}d}t�	d
�t
�qdS)N�dTrz&threading_cleanup() failed to cleanup rz threads (count: z, dangling: �)zDangling thread: �{�G�z�?)�rangergrhrirj�environment_alteredrcr�r�r�r�)Zoriginal_valuesZ
_MAX_COUNT�countr3Zdangling_threads�threadrjrjrkrJs*���

rJcst����fdd��}|S)Ncs(t�}z�|�Wt|�St|�0dSrm)rIrJ)r��keyr+rjrkr�:s�zreap_threads.<locals>.decoratorr�)r�r�rjr+rkrK6srKccs|durt}t��}z�dVWt��}||}t��}||kr@q�t��|kr�t��|}d||�d|d�d|�d|�d�	}t|��t�d�t�q.n~t��}||}t��}||kr��qt��|k�rt��|}d||�d|d�d|�d|�d�	}t|��t�d�t�q�0dS)Nz!wait_threads() failed to cleanup z threads after �.1fz seconds (count: z
, old count: rlrm)rbrgrhr��	monotonicr�r�r�)r�Z	old_countZ
start_time�deadlinerp�dtrnrjrjrk�wait_threads_exitDsN���

����
rwcCs8|durt}|�|�|��r4d|d�d�}t|��dS)Nzfailed to join the thread in rs� seconds)rbr��is_aliver�)rqr�rnrjrjrk�join_threadis
rzcCshttd�rttd�sdSzt�dtj�\}}WntyDYqdYn0|dkrPqdtd|���daqdS)N�waitpid�WNOHANGr�rz%reap_children() reaped child process T)r	r�r{r|r�rcro)rL�statusrjrjrkrHus	
rHccsLddl}t|�}g}�z<z |D]}|��|�|�qWn*tr\tdt|�t|�f��Yn0dVWz�|rx|�t��}}t	dd�D]\}|d7}|D]}|�
t|t��d��q�dd�|D�}|s�q�tr�td	t|�|f�q�Wd
d�|D�}|�rR|�t
j�tdt|���n2d
d�|D�}|�rP|�t
j�tdt|���0n�z�|�rb|�t��}}t	dd�D]f}|d7}|D]}|�
t|t��d���q�dd�|D�}|�s��q�t�rxtd	t|�|f��qxWd
d�|D�}|�rF|�t
j�tdt|���n2d
d�|D�}|�rD|�t
j�tdt|���00dS)Nrz/Can't start %d threads, only %d threads startedr��<rmcSsg|]}|��r|�qSrj�ry�r�r	rjrjrkrf�r�z!start_threads.<locals>.<listcomp>z7Unable to join %d threads during a period of %d minutescSsg|]}|��r|�qSrjr�r�rjrjrkrf�r�zUnable to join %d threads)�faulthandlerr�r r�rr�r�r�rtrnr��maxZdump_tracebackr�r�r�)�threadsZunlockr�rr	�endtimeZ	starttimer�rjrjrkrL�sz�
�
��
��rLc
cs�t||�rHt||�}t|||�z|VWt|||�q�t|||�0nBt|||�zdVWt||�r�t||�nt||�r�t||�0dSrm)r	r�r��delattr)r�r��new_val�real_valrjrjrkrS�s


�
rSc	csn||vr8||}|||<z|VW|||<qj|||<0n2|||<zdVW||vrj||=n||vrh||=0dSrmrj)r��itemr�r�rjrjrkrR�s�rRcCst��Srm)r�_args_from_interpreter_flagsrjrjrjrk�args_from_interpreter_flags�sr�cCst��Srm)r�"_optim_args_from_interpreter_flagsrjrjrjrk�!optim_args_from_interpreter_flags�sr�c@s eZdZdZdd�Zdd�ZdS)rT)rnr�cKs:d}|D],}||}|�|�}|�|||�sd}q6q|SrH)r��match_value)rs�dr�r�r�r��dvrjrjrk�matches	s
zMatcher.matchescCsHt|�t|�krd}n.t|�tus,||jvr6||k}n|�|�dk}|S)NFr)rr��_partial_matches�find)rsr�r�r�r�rjrjrkr�	s
zMatcher.match_valueN)rgrhrir�r�r�rjrjrjrkrT�srTc
CsXtdurtStd}zt�t|�d}WntttfyDd}Yn0t�|�|a|S)NrTF)�_can_symlinkrr��symlinkr��NotImplementedErrorr�r�)Zsymlink_path�canrjrjrkr"	s

rcCs t�}d}|r|St�|�|�S)Nz*Requires functional symlink implementation)rr�r%�r��okrnrjrjrkr.1	sr.cCsXddl}tdurBtjdkr>|��ddkr>t��jdkr>dandatrTt�	d�|�S|S)	Nrrdr�cp65001r�TFz!buggy MSVC UCRT strptime/strftime)
r��_buggy_ucrtr�r��getdefaultlocaler��	localtime�tm_zoner�r%)r�r�rjrjrkr=8	s

��r=c@sfeZdZddd�Zejdkr&dd�Zndd�Zdd	�Zd
d�Zdd
�Z	dd�dd�Z
dd�dd�ZdS)�
PythonSymlinkNcCs@|ptj�t�|_g|_tj�tj�|_	g|_
d|_|��dSrm)
r�r�r�r�link�_linkedrHr�r�real�
_also_link�_env�_platform_specific)rsr�rjrjrkrrO	szPythonSymlink.__init__rdc
Csddl}tj�|j�r0tj�|j�s0|�d�|_|�tj�}tj�	|�}tj�	|j
�}|j�|tj�
|tj�|��f�t�tj�
t�|�d��D]&}|j�|tj�
|tj�|��f�q�dd�tjD�|_tj�	|j�|jd<t�d�r�tj�	tj�|jd<dS)Nrzvcruntime*.dllcSsi|]}|��t�|��qSrj)�upperr��getenv)r�r�rjrjrk�
<dictcomp>o	r�z4PythonSymlink._platform_specific.<locals>.<dictcomp>Z
PYTHONHOMETZ
PYTHONPATH)�_winapir�r��lexistsr�rZZGetModuleFileNamer�Z	dllhandler�r�r�r�r��basename�glob�escaper�r�r0Zis_python_buildr�)rsr�rZsrc_dirZdest_dirZruntimerjrjrkr�Z	s&��
z PythonSymlink._platform_specificcCsdSrmrjrwrjrjrkr�t	scCsJt�|j|j�|j�|j�|jD] \}}t�||�|j�|�q$|Srm)r�r�r�r�r�r�r�)rsr�r�rjrjrkr�w	szPythonSymlink.__enter__cCsX|jD]L}zt�|�WqtyP}z tr<td�||��WYd}~qd}~00qdS)Nzfailed to clean up {}: {})r�r�r��IOErrorrr�r)rs�exc_type�	exc_value�exc_tbr��exrjrjrkr�	s
zPythonSymlink.__exit__cCsp|g|�}tj|tjtj|d�}|��}|j|krltr\tt|d��tt|d�tj	d�t
d�|j���|S)N)r�r��envrrr�z'unexpected return code: {0} (0x{0:08X}))rr�PIPE�communicate�
returncoderr��reprr�r��RuntimeErrorr)rsZpythonr�r�r��cmdr�rrjrjrk�_call�	s

�

�zPythonSymlink._callr)r�cGs|�|j|d|�Srm)r�r��rsr�r�rjrjrk�	call_real�	szPythonSymlink.call_realcGs|�|j||j|�Srm)r�r�r�r�rjrjrk�	call_link�	szPythonSymlink.call_link)N)rgrhrirrr�r�r�r�r�r�r�r�rjrjrjrkr�M	s




r�c	Csddl}tdurtSttd�s$d}n�|��}|j|d�\}}z�ttd���}z`t�|dd�t�|dd	�t�|�	�dd�t
��}t�
d
|�}|dup�t|�d��dk}Wnty�d}Yn0Wd�n1s�0YWtt�t|�t|�ntt�t|�t|�0|a|S)
Nr�setxattrF��dirrjs	user.testr�strusted.foos42z
2.6.(\d{1,2})r�')rF�
_can_xattrr	r�rG�mkstempr]rr�rkr�rr�r�rrr�rr�)rFr�Ztmp_dirZtmp_fpZtmp_name�fpZkernel_versionrrjrjrk�	can_xattr�	s4
*
�
r�cCs t�}d}|r|St�|�|�S)Nz(no non-broken extended attribute support)r�r�r%r�rjrjrkr7�	sr7cCs$tpt}d}|r|St�|�|�S)Nz#Not run for (non-extended) PGO task)rY�PGO_EXTENDEDr�r%r�rjrjrk�skip_if_pgo_task�	s
r�c	Cs�ddl}|j|d��n}|j}|��}||kr4|��}ztj�||�WWd�StyrYWd�dS0Wd�n1s�0YdS)Nrr�F)	rF�NamedTemporaryFiler�r�rr�r��samefiler�)Z	directoryrF�base�	base_pathZ	case_pathrjrjrkr�	srrcCs>tt|��tt|��}|r(|t|�8}tdd�|D��}|S)Ncss&|]}|�d�r|�d�r|VqdS)rV�__N)r��endswith)r�rrjrjrkr��	s�z&detect_api_mismatch.<locals>.<genexpr>)r�r�)Zref_apiZ	other_apirzZ
missing_itemsrjrjrkr;�	s
r;cCs�|dur|jf}nt|t�r"|f}t|�}t|�D]R}|�d�s2||vrJq2t||�}t|dd�|vszt|d�s2t|tj	�s2|�
|�q2|�|j|�dS)NrVrh)
rgr8r�r�r�r�r�r	�types�
ModuleType�addZassertCountEqual�__all__)Z	test_caser�Zname_of_module�extraZ	blacklistZexpectedr�r�rjrjrkr<�	s )


�
�r<cCs�zddl}Wnty YdS0|�|j|jB|jB|jB�t|d�r�|j|j	|j
fD]2}|r�|�||j�|�
||j�qZ|�|d�qZdS)Nr�CrtSetReportMode)�msvcrtr��SetErrorModeZSEM_FAILCRITICALERRORSZSEM_NOALIGNMENTFAULTEXCEPT�SEM_NOGPFAULTERRORBOXZSEM_NOOPENFILEERRORBOXr	�CRT_WARN�	CRT_ERROR�
CRT_ASSERTr��CRTDBG_MODE_FILE�CrtSetReportFile�CRTDBG_FILE_STDERR)rr�rrjrjrk�suppress_msvcrt_asserts 
s"���
r�c@s$eZdZdZdZdd�Zdd�ZdS)rVNc		Cs�tj�d�r�zddl}Wnty,YdS0|�|j�|_|�|j|jB�t|d�r�i|_	|j
|j|jfD].}|�
||j�}|�||j�}||f|j	|<qnn�zddl}||_Wnty�d|_Yn0|jdu�r$z2|j�|jj�|_|j�|jjd|jdf�Wnttf�y"Yn0tjdk�r�gd�}tj|tjtjd�}|�|��d}Wd�n1�st0Y|��dk�r�td	d
dd�|S)
Nr�rr�rr)z/usr/bin/defaultsr�zcom.apple.CrashReporterZ
DialogType)r�r�s	developerz:this test triggers the Crash Reporter, that is intentionalr�T)�endr)r�r�r�r�r�r�r��	old_valuer	�	old_modesr�r�r�r�r�r�r�rZ	getrlimit�RLIMIT_CORE�	setrlimitrr�rrr�r��stripr�)	rsr��report_type�old_mode�old_filerr��procr�rjrjrkr�>
s\
���
��,�zSuppressCrashReport.__enter__c	Gs�|jdurdStj�d�rfddl}|�|j�|jr�|j��D]$\}\}}|�||�|�	||�q>n:|j
dur�z|j
�|j
j|j�Wnt
tfy�Yn0dS)Nr�r)r�r�r�r�r�r�r�rhr�r�rr�r�rr�)rsr�r�r�r�r�rjrjrkr��
s

zSuppressCrashReport.__exit__)rgrhrir�r�r�r�rjrjrjrkrV5
sCrVc	spt���d�z�j��Wn"ttfy>t��d��Yn0d�����fdd�}|�|�t��|�dS)NFTcs �rt����n
t���dSrm)r�r�rj�Z
attr_is_local�	attr_name�object_to_patchr�rjrk�cleanup�
szpatch.<locals>.cleanup)r��__dict__r�r�Z
addCleanupr�)Z
test_instancer�r�Z	new_valuer�rjr�rk�patch�
s


r�cCsDzddl}WntyYn0|��r2t�d��ddl}|�|�S)NrzUrun_in_subinterp() cannot be used if tracemalloc module is tracing memory allocations)�tracemallocr��
is_tracingr�r��	_testcapi�run_in_subinterp)�coder�r�rjrjrkr��
s
r�csHG��fdd�d|�}d�|||���|�tt��t�|���dS)NcseZdZ��fdd�ZdS)z%check_free_after_iterating.<locals>.Acs(d�zt��Wnty"Yn0dSrB)�next�
StopIterationrw��done�itrjrk�__del__�
s
z-check_free_after_iterating.<locals>.A.__del__N)rgrhrir�rjr�rjrk�A�
sr�F)ZassertRaisesr�r�r�r)r�r�r\r�r�rjr�rk�check_free_after_iterating�
s	r�cCs�ddlm}m}m}m}|��}|�|�|jdkrXz|��Wn|j	yVYdS0|j
D]F}|rp||vrpq^t||�}|r�n|s�q^|�|d�dur^|dSq^dS)Nr)�	ccompilerr0�spawnroZmsvc)
Z	distutilsr�r0r�roZnew_compilerZcustomize_compilerZ
compiler_typeZ
initializeZDistutilsPlatformErrorZexecutablesr�Zfind_executable)Z	cmd_namesr�r0r�roZcompilerr�r�rjrjrkrZ�
s$	



rZcCs@d}tr6||kr6tdur.t�ddg���dkatr6|}t�|�S)Ng�h㈵��>Zgetpropzro.kernel.qemu�1)rB�_is_android_emulatorr�check_outputr�r�rE)�intervalZminimum_intervalrjrjrkrE�
s��rEc
csXddl}tj��}|��}z$|��dVW|rT|j|dd�n|rR|j|dd�0dS)NrT)r�Zall_threads)r�r�r�rk�
is_enabledr�r�)r�rbrrjrjrk�disable_faulthandler
s
�rc	Cs�tj�d�r8zt�d�}t|�dWSty6Yn0d}ttd�rhzt�d�}Wnt	yfYn0d}tjdkr�zddl
}|jWntt
fy�Yn,0i}|j|j|jfD]}|�|d�||<q�z�d}t|�D]\}zt�|�}Wn6t	�y }z|jtjk�r�WYd}~q�d}~00t�|�|d7}q�W|du�r�|j|j|jfD]}|�|||��qRn4|du�r�|j|j|jfD]}|�|||��q�0|S)	N)�linuxZfreebsdz
/proc/self/fdr��sysconf�SC_OPEN_MAXrdr)r�r�r�r�r�r�r�r	rr�r�r�r�r�r�r�r�rn�dupr��EBADFra)	r��MAXFDr�r�r�rprb�fd2rrjrjrkr[s`



�

��
�r[c@s$eZdZdd�Zdd�Zdd�ZdS)�SaveSignalsc	Cs^ddl}||_|��|_dD]6}zt||�}WntyDYqYn0|j�|�qi|_dS)Nr)�SIGKILL�SIGSTOP)�signal�
valid_signals�signalsr�r�r��handlers)rsr�signame�signumrjrjrkrrcs

zSaveSignals.__init__cCs0|jD]$}|j�|�}|dur q||j|<qdSrm)rr�	getsignalr�rsr�handlerrjrjrk�saveps

zSaveSignals.savecCs&|j��D]\}}|j�||�q
dSrm)rrhrrrjrjrk�restore|szSaveSignals.restoreN)rgrhrirrrrrjrjrjrkrZs	
rcCsddl}|jSr�)r�Z
WITH_PYMALLOC)r�rjrjrk�
with_pymalloc�src@s$eZdZdd�Zdd�Zdd�ZdS)�FakePathcCs
||_dSrmr�)rsr�rjrjrkrr�szFakePath.__init__cCsd|j�d�S)Nz
<FakePath �>r�rwrjrjrk�__repr__�szFakePath.__repr__cCs6t|jt�s$t|jt�r,t|jt�r,|j�n|jSdSrm)r8r��
BaseExceptionrr�rwrjrjrk�
__fspath__�s
�
�zFakePath.__fspath__N)rgrhrirrrrrjrjrjrkr�src@seZdZdd�Zdd�ZdS)�
_ALWAYS_EQcCsdSrBrj�rs�otherrjrjrk�__eq__�sz_ALWAYS_EQ.__eq__cCsdS�NFrjr rjrjrk�__ne__�sz_ALWAYS_EQ.__ne__N)rgrhrir"r$rjrjrjrkr�src@s$eZdZdd�Zdd�Zdd�ZdS)�	_NEVER_EQcCsdSr#rjr rjrjrkr"�sz_NEVER_EQ.__eq__cCsdSrBrjr rjrjrkr$�sz_NEVER_EQ.__ne__cCsdS)Nrrjrwrjrjrk�__hash__�sz_NEVER_EQ.__hash__N)rgrhrir"r$r&rjrjrjrkr%�sr%c@seZdZdd�Zdd�ZdS)�_LARGESTcCs
t|t�Srm)r8r'r rjrjrkr"�sz_LARGEST.__eq__cCsdSr#rjr rjrjrk�__lt__�sz_LARGEST.__lt__N)rgrhrir"r(rjrjrjrkr'�sr'c@seZdZdd�Zdd�ZdS)�	_SMALLESTcCs
t|t�Srm)r8r)r rjrjrkr"�sz_SMALLEST.__eq__cCsdSr#rjr rjrjrk�__gt__�sz_SMALLEST.__gt__N)rgrhrir"r*rjrjrjrkr)�sr)cCsddl}|jjSr�)Zasyncio.events�eventsZ_event_loop_policy)Zasynciorjrjrk�maybe_get_event_loop_policy�sr,c
Cs�||}}ddl}|����}|��d}t|d�|_|�|�}|d||}||}	||	}
||
}||d|d|||	d|	}t|�t|���fWd�S1s�0YdS)Nrr��r)�decimalZlocalcontext�
bit_lengthr�ZprecZDecimalr�sqrt)
ZnbinsZnballsr�r�r.�ctx�bitsr[Zp1emptyZ	meanemptyZoccupiedZ
collisions�varrjrjrk�collision_stats�s


(r4c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�catch_unraisable_exceptioncCsd|_d|_dSrm)�
unraisable�	_old_hookrwrjrjrkrrsz#catch_unraisable_exception.__init__cCs
||_dSrm)r6)rsr6rjrjrk�_hooksz catch_unraisable_exception._hookcCstj|_|jt_|Srm)r��unraisablehookr7r8rwrjrjrkr�sz$catch_unraisable_exception.__enter__cGs|jt_|`dSrm)r7r�r9r6�rs�exc_inforjrjrkr�sz#catch_unraisable_exception.__exit__N�rgrhrirrr8r�r�rjrjrjrkr5�sr5c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�catch_threading_exceptioncCs"d|_d|_d|_d|_d|_dSrm)r�r��
exc_tracebackrqr7rwrjrjrkrrBs
z"catch_threading_exception.__init__cCs$|j|_|j|_|j|_|j|_dSrm)r�r�r>rq)rsr�rjrjrkr8Iszcatch_threading_exception._hookcCstj|_|jt_|Srm)ri�
excepthookr7r8rwrjrjrkr�Osz#catch_threading_exception.__enter__cGs|jt_|`|`|`|`dSrm)r7rir?r�r�r>rqr:rjrjrkr�Ts
z"catch_threading_exception.__exit__Nr<rjrjrjrkr=#sr=r�cCs&tjdkr�ddl}|durt}t��}d}d}t�|tj�\}}|dkrJq�t��|}	|	tkr�zt�||j	�t�|d�Wnt
y�Yn0td|�d|	d�d���t|d	|�}t�
|�q.nt�|d�\}}t�|�}
|
|k�rtd|�d
|
�d|�d���||k�r"td
|�d|����dS)NrArr�r�zprocess z is still running after rsrxr�z exited with code z, but exit code z is expectedzpid z != pid )r�r�rrbr�rtr{r|�killrr�r��minr��waitstatus_to_exitcode)rL�exitcoder�r�t0r�Z	max_sleepZpid2r}rvZ	exitcode2rjrjrk�wait_process\s<

�


�

rEcCs ddl}|��}|dddkS)Nr�configZ_use_peg_parser)r�Zget_configs)r�rFrjrjrk�use_old_parser�srGcCst�t�|�Srm)r�rrGrvrjrjrk�skip_if_new_parser�srHc
cs<tjdd�}zdVW|tjdd�<n|tjdd�<0dSrm)r{r�)Zold_filtersrjrjrk�save_restore_warnings_filters�srIc
Csdtd�td�}tjdkr`z|jdd�Wn4ty^}zt�d|����WYd}~n
d}~00dS)N�_multiprocessingzmultiprocessing.synchronizer)r1z broken multiprocessing SemLock: )r
r�r��Lockr�r�r�)�synchronizer�rjrjrk�*skip_if_broken_multiprocessing_synchronize�s
rM�Kc	cs8t��}zt�|�dVWt�|�nt�|�0dSrm)r��getrecursionlimit�setrecursionlimit)Z	max_depthZoriginal_depthrjrjrk�infinite_recursion�s

rQ)r��like�returncCs,t�}tjdt||dt|��d�d�|S)Nrz�
(?#supportrl)r�r�r�)�objectr{r}r~rD)r�rR�tokenrjrjrk�ignore_deprecations_from�s�rW)�tokensrSc	Gs�|std��g}tdd�|D��}tjD]Z\}}}}}|dkrn|turnt|tj�rZ|j}n|p`d}|�	|�rnq(|�
|||||f�q(tj|kr�|tjdd�<t��dS)Nz<Provide token or tokens returned by ignore_deprecations_fromcss|]}dt|��d�VqdS)rTrlN)rD)r�rVrjrjrkr��r�z-clear_ignored_deprecations.<locals>.<genexpr>rzr�)rr�r{r�r~r8r��Patternr�r�r��_filters_mutated)	rXZnew_filtersr��actionr�r�r�rnrnrjrjrk�clear_ignored_deprecations�s

r\c	cs8t��}zt�|�dVWt�|�nt�|�0dSrm)r��get_int_max_str_digits�set_int_max_str_digits)Z
max_digits�currentrjrjrk�adjust_int_max_str_digits�s

r`)T)F)rjrjF)F)N)N)r4)r7)r9)r;)NF)F)rQF)N)r�)r�)F)T)N)NN)Nr)N)N)N)Nrjrj)F)rj)rN(rgr��collections.abc�collections�
contextlibr�rXr�r�r��importlib.utilr�r�r�r�r�rr�r0rgrir�r�r�r{Z
testresultrr�r`�machinerarbrcr
r	r
rlrr�r�contextmanagerr�r>r
r�r9r:rr5rrrrr@rr�rrrr�r�r�r�r�r�r�rr�rr�rr
r r!r&r"r#r$r?r@r3rZ
SOCK_MAX_SIZEr6r�
__getformat__r6r8r/r0r1rAr	rBrDr�ZTESTFN_ASCIIrrJZ
TEST_HTTP_URLZFS_NONASCII�	character�fsdecode�fsencode�UnicodeErrorZTESTFN_UNICODE�unicodedata�	normalize�getfilesystemencodingZTESTFN_ENCODINGZTESTFN_UNENCODABLEZgetwindowsversion�encode�UnicodeEncodeErrorr��decode�UnicodeDecodeErrorZTESTFN_UNDECODABLEZTESTFN_NONASCIIrrNrrYr�rMrPrrGr�r�r�r�ZTEST_SUPPORT_DIRrYr�r�rWrrrerWrlr%r&rFrUr�r�rMr�rOrNr�abc�MutableMappingrPr�r'r�Z	ETIMEDOUTr(Z
ECONNRESETr)r*r�rrrr�r�r�r�r�r�r�r�r�r�r�rQrXr
rrZ_4Gr'rrUrr2r3r+r,r-r4r/r0rCr6r7r:rArCrMrOrErGrQrNr,r]r1ZMISSING_C_DOCSTRINGSrZHAVE_DOCSTRINGSZrequires_docstringsr-rcrdrfrorIrJrKrwrzrHrLrSrRr�r�rTr�rr.r�r=r�r�r�r7r�rr;r<r�rVr�r�r�rZr�rErr[rrrrr\r%r]�total_orderingr'r^r)r_r,�	hash_info�widthZ	NHASHBITSr4r5r=rErGrHrIrMrQr�rWr\r`rjrjrjrk�<module>s�8	
6	
!

L			�
!
�
�



'


	
6'

 5
		



#0


!����
$$"N�;a";'	

	
	
",95


Youez - 2016 - github.com/yon3zu
LinuXploit