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 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/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',