mirror of
https://github.com/python/cpython
synced 2024-09-18 20:11:41 +00:00
Enable tracing of multi-threaded applications.
Fix bug in computation of coverage percentage: Only count a line if it was executed or if we print the >>>>>> marker.
This commit is contained in:
parent
28b5bb33ea
commit
546e34b654
|
@ -50,6 +50,7 @@
|
|||
import os
|
||||
import re
|
||||
import sys
|
||||
import threading
|
||||
import token
|
||||
import tokenize
|
||||
import types
|
||||
|
@ -317,9 +318,9 @@ def write_results_file(self, path, lines, lnotab, lines_hit):
|
|||
# #pragma: NO COVER
|
||||
if lineno in lnotab and not PRAGMA_NOCOVER in lines[i]:
|
||||
outfile.write(">>>>>> ")
|
||||
n_lines += 1
|
||||
else:
|
||||
outfile.write(" ")
|
||||
n_lines += 1
|
||||
outfile.write(lines[i].expandtabs(8))
|
||||
outfile.close()
|
||||
|
||||
|
@ -437,22 +438,26 @@ def run(self, cmd):
|
|||
dict = __main__.__dict__
|
||||
if not self.donothing:
|
||||
sys.settrace(self.globaltrace)
|
||||
threading.settrace(self.globaltrace)
|
||||
try:
|
||||
exec cmd in dict, dict
|
||||
finally:
|
||||
if not self.donothing:
|
||||
sys.settrace(None)
|
||||
threading.settrace(None)
|
||||
|
||||
def runctx(self, cmd, globals=None, locals=None):
|
||||
if globals is None: globals = {}
|
||||
if locals is None: locals = {}
|
||||
if not self.donothing:
|
||||
sys.settrace(self.globaltrace)
|
||||
threading.settrace(self.globaltrace)
|
||||
try:
|
||||
exec cmd in globals, locals
|
||||
finally:
|
||||
if not self.donothing:
|
||||
sys.settrace(None)
|
||||
threading.settrace(None)
|
||||
|
||||
def runfunc(self, func, *args, **kw):
|
||||
result = None
|
||||
|
|
Loading…
Reference in a new issue