From 3c9c5f176946a39ec3eec10024e7fbc2629b37b2 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 12 Jun 2023 15:30:52 +0200 Subject: [PATCH] os.Environment, os.Machine: Add --be-opts --be-opts is a means to pass machine-backend-specific options to that backend. Signed-off-by: Jan Lindemann --- src/python/devtest/os/Environment.py | 16 ++++++++++++++++ src/python/devtest/os/MachineCmd.py | 1 + 2 files changed, 17 insertions(+) diff --git a/src/python/devtest/os/Environment.py b/src/python/devtest/os/Environment.py index 7450ea2..6fd004b 100644 --- a/src/python/devtest/os/Environment.py +++ b/src/python/devtest/os/Environment.py @@ -5,6 +5,21 @@ from datetime import datetime from .Connections import Connections from jwutils import Options from jwutils.log import * +import shlex + +def _parse_opts_str(s): + lexer = shlex.shlex(s, posix=True) + lexer.whitespace = ',' + lexer.whitespace_split = True + ret = {} + for pair in lexer: + try: + t = pair.split('=', 1) + ret[t[0]] = t[1] + continue + except: + ret[pair] = True + return ret class Environment: @@ -20,6 +35,7 @@ class Environment: self.time_stamp = (datetime.now() if args.time_stamp is None else datetime.strptime(args.time_stamp, fmt)).strftime(fmt) self.tag = args.tag slog(INFO, "Tag = {}\n".format(self.tag)) + self.be_opts = _parse_opts_str(args.be_opts) self.connections = Connections() for spec in args.connection: self.connections.append(spec) diff --git a/src/python/devtest/os/MachineCmd.py b/src/python/devtest/os/MachineCmd.py index e335383..34c5489 100644 --- a/src/python/devtest/os/MachineCmd.py +++ b/src/python/devtest/os/MachineCmd.py @@ -13,6 +13,7 @@ class MachineCmd(jwutils.Cmd): # export def add_parser(self, parsers): p = super().add_parser(parsers) p.add_argument("-B", "--backend", help="Machine backend", default='qemu') + p.add_argument( "--be-opts", help="Machine backend options", default='') p.add_argument("-P", "--platform", help="Target platform type", required=True) p.add_argument("-C", "--connection", help="Connection specification of the form 'proto=console,phase=pre|up-shutdown'", action='append', default=[]) p.add_argument("-T", "--test-case-path", help="Test case search path, directories separated by colons", required=True)