HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_finalization.cpython-37.opt-2.pyc
B

��g�8�@s
ddlZddlZddlZddlZyddlmZWnek
rLdd�ZYnXddlmZGdd�d�Z	Gdd	�d	e	�Z
Gd
d�de	�ZGdd
�d
e	�ZGdd�de
�Z
Gdd�dee
�ZGdd�d�ZGdd�deej�ZGdd�d�ZGdd�dee
�ZGdd�dee�ZGdd�dee
�ZGdd�deej�ZGd d!�d!�ZGd"d#�d#ee
�ZGd$d%�d%ee�ZGd&d'�d'ee
�ZGd(d)�d)eej�ZGd*d+�d+e
�ZeGd,d-�d-e��ZeGd.d/�d/e��ZeGd0d1�d1ee��Zej Gd2d3�d3eej��Z!e"d4k�re�#�dS)5�N)�with_tp_delcCsGdd�dt�}|S)Nc@seZdZdd�ZdS)zwith_tp_del.<locals>.Cc_std��dS)Nzrequires _testcapi.with_tp_del)�	TypeError)�cls�args�kwargs�r�2/usr/local/lib/python3.7/test/test_finalization.py�__new__szwith_tp_del.<locals>.C.__new__N)�__name__�
__module__�__qualname__r	rrrr�Csr
)�object)rr
rrrr
sr)�supportc@sZeZdZgZgZgZgZdZdZe	dd��Z
e	ejdd���Z
dd�Zd	d
�Zdd�Zd
S)�NonGCSimpleBaseFrcCs>|j��|j��tj��t��|j��|j��dS)N)�	survivors�clear�errors�gc�garbage�collect�	del_calls�tp_del_calls)rrrr�_cleanup%s



zNonGCSimpleBase._cleanupc	cs^t���L|j��|j��dt_zdV|jr<|jd�Wddt_|��XWdQRXdS)NFrT)	rZ
disable_gcrrrr�	_cleaningrr)rrrr�test.s


zNonGCSimpleBase.testcCsdS)Nr)�selfrrr�check_sanity@szNonGCSimpleBase.check_sanityc
Cs^y*|js(|j�t|��|��|��Wn.tk
rX}z|j�|�Wdd}~XYnXdS)N)rr�append�idr�side_effect�	Exceptionr)r�errr�__del__EszNonGCSimpleBase.__del__cCsdS)Nr)rrrrr RszNonGCSimpleBase.side_effectN)r
rrrrrrr�	__slots__�classmethodr�
contextlib�contextmanagerrrr#r rrrrrs	
rc@seZdZdd�Zdd�ZdS)�
SimpleBasecCst|�|_dS)N)rZid_)rrrr�__init__ZszSimpleBase.__init__cCsdS)Nr)rrrrr]szSimpleBase.check_sanityN)r
rrr)rrrrrr(Xsr(c@seZdZdZdS)�NonGCrN)r
rrr$rrrrr*asr*c@seZdZdZdd�ZdS)�NonGCResurrectorrcCs|j�|�dS)N)rr)rrrrr gszNonGCResurrector.side_effectN)r
rrr$r rrrrr+dsr+c@seZdZdS)�SimpleN)r
rrrrrrr,msr,c@seZdZdS)�SimpleResurrectorN)r
rrrrrrr-psr-c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestBasecCs"tjdd�|_gtjdd�<dS)N)rr�old_garbage)rrrr�setUpvszTestBase.setUpcCs&z|�tjg�Wd|`t��XdS)N)�assertEqualrrr/r)rrrr�tearDownzszTestBase.tearDowncCs|�ttj�t|��dS)N)r1�sortedr(r)r�idsrrr�assert_del_calls�szTestBase.assert_del_callscCs|�ttj�t|��dS)N)r1r3r(r)rr4rrr�assert_tp_del_calls�szTestBase.assert_tp_del_callscCs$|�tdd�tjD��t|��dS)Ncss|]}t|�VqdS)N)r)�.0�xrrr�	<genexpr>�sz,TestBase.assert_survivors.<locals>.<genexpr>)r1r3r(r)rr4rrr�assert_survivors�szTestBase.assert_survivorscCs$|�tdd�tjD��t|��dS)Ncss|]}t|�VqdS)N)r)r7r8rrrr9�sz*TestBase.assert_garbage.<locals>.<genexpr>)r1r3rr)rr4rrr�assert_garbage�szTestBase.assert_garbagecCstj��dS)N)r(rr)rrrr�clear_survivors�szTestBase.clear_survivorsN)
r
rrr0r2r5r6r:r;r<rrrrr.tsr.c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�SimpleFinalizationTestc	Cszt���ht�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�WdQRXdS)N)r(rr,r�weakref�refrrr5r:�assertIs)r�sr4�wrrrr�test_simple�s





