Index: lldb/trunk/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py +++ lldb/trunk/packages/Python/lldbsuite/test/commands/gui/basic/TestGuiBasic.py @@ -11,6 +11,7 @@ mydir = TestBase.compute_mydir(__file__) + @skipIfCursesSupportMissing def test_gui(self): self.build() Index: lldb/trunk/packages/Python/lldbsuite/test/commands/gui/invalid-args/TestInvalidArgsGui.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/commands/gui/invalid-args/TestInvalidArgsGui.py +++ lldb/trunk/packages/Python/lldbsuite/test/commands/gui/invalid-args/TestInvalidArgsGui.py @@ -6,10 +6,8 @@ mydir = TestBase.compute_mydir(__file__) - def setUp(self): - TestBase.setUp(self) - @no_debug_info_test + @skipIfCursesSupportMissing def test_reproducer_generate_invalid_invocation(self): self.expect("gui blub", error=True, substrs=["the gui command takes no arguments."]) Index: lldb/trunk/packages/Python/lldbsuite/test/decorators.py =================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/decorators.py +++ lldb/trunk/packages/Python/lldbsuite/test/decorators.py @@ -783,13 +783,18 @@ return None return skipTestIfFn(is_compiler_with_address_sanitizer)(func) -def skipIfXmlSupportMissing(func): +def _get_bool_config_skip_if_decorator(key): config = lldb.SBDebugger.GetBuildConfiguration() - xml = config.GetValueForKey("xml") - + value_node = config.GetValueForKey(key) fail_value = True # More likely to notice if something goes wrong - have_xml = xml.GetValueForKey("value").GetBooleanValue(fail_value) - return unittest2.skipIf(not have_xml, "requires xml support")(func) + have = value_node.GetValueForKey("value").GetBooleanValue(fail_value) + return unittest2.skipIf(not have, "requires " + key) + +def skipIfCursesSupportMissing(func): + return _get_bool_config_skip_if_decorator("curses")(func) + +def skipIfXmlSupportMissing(func): + return _get_bool_config_skip_if_decorator("xml")(func) def skipIfLLVMTargetMissing(target): config = lldb.SBDebugger.GetBuildConfiguration() Index: lldb/trunk/source/API/SBDebugger.cpp =================================================================== --- lldb/trunk/source/API/SBDebugger.cpp +++ lldb/trunk/source/API/SBDebugger.cpp @@ -624,6 +624,13 @@ AddBoolConfigEntry( *config_up, "xml", XMLDocument::XMLEnabled(), "A boolean value that indicates if XML support is enabled in LLDB"); + bool have_curses = true; +#ifdef LLDB_DISABLE_CURSES + have_curses = false; +#endif + AddBoolConfigEntry( + *config_up, "curses", have_curses, + "A boolean value that indicates if curses support is enabled in LLDB"); AddLLVMTargets(*config_up); SBStructuredData data;