1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-20 20:09:11 +00:00

utils/trace_cmd: move params to __init__()

Move the check_for_markers and events parameters from parser() to
__init__(). These parameters control the behavior of the parser, and do
not relate to a particular trace file, so it makes more sense to have
them there.
This commit is contained in:
Sergei Trofimov 2018-05-11 15:42:33 +01:00 committed by Marc Bonnici
parent ed1553816b
commit 795b3485ce

View File

@ -235,7 +235,7 @@ class TraceCmdParser(object):
"""
def __init__(self, filter_markers=True):
def __init__(self, filter_markers=True, check_for_markers=True, events=None):
"""
Initialize a new trace parser.
@ -245,27 +245,29 @@ class TraceCmdParser(object):
markers will be reported). This maybe overriden
based on `check_for_markers` parameter of
`parse()`
:param check_for_markers: Check if the start/stop markers are present
in the trace and ensure that `filter_markers`
is `False` if they aren't
:param events: A list of event names to be reported; if not specified,
all events will be reported.
"""
self.filter_markers = filter_markers
self.check_for_markers = check_for_markers
self.events = events
def parse(self, filepath, events=None, check_for_markers=True): # pylint: disable=too-many-branches,too-many-locals
def parse(self, filepath): # pylint: disable=too-many-branches,too-many-locals
"""
This is a generator for the trace event stream.
:param filepath: The path to the file containg text trace as reported
by trace-cmd
:param events: A list of event names to be reported; if not specified,
all events will be reported.
:param check_for_markers: Check if the start/stop markers are present
in the trace and ensure that `filter_markers`
is `False` if they aren't
"""
inside_maked_region = False
filters = [re.compile('^{}$'.format(e)) for e in (events or [])]
filters = [re.compile('^{}$'.format(e)) for e in (self.events or [])]
filter_markers = self.filter_markers
if filter_markers and check_for_markers:
if filter_markers and self.check_for_markers:
with open(filepath) as fh:
for line in fh:
if TRACE_MARKER_START in line: