On Wed Feb 28, 2024 at 5:21 AM AEST, Alex Bennée wrote: > Nicholas Piggin <npig...@gmail.com> writes: > > > This runs replay-dump.py after recording a trace, and fails the test if > > the script fails. > > > > replay-dump.py is modified to exit with non-zero if an error is > > encountered while parsing, to support this. > > > > Reviewed-by: Pavel Dovgalyuk <pavel.dovgal...@ispras.ru> > > Signed-off-by: Nicholas Piggin <npig...@gmail.com> > > --- > > scripts/replay-dump.py | 6 ++++-- > > tests/avocado/replay_kernel.py | 16 ++++++++++++++++ > > tests/avocado/replay_linux.py | 15 +++++++++++++++ > > 3 files changed, 35 insertions(+), 2 deletions(-) > > > > diff --git a/scripts/replay-dump.py b/scripts/replay-dump.py > > index b82659cfb6..4ce7ff51cc 100755 > > --- a/scripts/replay-dump.py > > +++ b/scripts/replay-dump.py > > @@ -21,6 +21,7 @@ > > import argparse > > import struct > > import os > > +import sys > > from collections import namedtuple > > from os import path > > > > @@ -100,7 +101,7 @@ def call_decode(table, index, dumpfile): > > print("Could not decode index: %d" % (index)) > > print("Entry is: %s" % (decoder)) > > print("Decode Table is:\n%s" % (table)) > > - return False > > + raise(Exception("unknown event")) > > else: > > return decoder.fn(decoder.eid, decoder.name, dumpfile) > > > > @@ -121,7 +122,7 @@ def print_event(eid, name, string=None, > > event_count=None): > > def decode_unimp(eid, name, _unused_dumpfile): > > "Unimplemented decoder, will trigger exit" > > print("%s not handled - will now stop" % (name)) > > - return False > > + raise(Exception("unhandled event")) > > > > def decode_plain(eid, name, _unused_dumpfile): > > "Plain events without additional data" > > @@ -434,6 +435,7 @@ def decode_file(filename): > > dumpfile) > > except Exception as inst: > > print(f"error {inst}") > > + sys.exit(1) > > > > finally: > > print(f"Reached {dumpfile.tell()} of {dumpsize} bytes") > > diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py > > index 10d99403a4..9b3ee6726b 100644 > > --- a/tests/avocado/replay_kernel.py > > +++ b/tests/avocado/replay_kernel.py > > @@ -13,6 +13,7 @@ > > import shutil > > import logging > > import time > > +import subprocess > > > > from avocado import skip > > from avocado import skipUnless > > @@ -22,6 +23,11 @@ > > from avocado.utils import process > > from boot_linux_console import LinuxKernelTest > > > > +from pathlib import Path > > + > > +self_dir = Path(__file__).parent > > +src_dir = self_dir.parent.parent > > + > > Whats this for? It doesn't seem to be used.
Thanks for finding it, must be just a leftover from some earlier hack. I'll take it out. Thanks, Nick