Commit c406d5cd authored by Serhiy Storchaka's avatar Serhiy Storchaka Committed by GitHub

bpo-34171: Prevent creating Lib/trace.cover when run the trace module. (GH-8841)

parent 8fdd331b
......@@ -387,6 +387,11 @@ class TestCoverageCommandLineOutput(unittest.TestCase):
def test_cover_files_written_no_highlight(self):
argv = '-m trace --count'.split() + [self.codefile]
status, stdout, stderr = assert_python_ok(*argv)
self.assertEqual(stderr, b'')
tracedir = os.path.dirname(os.path.abspath(trace.__file__))
tracecoverpath = os.path.join(tracedir, "trace.cover")
self.assertFalse(os.path.exists(tracecoverpath))
self.assertTrue(os.path.exists(self.coverfile))
with open(self.coverfile) as f:
self.assertEqual(f.read(),
......
......@@ -63,14 +63,6 @@ from time import monotonic as _time
import threading
def _settrace(func):
threading.settrace(func)
sys.settrace(func)
def _unsettrace():
sys.settrace(None)
threading.settrace(None)
PRAGMA_NOCOVER = "#pragma NO COVER"
class _Ignore:
......@@ -451,12 +443,14 @@ class Trace:
if globals is None: globals = {}
if locals is None: locals = {}
if not self.donothing:
_settrace(self.globaltrace)
threading.settrace(self.globaltrace)
sys.settrace(self.globaltrace)
try:
exec(cmd, globals, locals)
finally:
if not self.donothing:
_unsettrace()
sys.settrace(None)
threading.settrace(None)
def runfunc(self, func, *args, **kw):
result = None
......
Running the :mod:`trace` module no longer creates the ``trace.cover`` file.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment