[Lldb-commits] [PATCH] D72662: dotest.py: Add option to pass extra lldb settings to dotest
Adrian Prantl via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon Jan 13 15:44:59 PST 2020
aprantl created this revision.
aprantl added reviewers: JDevlieghere, labath.
aprantl added a project: LLDB.
The primary motivation for this is to add another dimension to the Swift LLDB test matrix, but this seems generally useful.
https://reviews.llvm.org/D72662
Files:
lldb/packages/Python/lldbsuite/test/configuration.py
lldb/packages/Python/lldbsuite/test/dotest.py
lldb/packages/Python/lldbsuite/test/dotest_args.py
Index: lldb/packages/Python/lldbsuite/test/dotest_args.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/dotest_args.py
+++ lldb/packages/Python/lldbsuite/test/dotest_args.py
@@ -115,6 +115,14 @@
dest='dwarf_version',
type=int,
help='Override the DWARF version.')
+ group.add_argument(
+ '--setting',
+ metavar='SETTING=VALUE',
+ dest='settings',
+ type=str,
+ nargs=1,
+ action='append',
+ help='Run "setting set SETTING VALUE" before executing any test.')
group.add_argument(
'-s',
metavar='name',
Index: lldb/packages/Python/lldbsuite/test/dotest.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/dotest.py
+++ lldb/packages/Python/lldbsuite/test/dotest.py
@@ -343,6 +343,14 @@
# that explicitly require no debug info.
os.environ['CFLAGS'] = '-gdwarf-{}'.format(configuration.dwarf_version)
+ if args.settings:
+ for setting in args.settings:
+ if not len(setting) == 1 or not setting[0].count('='):
+ logging.error('"%s" is not a setting in the form "key=value"',
+ setting[0])
+ sys.exit(-1)
+ configuration.settings.append(setting[0].split('=', 1))
+
if args.d:
sys.stdout.write(
"Suspending the process %d to wait for debugger to attach...\n" %
@@ -765,16 +773,18 @@
raise
-def disabledynamics():
+def setSetting(setting, value):
import lldb
ci = lldb.DBG.GetCommandInterpreter()
res = lldb.SBCommandReturnObject()
- ci.HandleCommand(
- "setting set target.prefer-dynamic-value no-dynamic-values",
- res,
- False)
+ cmd = 'setting set %s %s'%(setting, value)
+ print(cmd)
+ ci.HandleCommand(cmd, res, False)
if not res.Succeeded():
- raise Exception('disabling dynamic type support failed')
+ raise Exception('failed to run "%s"'%cmd)
+
+def disabledynamics():
+ setSetting('target.prefer-dynamic-value', 'no-dynamic-values')
# ======================================== #
@@ -1063,6 +1073,10 @@
# Disable default dynamic types for testing purposes
disabledynamics()
+ # Set any user-overridden settings.
+ for key, value in configuration.settings:
+ setSetting(key, value)
+
# Install the control-c handler.
unittest2.signals.installHandler()
Index: lldb/packages/Python/lldbsuite/test/configuration.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/configuration.py
+++ lldb/packages/Python/lldbsuite/test/configuration.py
@@ -48,6 +48,9 @@
# The overriden dwarf verison.
dwarf_version = 0
+# Any overridden settings.
+settings = []
+
# Path to the FileCheck testing tool. Not optional.
filecheck = None
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72662.237803.patch
Type: text/x-patch
Size: 2971 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200113/5f0a54c4/attachment.bin>
More information about the lldb-commits
mailing list