mirror of https://github.com/python/cpython
test AST base type garbage collection
This commit is contained in:
parent
68aecb5619
commit
9ed37433c4
|
@ -1,8 +1,10 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
from test import support
|
|
||||||
import ast
|
import ast
|
||||||
|
import weakref
|
||||||
|
|
||||||
|
from test import support
|
||||||
|
|
||||||
def to_tuple(t):
|
def to_tuple(t):
|
||||||
if t is None or isinstance(t, (str, int, complex)):
|
if t is None or isinstance(t, (str, int, complex)):
|
||||||
|
@ -207,6 +209,17 @@ class AST_Tests(unittest.TestCase):
|
||||||
# "_ast.AST constructor takes 0 positional arguments"
|
# "_ast.AST constructor takes 0 positional arguments"
|
||||||
ast.AST(2)
|
ast.AST(2)
|
||||||
|
|
||||||
|
def test_AST_garbage_collection(self):
|
||||||
|
class X:
|
||||||
|
pass
|
||||||
|
a = ast.AST()
|
||||||
|
a.x = X()
|
||||||
|
a.x.a = a
|
||||||
|
ref = weakref.ref(a.x)
|
||||||
|
del a
|
||||||
|
support.gc_collect()
|
||||||
|
self.assertIsNone(ref())
|
||||||
|
|
||||||
def test_snippets(self):
|
def test_snippets(self):
|
||||||
for input, output, kind in ((exec_tests, exec_results, "exec"),
|
for input, output, kind in ((exec_tests, exec_results, "exec"),
|
||||||
(single_tests, single_results, "single"),
|
(single_tests, single_results, "single"),
|
||||||
|
|
Loading…
Reference in New Issue