From: Neal Norwitz Date: Sun, 3 Mar 2002 15:12:58 +0000 (+0000) Subject: SF #506611, fix sys.setprofile(), sys.settrace() core dumps X-Git-Tag: v2.3c1~6585 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=290d31e2fc02a0d887da2c76fbe4e72377442a0a;p=python SF #506611, fix sys.setprofile(), sys.settrace() core dumps when no arguments are passed --- diff --git a/Lib/test/test_profilehooks.py b/Lib/test/test_profilehooks.py index cc97df8dc4..fa38d3047c 100644 --- a/Lib/test/test_profilehooks.py +++ b/Lib/test/test_profilehooks.py @@ -1,5 +1,7 @@ from __future__ import generators +from test_support import TestFailed + import pprint import sys import unittest @@ -329,6 +331,10 @@ protect_ident = ident(protect) def capture_events(callable, p=None): + try: sys.setprofile() + except TypeError: pass + else: raise TestFailed, 'sys.setprofile() did not raise TypeError' + if p is None: p = HookWatcher() sys.setprofile(p.callback) diff --git a/Lib/test/test_scope.py b/Lib/test/test_scope.py index bb29f8b9a7..85cfed4749 100644 --- a/Lib/test/test_scope.py +++ b/Lib/test/test_scope.py @@ -471,6 +471,10 @@ sys.settrace(tracer) adaptgetter("foo", TestClass, (1, "")) sys.settrace(None) +try: sys.settrace() +except TypeError: pass +else: raise TestFailed, 'sys.settrace() did not raise TypeError' + print "20. eval and exec with free variables" def f(x): diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 90338dea35..3448e6a9d3 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -564,10 +564,10 @@ static PyMethodDef sys_methods[] = { {"setdlopenflags", sys_setdlopenflags, METH_VARARGS, setdlopenflags_doc}, #endif - {"setprofile", sys_setprofile, METH_OLDARGS, setprofile_doc}, + {"setprofile", sys_setprofile, METH_O, setprofile_doc}, {"setrecursionlimit", sys_setrecursionlimit, METH_VARARGS, setrecursionlimit_doc}, - {"settrace", sys_settrace, METH_OLDARGS, settrace_doc}, + {"settrace", sys_settrace, METH_O, settrace_doc}, {NULL, NULL} /* sentinel */ };