44
55def expect (actual , expected , name ):
66 if actual != expected :
7- raise TestFailed , "test_%s: actual %d , expected %d " % (
7+ raise TestFailed , "test_%s: actual %r , expected %r " % (
88 name , actual , expected )
99
1010def expect_nonzero (actual , name ):
@@ -304,6 +304,29 @@ def test_boom2():
304304 expect (gc .collect (), 4 , "boom2" )
305305 expect (len (gc .garbage ), garbagelen , "boom2" )
306306
307+ def test_get_referrents ():
308+ alist = [1 , 3 , 5 ]
309+ got = gc .get_referrents (alist )
310+ got .sort ()
311+ expect (got , alist , "get_referrents" )
312+
313+ atuple = tuple (alist )
314+ got = gc .get_referrents (atuple )
315+ got .sort ()
316+ expect (got , alist , "get_referrents" )
317+
318+ adict = {1 : 3 , 5 : 7 }
319+ expected = [1 , 3 , 5 , 7 ]
320+ got = gc .get_referrents (adict )
321+ got .sort ()
322+ expect (got , expected , "get_referrents" )
323+
324+ got = gc .get_referrents ([1 , 2 ], {3 : 4 }, (0 , 0 , 0 ))
325+ got .sort ()
326+ expect (got , [0 , 0 ] + range (5 ), "get_referrents" )
327+
328+ expect (gc .get_referrents (1 , 'a' , 4j ), [], "get_referrents" )
329+
307330def test_all ():
308331 gc .collect () # Delete 2nd generation garbage
309332 run_test ("lists" , test_list )
@@ -324,6 +347,7 @@ def test_all():
324347 run_test ("trashcan" , test_trashcan )
325348 run_test ("boom" , test_boom )
326349 run_test ("boom2" , test_boom2 )
350+ run_test ("get_referrents" , test_get_referrents )
327351
328352def test ():
329353 if verbose :
0 commit comments