z"SimpleFinalizationTest.test_simplec	Cs�t���pt�}t|�g}t�|�}~t��|�|�|�	|�|�
|�d�|��t��|�|�|�	g�WdQRX|�|�d�dS)N)
r(rr-rr>r?rrr5r:�assertIsNotr<r@)rrAr4rBrrr�test_simple_resurrect�s





z,SimpleFinalizationTest.test_simple_resurrectc	Csrt���`t�}|�t�|��t|�g}~t��|�|�|�	g�t��|�|�|�	g�WdQRXdS)N)
r(rr*�assertFalser�
is_trackedrrr5r:)rrAr4rrr�test_non_gc�s




z"SimpleFinalizationTest.test_non_gcc	Cs~t���lt�}|�t�|��t|�g}~t��|�|�|�	|�|�
�t��|�|d�|�	|�WdQRXdS)N�)r(rr+rFrrGrrr5r:r<)rrAr4rrr�test_non_gc_resurrect�s



z,SimpleFinalizationTest.test_non_gc_resurrectN)r
rrrCrErHrJrrrrr=�s
r=cs(eZdZ�fdd�Z�fdd�Z�ZS)�
SelfCycleBasecst���||_dS)N)�superr)r?)r)�	__class__rrr)�s
zSelfCycleBase.__init__cst���dS)N)rLr)r)rMrrr�s
zSelfCycleBase.check_sanity)r
rrr)r�
__classcell__rr)rMrrK�srKc@seZdZdS)�SimpleSelfCycleN)r
rrrrrrrO�srOc@seZdZdS)�SelfCycleResurrectorN)r
rrrrrrrP�srPc@seZdZdd�ZdS)�SuicidalSelfCyclecCs
d|_dS)N)r?)rrrrr �szSuicidalSelfCycle.side_effectN)r
rrr rrrrrQ�srQc@s$eZdZdd�Zdd�Zdd�ZdS)�SelfCycleFinalizationTestc	Cszt���ht�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�WdQRXdS)N)r(rrOrr>r?rrr5r:r@)rrAr4rBrrrrC�s





z%SelfCycleFinalizationTest.test_simplec	Cs�t���~t�}t|�g}t�|�}~t��|�|�|�	|�|�
|�d�|��t��|�|�|�	g�|�
|�d�WdQRXdS)N)r(rrPrr>r?rrr5r:r@r<)rrAr4rBrrrrE�s






z/SelfCycleFinalizationTest.test_simple_resurrectc	Cs�t���vt�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�|�
|�d�WdQRXdS)N)r(rrQrr>r?rrr5r:r@)rrAr4rBrrr�test_simple_suicides






z-SelfCycleFinalizationTest.test_simple_suicideN)r
rrrCrErSrrrrrR�srRcs$eZdZdd�Z�fdd�Z�ZS)�ChainedBasecCsd|_||_||_dS)NF)�suicided�left�right)rrVrrr�chain&szChainedBase.chaincs2t���|jrn|j}|jr n|j}|jr.ndS)N)rLrrUrVrW)rrVrW)rMrrr+s
zChainedBase.check_sanity)r
rrrXrrNrr)rMrrT$srTc@seZdZdS)�
SimpleChainedN)r
rrrrrrrY<srYc@seZdZdS)�ChainedResurrectorN)r
rrrrrrrZ?srZc@seZdZdd�ZdS)�SuicidalChainedcCsd|_d|_d|_dS)NT)rUrVrW)rrrrr DszSuicidalChained.side_effectN)r
rrr rrrrr[Bsr[c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�CycleChainFinalizationTestcCs>dd�|D�}x*tt|��D]}||�||d�qW|S)NcSsg|]
}|��qSrr)r7rrrr�
<listcomp>Usz:CycleChainFinalizationTest.build_chain.<locals>.<listcomp>�)�range�lenrX)r�classes�nodes�irrr�build_chainTsz&CycleChainFinalizationTest.build_chainc	Cs�t|�}t���x|�|�}dd�|D�}dd�|D�}~t��|�|�|�g�|�dd�|D�dg|�t��|�|�WdQRXdS)NcSsg|]}t|��qSr)r)r7rArrrr]^szKCycleChainFinalizationTest.check_non_resurrecting_chain.<locals>.<listcomp>cSsg|]}t�|��qSr)r>r?)r7rArrrr]_scSsg|]
}|��qSrr)r7rBrrrr]ds)	r`r(rrdrrr5r:r1)rra�Nrbr4�wrsrrr�check_non_resurrecting_chainZs



