From c898bdc41baa912ceee2c87f00d7297d675438d4 Mon Sep 17 00:00:00 2001 From: Metin Kaya Date: Wed, 7 May 2025 16:30:32 +0100 Subject: [PATCH] framework: utils: Improve logging in revent replay related methods Also fix typos around the modified lines. Signed-off-by: Metin Kaya --- wa/framework/workload.py | 7 ++++--- wa/utils/revent.py | 18 +++++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/wa/framework/workload.py b/wa/framework/workload.py index 5abb90e3..57befdfe 100644 --- a/wa/framework/workload.py +++ b/wa/framework/workload.py @@ -584,6 +584,7 @@ class ReventGUI(object): def __init__(self, workload, target, setup_timeout, run_timeout, extract_results_timeout, teardown_timeout): + self.logger = logging.getLogger(self.__class__.__name__) self.workload = workload self.target = target self.setup_timeout = setup_timeout @@ -596,7 +597,6 @@ class ReventGUI(object): self.on_target_run_revent = self.target.get_workpath('{}.run.revent'.format(self.target.model)) self.on_target_extract_results_revent = self.target.get_workpath('{}.extract_results.revent'.format(self.target.model)) self.on_target_teardown_revent = self.target.get_workpath('{}.teardown.revent'.format(self.target.model)) - self.logger = logging.getLogger('revent') self.revent_setup_file = None self.revent_run_file = None self.revent_extract_results_file = None @@ -629,8 +629,9 @@ class ReventGUI(object): timeout=self.setup_timeout) def run(self): - msg = 'Replaying {}' - self.logger.debug(msg.format(os.path.basename(self.on_target_run_revent))) + self.logger.debug('Replaying "%s" with %d seconds timeout', + os.path.basename(self.on_target_run_revent), + self.run_timeout) self.revent_recorder.replay(self.on_target_run_revent, timeout=self.run_timeout) self.logger.debug('Replay completed.') diff --git a/wa/utils/revent.py b/wa/utils/revent.py index f858ab47..0464884d 100644 --- a/wa/utils/revent.py +++ b/wa/utils/revent.py @@ -14,6 +14,7 @@ # +import logging import os import struct import signal @@ -117,22 +118,22 @@ class ReventRecording(object): Represents a parsed revent recording. This contains input events and device descriptions recorded by revent. Two parsing modes are supported. By default, the recording will be parsed in the "streaming" mode. In this - mode, initial headers and device descritions are parsed on creation and an + mode, initial headers and device descriptions are parsed on creation and an open file handle to the recording is saved. Events will be read from the file as they are being iterated over. In this mode, the entire recording is never loaded into memory at once. The underlying file may be "released" by - calling ``close`` on the recroding, after which further iteration over the + calling ``close`` on the recording, after which further iteration over the events will not be possible (but would still be possible to access the file description and header information). The alternative is to load the entire recording on creation (in which case - the file handle will be closed once the recroding is loaded). This can be + the file handle will be closed once the recording is loaded). This can be enabled by specifying ``streaming=False``. This will make it faster to subsequently iterate over the events, and also will not "hold" the file open. .. note:: When starting a new iteration over the events in streaming mode, - the postion in the open file will be automatically reset to the + the position in the open file will be automatically reset to the beginning of the event stream. This means it's possible to iterate over the events multiple times without having to re-open the recording, however it is not possible to do so in parallel. If @@ -274,10 +275,11 @@ def get_revent_binary(abi): class ReventRecorder(object): - # Share location of target excutable across all instances + # Share location of target executable across all instances target_executable = None def __init__(self, target): + self.logger = logging.getLogger(self.__class__.__name__) self.target = target if not ReventRecorder.target_executable: ReventRecorder.target_executable = self._get_target_path(self.target) @@ -295,7 +297,8 @@ class ReventRecorder(object): self.target.uninstall('revent') def start_record(self, revent_file): - command = '{} record -s {}'.format(ReventRecorder.target_executable, revent_file) + command = f'{ReventRecorder.target_executable} record -s {revent_file}' + self.logger.debug('Executing record command "%s"...', command) self.target.kick_off(command, self.target.is_rooted) def stop_record(self): @@ -303,7 +306,8 @@ class ReventRecorder(object): def replay(self, revent_file, timeout=None): self.target.killall('revent') - command = "{} replay {}".format(ReventRecorder.target_executable, revent_file) + command = f'{ReventRecorder.target_executable} replay {revent_file}' + self.logger.debug('Executing replay command "%s" with %d seconds timeout...', command, timeout) self.target.execute(command, timeout=timeout) @memoized