summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_cprofile.py
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2008-10-07 02:32:59 (GMT)
committerBenjamin Peterson <benjamin@python.org>2008-10-07 02:32:59 (GMT)
commit6ccc7038654513cc1f805be0dc1d5a2853babd07 (patch)
tree289c463ae86393d37d6f4ce084b1cb33e65958b6 /Lib/test/test_cprofile.py
parentf259bc42c67564942cac317a8b7626b7ececd9e4 (diff)
downloadcpython-6ccc7038654513cc1f805be0dc1d5a2853babd07.zip
cpython-6ccc7038654513cc1f805be0dc1d5a2853babd07.tar.gz
cpython-6ccc7038654513cc1f805be0dc1d5a2853babd07.tar.bz2
Merged revisions 66677,66700 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r66677 | brett.cannon | 2008-09-28 22:41:21 -0500 (Sun, 28 Sep 2008) | 7 lines The _lsprof module could crash the interpreter if it was given an external timer that did not return a float and a timer was still running when the Profiler object was garbage collected. Fixes issue 3895. Code review by Benjamin Peterson. ........ r66700 | brett.cannon | 2008-09-30 12:46:03 -0500 (Tue, 30 Sep 2008) | 5 lines Fix a refleak introduced by r66677. Fix suggested by Amaury Forgeot d'Arc. Closes issue #4003. ........
Diffstat (limited to 'Lib/test/test_cprofile.py')
-rw-r--r--Lib/test/test_cprofile.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/Lib/test/test_cprofile.py b/Lib/test/test_cprofile.py
index 4c194dc..349d342 100644
--- a/Lib/test/test_cprofile.py
+++ b/Lib/test/test_cprofile.py
@@ -1,7 +1,7 @@
"""Test suite for the cProfile module."""
import sys
-from test.support import run_unittest
+from test.support import run_unittest, TESTFN, unlink
# rip off all interesting stuff from test_profile
import cProfile
@@ -13,6 +13,20 @@ class CProfileTest(ProfileTest):
def get_expected_output(self):
return _ProfileOutput
+ # Issue 3895.
+ def test_bad_counter_during_dealloc(self):
+ import _lsprof
+ # Must use a file as StringIO doesn't trigger the bug.
+ sys.stderr = open(TESTFN, 'w')
+ try:
+ obj = _lsprof.Profiler(lambda: int)
+ obj.enable()
+ obj = _lsprof.Profiler(1)
+ obj.disable()
+ finally:
+ sys.stderr = sys.__stderr__
+ unlink(TESTFN)
+
def test_main():
run_unittest(CProfileTest)