z7CycleChainFinalizationTest.check_non_resurrecting_chainc	Cs�t|�}t����|�|�}t|�}dd�|D�}dd�|D�}dd�|D�}~t��|�|�|�|�|�dd�|D�dg|�|�	�t��|�|�|�g�WdQRXdS)NcSsg|]}t|��qSr)r)r7rArrrr]mszGCycleChainFinalizationTest.check_resurrecting_chain.<locals>.<listcomp>cSsg|]}t|t�rt|��qSr)�
isinstancer-r)r7rArrrr]nscSsg|]}t�|��qSr)r>r?)r7rArrrr]oscSsg|]
}|��qSrr)r7rBrrrr]us)
r`r(rrdrrr5r:r1r<)rrarerbr4Zsurvivor_idsrfrrr�check_resurrecting_chainhs 




z3CycleChainFinalizationTest.check_resurrecting_chaincCs|�tgd�dS)N�)rgrY)rrrr�test_homogenous{sz*CycleChainFinalizationTest.test_homogenouscCs|�tgd�dS)Nrj)rirZ)rrrr�test_homogenous_resurrect~sz4CycleChainFinalizationTest.test_homogenous_resurrectcCs|�tgd�dS)Nrj)rgr[)rrrr�test_homogenous_suicidal�sz3CycleChainFinalizationTest.test_homogenous_suicidalcCs|�ttgd�dS)NrI)rgr[rY)rrrr�test_heterogenous_suicidal_one�sz9CycleChainFinalizationTest.test_heterogenous_suicidal_onecCs|�tgdtgd�dS)NrI)rgr[rY)rrrr�test_heterogenous_suicidal_two�sz9CycleChainFinalizationTest.test_heterogenous_suicidal_twocCs|�ttgd�dS)NrI)rirZrY)rrrr�test_heterogenous_resurrect_one�sz:CycleChainFinalizationTest.test_heterogenous_resurrect_onecCs|�tttgd�dS)NrI)rirZrYr[)rrrr�test_heterogenous_resurrect_two�sz:CycleChainFinalizationTest.test_heterogenous_resurrect_twocCs(|�tgdtgdtgd�dS)NrI)rirZrYr[)rrrr�!test_heterogenous_resurrect_three�sz<CycleChainFinalizationTest.test_heterogenous_resurrect_threeN)r
rrrdrgrirkrlrmrnrorprqrrrrrrr\Msr\c@seZdZdd�Zdd�ZdS)�
LegacyBasec
CsVy"|js |j�t|��|��Wn.tk
rP}z|j�|�Wdd}~XYnXdS)N)rrrrrr!r)rr"rrrr#�szLegacyBase.__del__c
Cs^y*|js(|j�t|��|��|��Wn.tk
rX}z|j�|�Wdd}~XYnXdS)N)rrrrrr r!r)rr"rrr�
__tp_del__�szLegacyBase.__tp_del__N)r
rrr#rtrrrrrs�s
rsc@seZdZdS)�LegacyN)r
rrrrrrru�sruc@seZdZdd�ZdS)�LegacyResurrectorcCs|j�|�dS)N)rr)rrrrr �szLegacyResurrector.side_effectN)r
rrr rrrrrv�srvc@seZdZdS)�LegacySelfCycleN)r
rrrrrrrw�srwcs4eZdZ�fdd�Zdd�Zdd�Zdd�Z�ZS)	�LegacyFinalizationTestcs tj��t��t���dS)N)rrrrrLr2)r)rMrrr2�s
zLegacyFinalizationTest.tearDownc	Cs�t���rt�}t|�g}t�|�}~t��|�|�|�	|�|�
g�|�|�d�t��|�|�|�	|�WdQRXdS)N)r(rrurr>r?rrr5r6r:r@)rrAr4rBrrr�test_legacy�s






z"LegacyFinalizationTest.test_legacyc	Cs�t����t�}t|�g}t�|�}~t��|�|�|�	|�|�
|�|�|�d�|��t��|�|�|�	|d�|�
|�WdQRX|�|�d�dS)NrI)
r(rrvrr>r?rrr5r6r:r@r<)rrAr4rBrrr�test_legacy_resurrect�s 






z,LegacyFinalizationTest.test_legacy_resurrectc	Cs�t���lt�}t|�g}t�|�}~t��|�g�|�	g�|�
g�|�|�|�|�d�dtj
d_WdQRX|�g�|�|�d�dS)Nr)r(rrwrr>r?rrr5r6r:r;rDrr@)rrAr4rBrrr�test_legacy_self_cycle�s







z-LegacyFinalizationTest.test_legacy_self_cycle)r
rrr2ryrzr{rNrr)rMrrx�srx�__main__)$r&rZunittestr>Z	_testcapir�ImportErrorrrrr(r*r+r,r-r.ZTestCaser=rKrOrPrQrRrTrYrZr[r\rsrurvrwZcpython_onlyrxr
�mainrrrr�<module>sJB		?
	:M
A