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.10/test/__pycache__/test_finalization.cpython-310.opt-2.pyc
o

�i�:�@s@	ddlZddlZddlZddlZzddlmZWn
ey&dd�ZYnwzddlmZWn
ey<dd�ZYnwddlm	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�re�$�dSdS)8�N)�with_tp_delcCsGdd�dt�}|S)Nc@�eZdZdd�ZdS)zwith_tp_del.<locals>.Cc_�td��)Nzrequires _testcapi.with_tp_del��	TypeError��cls�args�kwargs�r�3/usr/local/lib/python3.10/test/test_finalization.py�__new__�zwith_tp_del.<locals>.C.__new__N��__name__�
__module__�__qualname__r
rrrr�C�r)�object�rrrrrr
sr)�
without_gccCsGdd�d�}|S)Nc@r)zwithout_gc.<locals>.Cc_r)Nzrequires _testcapi.without_gcrrrrrr
rzwithout_gc.<locals>.C.__new__Nrrrrrrrrrrrrrrsr)�supportc@s\eZdZ	gZgZgZgZdZdZe	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���3|j��|j��dt_zdV|jr |jd�Wdt_|��ndt_|��wWd�dS1s<wYdS)NFrT)	rZ
disable_gcr!rr"r�	_cleaningrr$r#rrr�test7s �



�
�"�zNonGCSimpleBase.testcC�dSrr��selfrrr�check_sanityI�zNonGCSimpleBase.check_sanityc
C�h	z|js|j�t|��|��|��WdSWdSty3}z
|j�|�WYd}~dSd}~wwr)r%r!�append�idr*�side_effect�	Exceptionr�r)�errr�__del__Ns���zNonGCSimpleBase.__del__cCr'rrr(rrrr/[r+zNonGCSimpleBase.side_effectN)rrrrr!r"rr%�	__slots__�classmethodr$�
contextlib�contextmanagerr&r*r3r/rrrrrs 

rc@�eZdZdd�Zdd�ZdS)�
SimpleBasecCst|�|_dSr)r.Zid_r(rrr�__init__c�zSimpleBase.__init__cCr'rrr(rrrr*fszSimpleBase.check_sanityN)rrrr:r*rrrrr9asr9c@seZdZdZdS)�NonGCrN)rrrr4rrrrr<jsr<c@seZdZdZdd�ZdS)�NonGCResurrectorrcC�	|j�|�dSr�rr-r(rrrr/r�zNonGCResurrector.side_effectN)rrrr4r/rrrrr=nsr=c@�eZdZdS)�SimpleN�rrrrrrrrBx�rBc@r)�SimpleResurrectorcCr>rr?r(rrrr/~r@zSimpleResurrector.side_effectN�rrrr/rrrrrE|�rEc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestBasecCs"tjdd�|_gtjdd�<dSr)rr�old_garbager(rrr�setUp�szTestBase.setUpcCs0z|�tjg�W|`t��dS|`t��wr)�assertEqualrrrIr r(rrr�tearDown�s�
zTestBase.tearDowncC�|�ttj�t|��dSr)rK�sortedr9r!�r)�idsrrr�assert_del_calls��zTestBase.assert_del_callscCrMr)rKrNr9r"rOrrr�assert_tp_del_calls�rRzTestBase.assert_tp_del_callscC�$|�tdd�tjD��t|��dS)Ncs��|]}t|�VqdSr�r.��.0�xrrr�	<genexpr>���z,TestBase.assert_survivors.<locals>.<genexpr>)rKrNr9rrOrrr�assert_survivors��$zTestBase.assert_survivorscCrT)NcsrUrrVrWrrrrZ�r[z*TestBase.assert_garbage.<locals>.<genexpr>)rKrNrrrOrrr�assert_garbage�r]zTestBase.assert_garbagecCstj��dSr)r9rrr(rrr�clear_survivors�r;zTestBase.clear_survivorsN)
rrrrJrLrQrSr\r^r_rrrrrH�srHc@s:eZdZ	dd�Zdd�Zejdd��Zejdd��Zd	S)
�SimpleFinalizationTestcC�t���:t�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�Wd�dS1sAwYdSr)r9r&rBr.�weakref�refrr rQr\�assertIs�r)�srP�wrrrr�test_simple��





