[Python-checkins] python/nondist/sandbox/datetime test_both.py,1.46,1.47
tim_one@users.sourceforge.net
tim_one@users.sourceforge.net
Fri, 06 Dec 2002 18:12:34 -0800
Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory sc8-pr-cvs1:/tmp/cvs-serv13915
Modified Files:
test_both.py
Log Message:
Added refcount-based leak detection as discussed on Python-Dev. Pass
option--leak under a debug build to trigger this (it will run the tests
in an infinite loop then, and print stuff after each run).
Index: test_both.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/test_both.py,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** test_both.py 6 Dec 2002 20:32:23 -0000 1.46
--- test_both.py 7 Dec 2002 02:12:31 -0000 1.47
***************
*** 5,8 ****
--- 5,11 ----
Pass c on the cmdline to test the C implementation; else the Python
implementation is tested.
+
+ Run with --leak under a debug build to get some simple but powerful leak
+ detection.
"""
***************
*** 1122,1128 ****
def test_main():
r = unittest.TextTestRunner(stream=sys.stdout, verbosity=2)
s = test_suite()
! r.run(s)
if __name__ == "__main__":
--- 1125,1150 ----
def test_main():
+ import gc
+ import sys
+
r = unittest.TextTestRunner(stream=sys.stdout, verbosity=2)
s = test_suite()
! lastrc = None
! while True:
! r.run(s)
! gc.collect()
! if gc.garbage:
! raise SystemError("gc.garbage not empty after test run: %r" %
! gc.garbage)
! if hasattr(sys, 'gettotalrefcount'):
! thisrc = sys.gettotalrefcount()
! print '*' * 10, 'total refs:', thisrc,
! if lastrc:
! print 'delta:', thisrc - lastrc
! else:
! print
! lastrc = thisrc
! if '--leak' not in sys.argv:
! break
if __name__ == "__main__":