Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_finalization.cpython-38.opt-2.pyc
U

>��g�:�@s>ddlZddlZddlZddlZzddlmZWnek
rLdd�ZYnXzddlmZWnek
rzdd�ZYnXddlm	Z	Gd	d
�d
�Z
Gdd�de
�ZeGd
d�de
��ZeGdd�de
��Z
Gdd�de�ZGdd�de�ZGdd�d�ZGdd�deej�ZGdd�d�ZGdd�dee�ZGdd�dee�ZGdd �d ee�ZGd!d"�d"eej�ZGd#d$�d$�ZGd%d&�d&ee�ZGd'd(�d(ee�ZGd)d*�d*ee�ZGd+d,�d,eej�ZGd-d.�d.e�ZeGd/d0�d0e��ZeGd1d2�d2e��ZeGd3d4�d4ee��Z e	j!Gd5d6�d6eej��Z"e#d7k�r:e�$�dS)8�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	�5/opt/cppython/lib/python3.8/test/test_finalization.py�__new__szwith_tp_del.<locals>.C.__new__N��__name__�
__module__�__qualname__rr	r	r	r
�Csr)�object�rrr	r	r
r
sr)�
without_gccCsGdd�d�}|S)Nc@seZdZdd�ZdS)zwithout_gc.<locals>.Cc_std��dS)Nzrequires _testcapi.without_gcrrr	r	r
rszwithout_gc.<locals>.C.__new__Nrr	r	r	r
rsrr	rr	r	r
rsr)�supportc@sZeZdZgZgZgZgZdZdZe	dd��Z
e	ejdd���Z
dd�Zd	d
�Zdd�Zd
S)�NonGCSimpleBaseFr	cCs>|j��|j��tj��t��|j��|j��dS�N)�	survivors�clear�errors�gc�garbage�collect�	del_calls�tp_del_calls�rr	r	r
�_cleanup.s



zNonGCSimpleBase._cleanupc	cs^t���L|j��|j��dt_zdV|jr<|jd�W5dt_|��XW5QRXdS)NFTr)	rZ
disable_gcrrrr�	_cleaningr rrr	r	r
�test7s


zNonGCSimpleBase.testcCsdSrr	��selfr	r	r
�check_sanityIszNonGCSimpleBase.check_sanityc
Cs^z*|js(|j�t|��|��|��Wn.tk
rX}z|j�|�W5d}~XYnXdSr)r!r�append�idr%�side_effect�	Exceptionr�r$�er	r	r
�__del__NszNonGCSimpleBase.__del__cCsdSrr	r#r	r	r
r([szNonGCSimpleBase.side_effectN)r
rrrrrrr!�	__slots__�classmethodr �
contextlib�contextmanagerr"r%r,r(r	r	r	r
rs

rc@seZdZdd�Zdd�ZdS)�
SimpleBasecCst|�|_dSr)r'Zid_r#r	r	r
�__init__cszSimpleBase.__init__cCsdSrr	r#r	r	r
r%fszSimpleBase.check_sanityN)r
rrr2r%r	r	r	r
r1asr1c@seZdZdZdS)�NonGCr	N)r
rrr-r	r	r	r
r3jsr3c@seZdZdZdd�ZdS)�NonGCResurrectorr	cCs|j�|�dSr�rr&r#r	r	r
r(rszNonGCResurrector.side_effectN)r
rrr-r(r	r	r	r
r4nsr4c@seZdZdS)�SimpleN�r
rrr	r	r	r
r6xsr6c@seZdZdd�ZdS)�SimpleResurrectorcCs|j�|�dSrr5r#r	r	r
r(~szSimpleResurrector.side_effectN�r
rrr(r	r	r	r
r8|sr8c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestBasecCs"tjdd�|_gtjdd�<dSr)rr�old_garbager#r	r	r
�setUp�szTestBase.setUpcCs&z|�tjg�W5|`t��XdSr)r;rr�assertEqualrr#r	r	r
�tearDown�szTestBase.tearDowncCs|�ttj�t|��dSr)r=�sortedr1r�r$�idsr	r	r
�assert_del_calls�szTestBase.assert_del_callscCs|�ttj�t|��dSr)r=r?r1rr@r	r	r
�assert_tp_del_calls�szTestBase.assert_tp_del_callscCs$|�tdd�tjD��t|��dS)Ncss|]}t|�VqdSr�r'��.0�xr	r	r
�	<genexpr>�sz,TestBase.assert_survivors.<locals>.<genexpr>)r=r?r1rr@r	r	r
�assert_survivors�szTestBase.assert_survivorscCs$|�tdd�tjD��t|��dS)Ncss|]}t|�VqdSrrDrEr	r	r
rH�sz*TestBase.assert_garbage.<locals>.<genexpr>)r=r?rrr@r	r	r
�assert_garbage�szTestBase.assert_garbagecCstj��dSr)r1rrr#r	r	r
�clear_survivors�szTestBase.clear_survivorsN)
r
rrr<r>rBrCrIrJrKr	r	r	r
r:�sr:c@s8eZdZdd�Zdd�Zejdd��Zejdd��Zd	S)
�SimpleFinalizationTestc	Cszt���ht�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�W5QRXdSr)r1r"r6r'�weakref�refrrrBrI�assertIs�r$�srA�wrr	r	r
�test_simple�s





z"SimpleFinalizationTest.test_simplec	Cs�t���pt�}t|�g}t�|�}~t��|�|�|�	|�|�
|�d�|��t��|�|�|�	g�W5QRX|�|�d�dSr)
r1r"r8r'rMrNrrrBrI�assertIsNotrKrOrPr	r	r
�test_simple_resurrect�s





z,SimpleFinalizationTest.test_simple_resurrectc	Csrt���`t�}|�t�|��t|�g}~t��|�|�|�	g�t��|�|�|�	g�W5QRXdSr)
r1r"r3�assertFalser�
is_trackedr'rrBrI�r$rQrAr	r	r
�test_non_gc�s