"�z"SimpleFinalizationTest.test_simplecCs�t���=t�}t|�g}t�|�}~t��|�|�|�	|�|�
|�d�|��t��|�|�|�	g�Wd�n1sDwY|�|�d�dSr)
r9r&rEr.rbrcrr rQr\�assertIsNotr_rdrerrr�test_simple_resurrect�s





�
z,SimpleFinalizationTest.test_simple_resurrectcCs�t���6t�}|�t�|��t|�g}~t��|�|�|�	g�t��|�|�|�	g�Wd�dS1s=wYdSr)
r9r&r<�assertFalser�
is_trackedr.r rQr\�r)rfrPrrr�test_non_gc�s




"�z"SimpleFinalizationTest.test_non_gccCs�t���<t�}|�t�|��t|�g}~t��|�|�|�	|�|�
�t��|�|d�|�	|�Wd�dS1sCwYdS�N�)r9r&r=rlrrmr.r rQr\r_rnrrr�test_non_gc_resurrect�s



"�z,SimpleFinalizationTest.test_non_gc_resurrectN)	rrrrhrkr�cpython_onlyrorrrrrrr`�s

r`cs(eZdZ�fdd�Z�fdd�Z�ZS)�
SelfCycleBasecst���||_dSr)�superr:rcr(��	__class__rrr:�s

zSelfCycleBase.__init__cst���dSr)rur*r(rvrrr*�r;zSelfCycleBase.check_sanity)rrrr:r*�
__classcell__rrrvrrt�srtc@rA)�SimpleSelfCycleNrCrrrrry�rDryc@rA)�SelfCycleResurrectorNrCrrrrrz�rDrzc@r)�SuicidalSelfCyclecCs	d|_dSr)rcr(rrrr/�s
zSuicidalSelfCycle.side_effectNrFrrrrr{�rGr{c@s&eZdZ	dd�Zdd�Zdd�ZdS)�SelfCycleFinalizationTestcCrar)r9r&ryr.rbrcrr rQr\rdrerrrrhriz%SelfCycleFinalizationTest.test_simplecCs�t���Et�}t|�g}t�|�}~t��|�|�|�	|�|�
|�d�|��t��|�|�|�	g�|�
|�d�Wd�dS1sLwYdSr)r9r&rzr.rbrcrr rQr\rdr_rerrrrks






"�z/SelfCycleFinalizationTest.test_simple_resurrectcCs�t���At�}t|�g}t�|�}~t��|�|�|�	g�|�
|�d�t��|�|�|�	g�|�
|�d�Wd�dS1sHwYdSr)r9r&r{r.rbrcrr rQr\rdrerrr�test_simple_suicide%s






"�z-SelfCycleFinalizationTest.test_simple_suicideN)rrrrhrkr}rrrrr|�s
r|cs$eZdZdd�Z�fdd�Z�ZS)�ChainedBasecCsd|_||_||_dS)NF��suicided�left�right)r)r�rrr�chain9s
zChainedBase.chaincs4t���|jr
dS|j}|jr|j}|jrdSdSr)rur*r�r�r�)r)r�r�rvrrr*>s

zChainedBase.check_sanity)rrrr�r*rxrrrvrr~7sr~c@rA)�
SimpleChainedNrCrrrrr�OrDr�c@rA)�ChainedResurrectorNrCrrrrr�RrDr�c@r)�SuicidalChainedcCs	d|_d|_d|_dS)NTrr(rrrr/Ws
zSuicidalChained.side_effectNrFrrrrr�UrGr�c@sfeZdZ	dd�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)NcS�g|]}|��qSrr)rXrrrr�
<listcomp>h�z:CycleChainFinalizationTest.build_chain.<locals>.<listcomp>�)�range�lenr�)r)�classes�nodes�irrr�build_chaingsz&CycleChainFinalizationTest.build_chaincCs�t|�}t���B|�|�}dd�|D�}dd�|D�}~t��|�|�|�g�|�dd�|D�dg|�t��|�|�Wd�dS1sMwYdS)NcS�g|]}t|��qSrrV�rXrfrrrr�q�zKCycleChainFinalizationTest.check_non_resurrecting_chain.<locals>.<listcomp>cS�g|]}t�|��qSr�rbrcr�rrrr�r�cSr�rr�rXrgrrrr�wr�)	r�r9r&r�rr rQr\rK)r)r��Nr�rP�wrsrrr�check_non_resurrecting_chainms



"�z7CycleChainFinalizationTest.check_non_resurrecting_chaincCs�t|�}t���V|�|�}t|�}dd�|D�}dd�|D�}dd�|D�}~t��|�|�|�|�|�dd�|D�dg|�|�	�t��|�|�|�g�Wd�dS1sawYdS)NcSr�rrVr�rrrr��r�zGCycleChainFinalizationTest.check_resurrecting_chain.<locals>.<listcomp>cSsg|]}t|t�rt|��qSr)�
isinstancerEr.r�rrrr��scSr�rr�r�rrrr��r�cSr�rrr�rrrr��r�)
r�r9r&r�rr rQr\rKr_)r)r�r�r�rPZsurvivor_idsr�rrr�check_resurrecting_chain{s"




"�z3CycleChainFinalizationTest.check_resurrecting_chaincC�|�tgd�dS�N�)r�r�r(rrr�test_homogenous��z*CycleChainFinalizationTest.test_homogenouscCr�r�)r�r�r(rrr�test_homogenous_resurrect�r�z4CycleChainFinalizationTest.test_homogenous_resurrectcCr�r�)r�r�r(rrr�test_homogenous_suicidal�r�z3CycleChainFinalizationTest.test_homogenous_suicidalcC�|�ttgd�dSrp�r�r�r�r(rrr�test_heterogenous_suicidal_one��z9CycleChainFinalizationTest.test_heterogenous_suicidal_onecCs|�tgdtgd�dSrpr�r(rrr�test_heterogenous_suicidal_two�s�z9CycleChainFinalizationTest.test_heterogenous_suicidal_twocCr�rp)r�r�r�r(rrr�test_heterogenous_resurrect_one�r�z:CycleChainFinalizationTest.test_heterogenous_resurrect_onecCs|�tttgd�dSrp�r�r�r�r�r(rrr�test_heterogenous_resurrect_two�s�z:CycleChainFinalizationTest.test_heterogenous_resurrect_twocCs(|�tgdtgdtgd�dSrpr�r(rrr�!test_heterogenous_resurrect_three�s�z<CycleChainFinalizationTest.test_heterogenous_resurrect_threeN)rrrr�r�r�r�r�r�r�r�r�r�r�rrrrr�`sr�c@r8)�
LegacyBasec
Cs^z|js|j�t|��|��WdSWdSty.}z
|j�|�WYd}~dSd}~wwr)r%r!r-r.r*r0rr1rrrr3�s���zLegacyBase.__del__c
Cr,r)r%r"r-r.r*r/r0rr1rrr�
__tp_del__�s���zLegacyBase.__tp_del__N)rrrr3r�rrrrr��s
r�c@rA)�LegacyNrCrrrrr���r�c@r)�LegacyResurrectorcCr>rr?r(rrrr/�r@zLegacyResurrector.side_effectNrFrrrrr��sr�c@rA)�LegacySelfCycleNrCrrrrr��r�r�cs6eZdZ	�fdd�Zdd�Zdd�Zdd�Z�ZS)	�LegacyFinalizationTestcs tj��t��t���dSr)rrrr rurLr(rvrrrL�s
zLegacyFinalizationTest.tearDowncCs�t���?t�}t|�g}t�|�}~t��|�|�|�	|�|�
g�|�|�d�t��|�|�|�	|�Wd�dS1sFwYdSr)r9r&r�r.rbrcrr rQrSr\rdrerrr�test_legacy�s






"�z"LegacyFinalizationTest.test_legacycCs�t���It�}t|�g}t�|�}~t��|�|�|�	|�|�
|�|�|�d�|��t��|�|�|�	|d�|�
|�Wd�n1sPwY|�|�d�dSrp)
r9r&r�r.rbrcrr rQrSr\rdr_rerrr�test_legacy_resurrect�s"






�z,LegacyFinalizationTest.test_legacy_resurrectcCs�t���;t�}t|�g}t�|�}~t��|�g�|�	g�|�
g�|�|�|�|�d�dtj
d_Wd�n1sBwY|�g�|�|�d�dS)Nr)r9r&r�r.rbrcrr rQrSr\r^rjrrdrerrr�test_legacy_self_cycles






�

z-LegacyFinalizationTest.test_legacy_self_cycle)rrrrLr�r�r�rxrrrvrr��sr��__main__)%r6rZunittestrbZ	_testcapir�ImportErrorrr&rrr9r<r=rBrErHZTestCaser`rtryrzr{r|r~r�r�r�r�r�r�r�r�rsr�r�mainrrrr�<module>s`��B			A
	:M
A