Ay>mdSSKrSSKrSSKrSSKrSSKJr SSKJr SSKJ r "SS5r "S S \ 5r \"S S \ 55r \"S S\ 55r "SS\ 5r"SS\ 5r"SS5r"SS\\R"5r"SS5r"SS\\5r"SS\\5r"SS\\5r"SS \\R"5r"S!S"5r"S#S$\\5r"S%S&\\5r"S'S(\\5r"S)S*\\R"5r"S+S,\ 5r\"S-S.\55r\"S/S0\55r\"S1S2\\55r \ RB"S3S4\\R"55r"\#S5:Xa\RH"5 gg!\a SrGNf=f!\a SrGNf=f)6N) with_tp_delc$"SS[5nU$)Nc\rSrSrSrSrg)with_tp_del..Cc.[R"S5e)Nzrequires _testcapi.with_tp_delunittestSkipTestclsargskwargss =/opt/alt/python313/lib64/python3.13/test/test_finalization.py__new__with_tp_del..C.__new__s''(HIIN__name__ __module__ __qualname____firstlineno__r__static_attributes__rrrCrs Jrr)objectr rs rrr s J Jr) without_gcc"SS5nU$)Nc\rSrSrSrSrg)without_gc..Cc.[R"S5e)Nzrequires _testcapi.without_gcr r s rrwithout_gc..C.__new__s''(GHHrrNrrrrrr!s Irrrrs rrrs I Ir)supportc|\rSrSr/r/r/r/rSrSr \ S5r \ \ RS55rSrSrSrSrg ) NonGCSimpleBaseFrc:URR5 URR5 [RR5 [R "5 UR R5 URR5 gN) survivorsclearerrorsgcgarbagecollect del_calls tp_del_callsr s r_cleanupNonGCSimpleBase._cleanup.s]       rc## [R"5 URR5 URR5 S[ lSv UR(aURSeS[ lUR5 SSS5 g!S[ lUR5 f=f!,(df  g=f7f)NFrT) r% disable_gcr1r,r2r' _cleaningr-r4r3s rtestNonGCSimpleBase.test7s    ! MM   !    " " $(-O % ::**Q-'-1) " !-1) " !s5CAC$B#>C C#CC C Ccgr*rselfs r check_sanityNonGCSimpleBase.check_sanityIrcUR(dEURR[U55 UR 5 UR 5 gg![ a%nURRU5 SnAgSnAff=fr*)r8r1appendidr> side_effect Exceptionr-r=es r__del__NonGCSimpleBase.__del__Nsh  ">>%%bh/!!#  "" " KK  q ! ! "AA B#BBcgr*rr<s rrDNonGCSimpleBase.side_effect[r@rN)rrrrr+r1r2r-r8 __slots__ classmethodr4 contextlibcontextmanagerr9r>rHrDrrrrr'r'se IIL FII!!  " rr'c \rSrSrSrSrSrg) SimpleBaseac$[U5Ulgr*)rCid_r<s r__init__SimpleBase.__init__cs d8rcgr*rr<s rr>SimpleBase.check_sanityfr@r)rUN)rrrrrVr>rrrrrRrRas $rrRc\rSrSrSrSrg)NonGCjrN)rrrrrMrrrrr[r[jsIrr[c\rSrSrSrSrSrg)NonGCResurrectornrc:URRU5 gr*r+rBr<s rrDNonGCResurrector.side_effectr d#rN)rrrrrMrDrrrrr^r^ns I$rr^c\rSrSrSrg)SimplexrNrrrrrrrrrerexrrec\rSrSrSrSrg)SimpleResurrector|c:URRU5 gr*rar<s rrDSimpleResurrector.side_effect~rcrrNrrrrrDrrrrrjrj|s$rrjc>\rSrSrSrSrSrSrSrSr Sr S r g ) TestBasecZ[RSSUl/[RSS&gr*)r.r/ old_garbager<s rsetUpTestBase.setUps::a= 1 rcUR[R/5 U?[R"5 g!U?[R"5 f=fr*) assertEqualr.r/rsr0r<s rtearDownTestBase.tearDowns=    RZZ , JJL JJLs :AchUR[[R5[U55 gr*)rwsortedrRr1r=idss rassert_del_callsTestBase.assert_del_callss!  4 45vc{CrchUR[[R5[U55 gr*)rwr{rRr2r|s rassert_tp_del_callsTestBase.assert_tp_del_callss!  7 78&+FrcvUR[S[R55[U55 g)Nc38# UHn[U5v M g7fr*rC.0xs r ,TestBase.assert_survivors..sD/C!1/C)rwr{rRr+r|s rassert_survivorsTestBase.assert_survivorss' Dz/C/CDDfSkRrcvUR[S[R55[U55 g)Nc38# UHn[U5v M g7fr*rrs rr*TestBase.assert_garbage..s:z!1zr)rwr{r.r/r|s rassert_garbageTestBase.assert_garbages% :rzz::F3KHrc@[RR5 gr*)rRr+r,r<s rclear_survivorsTestBase.clear_survivorss""$r)rsN) rrrrrtrxr~rrrrrrrrrprps)DGSI%rrpch\rSrSrSrSr\RS5r\RS5r Sr g)SimpleFinalizationTestc[R5 [5n[U5/n[R "U5nA[ R"5 URU5 UR/5 URU"5S5 [ R"5 URU5 UR/5 SSS5 g!,(df  g=fr*) rRr9rerCweakrefrefr.r0r~rassertIsr=sr}wrs r test_simple"SimpleFinalizationTest.test_simples __ Aa5'CQB JJL  ! !# &  ! !" % MM"$ % JJL  ! !# &  ! !" %   B3C Cc[R5 [5n[U5/n[R "U5nA[ R"5 URU5 URU5 URU"5S5 UR5 [ R"5 URU5 UR/5 SSS5 URW"5S5 g!,(df  N&=fr*) rRr9rjrCrrr.r0r~r assertIsNotrrrs rtest_simple_resurrect,SimpleFinalizationTest.test_simple_resurrects __ !#Aa5'CQB JJL  ! !# &  ! !# &   RT4 (  " JJL  ! !# &  ! !" % bdD! s CC88 Dc[R5 [5nUR[R "U55 [ U5/nA[R"5 URU5 UR/5 [R"5 URU5 UR/5 SSS5 g!,(df  g=fr*) rRr9r[ assertFalser. is_trackedrCr0r~rr=rr}s r test_non_gc"SimpleFinalizationTest.test_non_gcs __ A   R]]1- .a5'C JJL  ! !# &  ! !" % JJL  ! !# &  ! !" %  s B+C  Cc[R5 [5nUR[R "U55 [ U5/nA[R"5 URU5 URU5 UR5 [R"5 URUS-5 URU5 SSS5 g!,(df  g=fN) rRr9r^rr.rrCr0r~rrrs rtest_non_gc_resurrect,SimpleFinalizationTest.test_non_gc_resurrects __  "A   R]]1- .a5'C JJL  ! !# &  ! !# &  " JJL  ! !#' *  ! !# &  s B>C C*rN) rrrrrrr% cpython_onlyrrrrrrrrs@ &"   & &  ' 'rrc4^\rSrSrU4SjrU4SjrSrU=r$) SelfCycleBasec.>[TU]5 Xlgr*)superrVrr= __class__s rrVSelfCycleBase.__init__s rc">[TU]5 gr*)rr>rs rr>SelfCycleBase.check_sanitys rr)rrrrrVr>r __classcell__rs@rrrs  rrc\rSrSrSrg)SimpleSelfCyclerNrgrrrrrrhrrc\rSrSrSrg)SelfCycleResurrectorrNrgrrrrrrhrrc\rSrSrSrSrg)SuicidalSelfCyclecSUlgr*rr<s rrDSuicidalSelfCycle.side_effects rrNrnrrrrrsrrc&\rSrSrSrSrSrSrg)SelfCycleFinalizationTestc[R5 [5n[U5/n[R "U5nA[ R"5 URU5 UR/5 URU"5S5 [ R"5 URU5 UR/5 SSS5 g!,(df  g=fr*) rRr9rrCrrr.r0r~rrrs rr%SelfCycleFinalizationTest.test_simples __ !Aa5'CQB JJL  ! !# &  ! !" % MM"$ % JJL  ! !# &  ! !" %  rc[R5 [5n[U5/n[R "U5nA[ R"5 URU5 URU5 URU"5S5 UR5 [ R"5 URU5 UR/5 URU"5S5 SSS5 g!,(df  g=fr*) rRr9rrCrrr.r0r~rrrrs rr/SelfCycleFinalizationTest.test_simple_resurrects __ $&Aa5'CQB JJL  ! !# &  ! !# & MM"$ %  " JJL  ! !# &  ! !" % MM"$ %!  s CC88 Dc[R5 [5n[U5/n[R "U5nA[ R"5 URU5 UR/5 URU"5S5 [ R"5 URU5 UR/5 URU"5S5 SSS5 g!,(df  g=fr*) rRr9rrCrrr.r0r~rrrs rtest_simple_suicide-SelfCycleFinalizationTest.test_simple_suicide%s__ !#Aa5'CQB JJL  ! !# &  ! !" % MM"$ % JJL  ! !# &  ! !" % MM"$ %  s C C(( C6rN)rrrrrrrrrrrrrs &&(&rrc.^\rSrSrSrU4SjrSrU=r$) ChainedBasei7c*SUlXlXlg)NFsuicidedleftright)r=rs rchainChainedBase.chain9s   rc>[TU]5 UR(agURnUR(aURnUR(aggr*)rr>rrr)r=rrrs rr>ChainedBase.check_sanity>s?  ===99D}}}JJE~~~r)rr)rrrrrr>rrrs@rrr7s **rrc\rSrSrSrg) SimpleChainediOrNrgrrrrrOrhrrc\rSrSrSrg)ChainedResurrectoriRrNrgrrrrrRrhrrc\rSrSrSrSrg)SuicidalChainediUc.SUlSUlSUlg)NTrr<s rrDSuicidalChained.side_effectWs   r)rrrNrnrrrrrUsrrcV\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rg)CycleChainFinalizationTesti`cUVs/sH o""5PM nn[[U55HnX4RX4S- 5 M U$s snf)N)rangelenr)r=classesr nodesis r build_chain&CycleChainFinalizationTest.build_chaingsI")*'3'*s5z"A HNN51: &# +sA cJ[U5n[R5 URU5nUVs/sHn[ U5PM nnUVs/sHn[ R "U5PM nnA[R"5 URU5 UR/5 URUVs/sH ow"5PM snS/U-5 [R"5 URU5 SSS5 gs snfs snfs snf!,(df  g=fr*) rrRr9rrCrrr.r0r~rrw)r=rNrrr}wrsrs rcheck_non_resurrecting_chain7CycleChainFinalizationTest.check_non_resurrecting_chainms L __ $$W-E"'(%Q2a5%C(+015a7;;q>5C1 JJL  ! !# &  ! !" %   S1SrbdS1D6A: > JJL  ! !# & (1 2 s5DD D D 1A D:D 2DD D"c[U5n[R5 URU5n[U5nUVs/sHn[ U5PM nnUVs/sH%n[ U[ 5(dM[ U5PM' nnUVs/sHn[R"U5PM nnA[R"5 URU5 URU5 URUVs/sH o"5PM snS/U-5 UR5 [R"5 URU5 UR/5 SSS5 gs snfs snfs snfs snf!,(df  g=fr*)rrRr9rrC isinstancerjrrr.r0r~rrwr) r=rrrrr} survivor_idsrrs rcheck_resurrecting_chain3CycleChainFinalizationTest.check_resurrecting_chain{s' L __ $$W-EE A"'(%Q2a5%C(+0U5aJqBS4TEBqE5LU+015a7;;q>5C1 JJL  ! !# &  ! !, /   S1SrbdS1D6A: >  " JJL  ! !# &  ! !" % )U1 2 sI!E7E#E7E(9E(E7 E-.A E77E2 AE7#E77 Fc6UR[/S-5 gN)rrr<s rtest_homogenous*CycleChainFinalizationTest.test_homogenouss ))=/A*=>rc6UR[/S-5 gr)rrr<s rtest_homogenous_resurrect4CycleChainFinalizationTest.test_homogenous_resurrects %%'9&:Q&>?rc6UR[/S-5 gr)rrr<s rtest_homogenous_suicidal3CycleChainFinalizationTest.test_homogenous_suicidals ))?*;a*?@rc@UR[[/S-5 grrrrr<s rtest_heterogenous_suicidal_one9CycleChainFinalizationTest.test_heterogenous_suicidal_ones ))?M*JQ*NOrcLUR[/S-[/S--5 grr r<s rtest_heterogenous_suicidal_two9CycleChainFinalizationTest.test_heterogenous_suicidal_twos' ))   !]Oa$7 7 9rc@UR[[/S-5 gr)rrrr<s rtest_heterogenous_resurrect_one:CycleChainFinalizationTest.test_heterogenous_resurrect_ones %%'9=&IA&MNrcJUR[[[/S-5 grrrrrr<s rtest_heterogenous_resurrect_two:CycleChainFinalizationTest.test_heterogenous_resurrect_twos  %%  @1 D FrcbUR[/S-[/S--[/S--5 grrr<s r!test_heterogenous_resurrect_threerEr-rFs rrHLegacyBase.__del__s^ ">>%%bh/!!#" " KK  q ! ! "sAA A8A33A8cUR(dEURR[U55 UR 5 UR 5 gg![ a%nURRU5 SnAgSnAff=fr*)r8r2rBrCr>rDrEr-rFs r __tp_del__LegacyBase.__tp_del__sj ">>!!((D2!!#  "" " KK  q ! ! "rJrN)rrrrrHrrrrrrrs " "rrc\rSrSrSrg)LegacyirNrgrrrr!r!rr!c\rSrSrSrSrg)LegacyResurrectoric:URRU5 gr*rar<s rrDLegacyResurrector.side_effectrcrrNrnrrrr$r$s$rr$c\rSrSrSrg)LegacySelfCycleirNrgrrrr(r(r"rr(c:^\rSrSrU4SjrSrSrSrSrU=r $)LegacyFinalizationTestic>[RR5 [R"5 [TU]5 gr*)r.r/r,r0rrxrs rrxLegacyFinalizationTest.tearDowns)   rc[R5 [5n[U5/n[R "U5nA[ R"5 URU5 URU5 UR/5 URU"5S5 [ R"5 URU5 URU5 SSS5 g!,(df  g=fr*) rRr9r!rCrrr.r0r~rrrrs r test_legacy"LegacyFinalizationTest.test_legacys __ Aa5'CQB JJL  ! !# &  $ $S )  ! !" % MM"$ % JJL  ! !# &  $ $S )  s CC"" C0c\[R5 [5n[U5/n[R "U5nA[ R"5 URU5 URU5 URU5 URU"5S5 UR5 [ R"5 URU5 URUS-5 URU5 SSS5 URW"5S5 g!,(df  N&=fr) rRr9r$rCrrr.r0r~rrrrrs rtest_legacy_resurrect,LegacyFinalizationTest.test_legacy_resurrects __ !#Aa5'CQB JJL  ! !# &  $ $S )  ! !# & MM"$ %  " JJL  ! !# &  $ $S1W -  ! !# & bdD!! s C(D D+c[R5 [5n[U5/n[R "U5nA[ R"5 UR/5 UR/5 UR/5 URU5 URU"5S5 S[ RSlSSS5 UR/5 URW"5S5 g!,(df  N7=f)Nr)rRr9r(rCrrr.r0r~rrrrr/rrs rtest_legacy_self_cycle-LegacyFinalizationTest.test_legacy_self_cycles __ !Aa5'CQB JJL  ! !" %  $ $R (  ! !" %    $   RT4 ( $BJJqM  B bdD! s B6C<< D r) rrrrrxr.r1r4rrrs@rr*r*s  *"&""rr*__main__)%rOr.r r _testcapir ImportErrorrr9r%r'rRr[r^rerjrpTestCaserrrrrrrrrrrrr!r$r(rr*rmainrrrr;s  %$? ? D$$ O  $$ $ Z $ $%%<>'Xx'8'8>'B   mV  =*;  v7&(*;*;7&t**0 K  &7 k6GT8+<+<GTZ""0  Z    $ $ $  mZ    >"Xx'8'8>">"B z MMO[s"FF" FF" F/.F/