z"SimpleFinalizationTest.test_non_gcc	Cs~t���lt�}|�t�|��t|�g}~t��|�|�|�	|�|�
�t��|�|d�|�	|�W5QRXdS�N�)r1r"r4rVrrWr'rrBrIrKrXr	r	r
�test_non_gc_resurrect�s



z,SimpleFinalizationTest.test_non_gc_resurrectN)	r
rrrSrUr�cpython_onlyrYr\r	r	r	r
rL�s

rLcs(eZdZ�fdd�Z�fdd�Z�ZS)�
SelfCycleBasecst���||_dSr)�superr2rNr#��	__class__r	r
r2�s
zSelfCycleBase.__init__cst���dSr)r_r%r#r`r	r
r%�s
zSelfCycleBase.check_sanity)r
rrr2r%�
__classcell__r	r	r`r
r^�sr^c@seZdZdS)�SimpleSelfCycleNr7r	r	r	r
rc�srcc@seZdZdS)�SelfCycleResurrectorNr7r	r	r	r
rd�srdc@seZdZdd�ZdS)�SuicidalSelfCyclecCs
d|_dSr)rNr#r	r	r
r(�szSuicidalSelfCycle.side_effectNr9r	r	r	r
re�srec@s$eZdZdd�Zdd�Zdd�ZdS)�SelfCycleFinalizationTestc	Cszt���ht�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�W5QRXdSr)r1r"rcr'rMrNrrrBrIrOrPr	r	r
rSs





z%SelfCycleFinalizationTest.test_simplec	Cs�t���~t�}t|�g}t�|�}~t��|�|�|�	|�|�
|�d�|��t��|�|�|�	g�|�
|�d�W5QRXdSr)r1r"rdr'rMrNrrrBrIrOrKrPr	r	r
rUs






z/SelfCycleFinalizationTest.test_simple_resurrectc	Cs�t���vt�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�|�
|�d�W5QRXdSr)r1r"rer'rMrNrrrBrIrOrPr	r	r
�test_simple_suicide%s






z-SelfCycleFinalizationTest.test_simple_suicideN)r
rrrSrUrgr	r	r	r
rf�srfcs$eZdZdd�Z�fdd�Z�ZS)�ChainedBasecCsd|_||_||_dS)NF��suicided�left�right)r$rkr	r	r
�chain9szChainedBase.chaincs2t���|jrn|j}|jr n|j}|jr.ndSr)r_r%rjrkrl)r$rkrlr`r	r
r%>s
zChainedBase.check_sanity)r
rrrmr%rbr	r	r`r
rh7srhc@seZdZdS)�
SimpleChainedNr7r	r	r	r
rnOsrnc@seZdZdS)�ChainedResurrectorNr7r	r	r	r
roRsroc@seZdZdd�ZdS)�SuicidalChainedcCsd|_d|_d|_dS)NTrir#r	r	r
r(WszSuicidalChained.side_effectNr9r	r	r	r
rpUsrpc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�CycleChainFinalizationTestcCs:dd�|D�}tt|��D]}||�||d�q|S)NcSsg|]
}|��qSr	r	)rFrr	r	r
�
<listcomp>hsz:CycleChainFinalizationTest.build_chain.<locals>.<listcomp>�)�range�lenrm)r$�classes�nodes�ir	r	r
�build_chaingsz&CycleChainFinalizationTest.build_chainc	Cs�t|�}t���x|�|�}dd�|D�}dd�|D�}~t��|�|�|�g�|�dd�|D�dg|�t��|�|�W5QRXdS)NcSsg|]}t|��qSr	rD�rFrQr	r	r
rrqszKCycleChainFinalizationTest.check_non_resurrecting_chain.<locals>.<listcomp>cSsg|]}t�|��qSr	�rMrNrzr	r	r
rrrscSsg|]
}|��qSr	r	�rFrRr	r	r
rrws)	rur1r"ryrrrBrIr=)r$rv�NrwrA�wrsr	r	r
�check_non_resurrecting_chainms



z7CycleChainFinalizationTest.check_non_resurrecting_chainc	Cs�t|�}t����|�|�}t|�}dd�|D�}dd�|D�}dd�|D�}~t��|�|�|�|�|�dd�|D�dg|�|�	�t��|�|�|�g�W5QRXdS)NcSsg|]}t|��qSr	rDrzr	r	r
rr�szGCycleChainFinalizationTest.check_resurrecting_chain.<locals>.<listcomp>cSsg|]}t|t�rt|��qSr	)�
isinstancer8r'rzr	r	r
rr�s
cSsg|]}t�|��qSr	r{rzr	r	r
rr�scSsg|]
}|��qSr	r	r|r	r	r
rr�s)
rur1r"ryrrrBrIr=rK)r$rvr}rwrAZsurvivor_idsr~r	r	r
�check_resurrecting_chain{s 




z3CycleChainFinalizationTest.check_resurrecting_chaincCs|�tgd�dS�N�)rrnr#r	r	r
�test_homogenous�sz*CycleChainFinalizationTest.test_homogenouscCs|�tgd�dSr�)r�ror#r	r	r
�test_homogenous_resurrect�sz4CycleChainFinalizationTest.test_homogenous_resurrectcCs|�tgd�dSr�)rrpr#r	r	r
�test_homogenous_suicidal�sz3CycleChainFinalizationTest.test_homogenous_suicidalcCs|�ttgd�dSrZ�rrprnr#r	r	r
�test_heterogenous_suicidal_one�sz9CycleChainFinalizationTest.test_heterogenous_suicidal_onecCs|�tgdtgd�dSrZr�r#r	r	r
�test_heterogenous_suicidal_two�s�z9CycleChainFinalizationTest.test_heterogenous_suicidal_twocCs|�ttgd�dSrZ)r�rornr#r	r	r
�test_heterogenous_resurrect_one�sz:CycleChainFinalizationTest.test_heterogenous_resurrect_onecCs|�tttgd�dSrZ�r�rornrpr#r	r	r
�test_heterogenous_resurrect_two�s�z:CycleChainFinalizationTest.test_heterogenous_resurrect_twocCs(|�tgdtgdtgd�dSrZr�r#r	r	r
�!test_heterogenous_resurrect_three�s�z<CycleChainFinalizationTest.test_heterogenous_resurrect_threeN)r
rrryrr�r�r�r�r�r�r�r�r�r	r	r	r
rq`srqc@seZdZdd�Zdd�ZdS)�
LegacyBasec
CsVz"|js |j�t|��|��Wn.tk
rP}z|j�|�W5d}~XYnXdSr)r!rr&r'r%r)rr*r	r	r
r,�szLegacyBase.__del__c
Cs^z*|js(|j�t|��|��|��Wn.tk
rX}z|j�|�W5d}~XYnXdSr)r!rr&r'r%r(r)rr*r	r	r
�
__tp_del__�szLegacyBase.__tp_del__N)r
rrr,r�r	r	r	r
r��s
r�c@seZdZdS)�LegacyNr7r	r	r	r
r��sr�c@seZdZdd�ZdS)�LegacyResurrectorcCs|j�|�dSrr5r#r	r	r
r(�szLegacyResurrector.side_effectNr9r	r	r	r
r��sr�c@seZdZdS)�LegacySelfCycleNr7r	r	r	r
r��sr�cs4eZdZ�fdd�Zdd�Zdd�Zdd�Z�ZS)	�LegacyFinalizationTestcs tj��t��t���dSr)rrrrr_r>r#r`r	r
r>�s
zLegacyFinalizationTest.tearDownc	Cs�t���rt�}t|�g}t�|�}~t��|�|�|�	|�|�
g�|�|�d�t��|�|�|�	|�W5QRXdSr)r1r"r�r'rMrNrrrBrCrIrOrPr	r	r
�test_legacy�s






z"LegacyFinalizationTest.test_legacyc	Cs�t����t�}t|�g}t�|�}~t��|�|�|�	|�|�
|�|�|�d�|��t��|�|�|�	|d�|�
|�W5QRX|�|�d�dSrZ)
r1r"r�r'rMrNrrrBrCrIrOrKrPr	r	r
�test_legacy_resurrect�s 






z,LegacyFinalizationTest.test_legacy_resurrectc	Cs�t���lt�}t|�g}t�|�}~t��|�g�|�	g�|�
g�|�|�|�|�d�dtj
d_W5QRX|�g�|�|�d�dS)Nr)r1r"r�r'rMrNrrrBrCrIrJrTrrOrPr	r	r
�test_legacy_self_cycles







z-LegacyFinalizationTest.test_legacy_self_cycle)r
rrr>r�r�r�rbr	r	r`r
r��sr��__main__)%r/rZunittestrMZ	_testcapir�ImportErrorrr"rrr1r3r4r6r8r:ZTestCaserLr^rcrdrerfrhrnrorprqr�r�r�r�r]r�r
�mainr	r	r	r
�<module>sVB			A
	:MA


F1le Man4ger