[Lxml-checkins] r44717 - lxml/trunk/src/lxml/tests

scoder at codespeak.net scoder at codespeak.net
Wed Jul 4 10:18:59 CEST 2007


Author: scoder
Date: Wed Jul  4 10:18:58 2007
New Revision: 44717

Modified:
   lxml/trunk/src/lxml/tests/test_errors.py
Log:
test case for cyclic GC and None references

Modified: lxml/trunk/src/lxml/tests/test_errors.py
==============================================================================
--- lxml/trunk/src/lxml/tests/test_errors.py	(original)
+++ lxml/trunk/src/lxml/tests/test_errors.py	Wed Jul  4 10:18:58 2007
@@ -6,6 +6,7 @@
 # It is likely that if there are errors, instead of failing the code
 # will simply crash.
 
+import sys, gc
 from lxml import etree
 
 class ErrorTestCase(unittest.TestCase):
@@ -19,6 +20,21 @@
     def test_empty_parse(self):
         self.assertRaises(etree.XMLSyntaxError, etree.fromstring, '')
 
+    def test_element_cyclic_gc_none(self):
+        # test if cyclic reference can crash etree
+        Element = self.etree.Element
+        gc.collect()
+
+        count = sys.getrefcount(None)
+
+        l = [Element('name'), Element('name')]
+        l.append(l)
+
+        del l
+        gc.collect()
+
+        self.assertEquals(sys.getrefcount(None), count)
+
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTests([unittest.makeSuite(ErrorTestCase)])


More information about the lxml-checkins mailing list