summaryrefslogtreecommitdiff
path: root/tests/farm/run/src/showtrace.py
blob: a36925218d03754666243517327df53d59878eab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt

# Show the current frame's trace function, so that we can test what the
# command-line options do to the trace function used.

import sys

# Show what the trace function is.  If a C-based function is used, then f_trace
# may be None.
trace_fn = sys._getframe(0).f_trace
if trace_fn is None:
    trace_name = "None"
else:
    # Get the name of the tracer class.  Py3k has a different way to get it.
    try:
        trace_name = trace_fn.im_class.__name__
    except AttributeError:
        try:
            trace_name = trace_fn.__self__.__class__.__name__
        except AttributeError:
            # A C-based function could also manifest as an f_trace value
            # which doesn't have im_class or __self__.
            trace_name = trace_fn.__class__.__name__

print("%s %s" % (sys.argv[1], trace_name))