Index: test/arm_emulation/TestEmulations.py =================================================================== --- test/arm_emulation/TestEmulations.py +++ test/arm_emulation/TestEmulations.py @@ -11,6 +11,7 @@ mydir = TestBase.compute_mydir(__file__) + @no_debug_info_test def test_thumb_emulations (self): current_dir = os.getcwd(); test_dir = os.path.join (current_dir, "new-test-files") @@ -24,7 +25,7 @@ test_file = os.path.join (test_dir, f) self.run_a_single_test (test_file) - + @no_debug_info_test def test_arm_emulations (self): current_dir = os.getcwd(); test_dir = os.path.join (current_dir, "new-test-files") Index: test/benchmarks/continue/TestBenchmarkContinue.py =================================================================== --- test/benchmarks/continue/TestBenchmarkContinue.py +++ test/benchmarks/continue/TestBenchmarkContinue.py @@ -13,18 +13,9 @@ mydir = TestBase.compute_mydir(__file__) @benchmarks_test - @skipUnlessDarwin - @dsym_test - def test_with_dsym_and_run_command(self): + def test_run_command(self): """Benchmark different ways to continue a process""" - self.buildDsym() - self.data_formatter_commands() - - @benchmarks_test - @dwarf_test - def test_with_dwarf_and_run_command(self): - """Benchmark different ways to continue a process""" - self.buildDwarf() + self.build() self.data_formatter_commands() def setUp(self): Index: test/benchmarks/disassembly/TestDisassembly.py =================================================================== --- test/benchmarks/disassembly/TestDisassembly.py +++ test/benchmarks/disassembly/TestDisassembly.py @@ -37,6 +37,7 @@ self.count = 5 @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_run_lldb_then_gdb(self): """Test disassembly on a large function with lldb vs. gdb.""" @@ -52,6 +53,7 @@ print "lldb_avg/gdb_avg: %f" % (self.lldb_avg/self.gdb_avg) @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_run_gdb_then_lldb(self): """Test disassembly on a large function with lldb vs. gdb.""" Index: test/benchmarks/disassembly/TestDoAttachThenDisassembly.py =================================================================== --- test/benchmarks/disassembly/TestDoAttachThenDisassembly.py +++ test/benchmarks/disassembly/TestDoAttachThenDisassembly.py @@ -22,6 +22,7 @@ self.count = 10 @benchmarks_test + @no_debug_info_test def test_attach_then_disassembly(self): """Attach to a spawned lldb process then run disassembly benchmarks.""" print Index: test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py =================================================================== --- test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py +++ test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py @@ -22,6 +22,7 @@ self.count = 5 @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_run_41_then_42(self): """Test disassembly on a large function with 4.1 vs. 4.2's gdb.""" @@ -35,6 +36,7 @@ print "gdb_42_avg/gdb_41_avg: %f" % (self.gdb_42_avg/self.gdb_41_avg) @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_run_42_then_41(self): """Test disassembly on a large function with 4.1 vs. 4.2's gdb.""" Index: test/benchmarks/expression/TestExpressionCmd.py =================================================================== --- test/benchmarks/expression/TestExpressionCmd.py +++ test/benchmarks/expression/TestExpressionCmd.py @@ -21,7 +21,7 @@ @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_expr_cmd(self): """Test lldb's expression commands and collect statistics.""" - self.buildDefault() + self.build() self.exe_name = 'a.out' print Index: test/benchmarks/expression/TestRepeatedExprs.py =================================================================== --- test/benchmarks/expression/TestRepeatedExprs.py +++ test/benchmarks/expression/TestRepeatedExprs.py @@ -23,7 +23,7 @@ @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_compare_lldb_to_gdb(self): """Test repeated expressions with lldb vs. gdb.""" - self.buildDefault() + self.build() self.exe_name = 'a.out' print Index: test/benchmarks/frame_variable/TestFrameVariableResponse.py =================================================================== --- test/benchmarks/frame_variable/TestFrameVariableResponse.py +++ test/benchmarks/frame_variable/TestFrameVariableResponse.py @@ -25,6 +25,7 @@ self.count = 20 @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_startup_delay(self): """Test response time for the 'frame variable' command.""" Index: test/benchmarks/startup/TestStartupDelays.py =================================================================== --- test/benchmarks/startup/TestStartupDelays.py +++ test/benchmarks/startup/TestStartupDelays.py @@ -30,6 +30,7 @@ self.count = 30 @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_startup_delay(self): """Test start up delays creating a target, setting a breakpoint, and run to breakpoint stop.""" Index: test/benchmarks/stepping/TestRunHooksThenSteppings.py =================================================================== --- test/benchmarks/stepping/TestRunHooksThenSteppings.py +++ test/benchmarks/stepping/TestRunHooksThenSteppings.py @@ -16,6 +16,7 @@ self.count = 50 @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_lldb_runhooks_then_steppings(self): """Test lldb steppings on a large executable.""" Index: test/benchmarks/stepping/TestSteppingSpeed.py =================================================================== --- test/benchmarks/stepping/TestSteppingSpeed.py +++ test/benchmarks/stepping/TestSteppingSpeed.py @@ -28,6 +28,7 @@ #print "self.break_spec=%s" % self.break_spec @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_run_lldb_steppings(self): """Test lldb steppings on a large executable.""" Index: test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py =================================================================== --- test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py +++ test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py @@ -22,6 +22,7 @@ self.gdb_avg = None @benchmarks_test + @no_debug_info_test @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") def test_run_lldb_then_gdb(self): """Benchmark turnaround time with lldb vs. gdb.""" Index: test/driver/batch_mode/TestBatchMode.py =================================================================== --- test/driver/batch_mode/TestBatchMode.py +++ test/driver/batch_mode/TestBatchMode.py @@ -15,21 +15,11 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin @skipIfRemote # test not remote-ready llvm.org/pr24813 - @dsym_test - def test_driver_batch_mode_with_dsym(self): - """Test that the lldb driver's batch mode works correctly.""" - self.buildDsym() - self.setTearDownCleanup() - self.batch_mode () - @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") - @skipIfRemote # test not remote-ready llvm.org/pr24813 - @dwarf_test - def test_driver_batch_mode_with_dwarf(self): + def test_driver_batch_mode(self): """Test that the lldb driver's batch mode works correctly.""" - self.buildDwarf() + self.build() self.setTearDownCleanup() self.batch_mode() @@ -48,7 +38,6 @@ except pexpect.TIMEOUT: self.fail ("Timed out waiting for '%s'"%(string)) - def batch_mode (self): exe = os.path.join(os.getcwd(), "a.out") prompt = "(lldb) " @@ -95,11 +84,3 @@ index = self.child.expect([pexpect.EOF, pexpect.TIMEOUT]) self.assertTrue(index == 0, "lldb didn't close on successful batch completion.") - - - - - - - - Index: test/expression_command/call-function/TestCallStdStringFunction.py =================================================================== --- test/expression_command/call-function/TestCallStdStringFunction.py +++ test/expression_command/call-function/TestCallStdStringFunction.py @@ -18,24 +18,12 @@ self.line = line_number('main.cpp', '// Please test these expressions while stopped at this line:') - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): - """Test calling std::String member function.""" - self.buildDsym() - self.call_function() - - @dwarf_test - @expectedFailureFreeBSD('llvm.org/pr17807') # Fails on FreeBSD buildbot @expectedFailureIcc # llvm.org/pr14437, fails with ICC 13.1 + @expectedFailureFreeBSD('llvm.org/pr17807') # Fails on FreeBSD buildbot @expectedFailureWindows("llvm.org/pr21765") - def test_with_dwarf(self): - """Test calling std::String member function.""" - self.buildDwarf() - self.call_function() - - def call_function(self): + def test_with_dsym(self): """Test calling std::String member function.""" + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) # Some versions of GCC encode two locations for the 'return' statement in main.cpp Index: test/expression_command/call-function/TestCallStopAndContinue.py =================================================================== --- test/expression_command/call-function/TestCallStopAndContinue.py +++ test/expression_command/call-function/TestCallStopAndContinue.py @@ -20,24 +20,11 @@ self.func_line = line_number ('main.cpp', '{ 5, "five" }') - @skipUnlessDarwin - @dsym_test - @expectedFlakeyDarwin("llvm.org/pr20274") - def test_with_dsym(self): - """Test gathering result from interrupted function call.""" - self.buildDsym() - self.call_function() - - @dwarf_test @expectedFlakeyDarwin("llvm.org/pr20274") @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows") - def test_with_dwarf(self): - """Test gathering result from interrupted function call.""" - self.buildDwarf() - self.call_function() - - def call_function(self): + def test(self): """Test gathering result from interrupted function call.""" + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) # Some versions of GCC encode two locations for the 'return' statement in main.cpp Index: test/expression_command/call-function/TestCallUserDefinedFunction.py =================================================================== --- test/expression_command/call-function/TestCallUserDefinedFunction.py +++ test/expression_command/call-function/TestCallUserDefinedFunction.py @@ -22,23 +22,11 @@ # Find the line number to break for main.c. self.line = line_number('main.cpp', '// Please test these expressions while stopped at this line:') - @skipUnlessDarwin - @dsym_test - @expectedFailureDarwin("llvm.org/pr20274") # intermittent failure on MacOSX - def test_with_dsym(self): - """Test return values of user defined function calls.""" - self.buildDsym() - self.call_function() - - @dwarf_test + @expectedFailureDarwin("llvm.org/pr20274", debug_info=["dsym"]) # intermittent failure on MacOSX @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows") - def test_with_dwarf(self): - """Test return values of user defined function calls.""" - self.buildDwarf() - self.call_functions() - - def call_functions(self): + def test(self): """Test return values of user defined function calls.""" + self.build() # Set breakpoint in main and run exe self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/call-restarts/TestCallThatRestarts.py =================================================================== --- test/expression_command/call-restarts/TestCallThatRestarts.py +++ test/expression_command/call-restarts/TestCallThatRestarts.py @@ -18,22 +18,13 @@ self.main_source = "lotta-signals.c" self.main_source_spec = lldb.SBFileSpec (self.main_source) - - @skipUnlessDarwin - @dsym_test - @skipIfDarwin # llvm.org/pr19246: intermittent failure - def test_with_dsym(self): - """Test calling std::String member function.""" - self.buildDsym() - self.call_function() - @dwarf_test @skipIfFreeBSD # llvm.org/pr19246: intermittent failure @skipIfDarwin # llvm.org/pr19246: intermittent failure @skipIfWindows # Test relies on signals, unsupported on Windows - def test_with_dwarf(self): - """Test calling std::String member function.""" - self.buildDwarf() + def test(self): + """Test calling function that hits a signal and restarts.""" + self.build() self.call_function() def check_after_call (self, num_sigchld): @@ -45,9 +36,7 @@ frame = self.thread.GetFrameAtIndex(0) self.assertTrue (self.orig_frame_pc == frame.GetPC(), "Restored the zeroth frame correctly") - def call_function(self): - """Test calling function that hits a signal and restarts.""" exe_name = "a.out" exe = os.path.join(os.getcwd(), exe_name) Index: test/expression_command/call-throws/TestCallThatThrows.py =================================================================== --- test/expression_command/call-throws/TestCallThatThrows.py +++ test/expression_command/call-throws/TestCallThatThrows.py @@ -18,19 +18,10 @@ self.main_source = "call-throws.m" self.main_source_spec = lldb.SBFileSpec (self.main_source) - - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): - """Test calling a function that throws and ObjC exception.""" - self.buildDsym() - self.call_function() - @skipUnlessDarwin - @dwarf_test - def test_with_dwarf(self): + def test(self): """Test calling a function that throws and ObjC exception.""" - self.buildDwarf() + self.build() self.call_function() def check_after_call (self): Index: test/expression_command/expr-in-syscall/TestExpressionInSyscall.py =================================================================== --- test/expression_command/expr-in-syscall/TestExpressionInSyscall.py +++ test/expression_command/expr-in-syscall/TestExpressionInSyscall.py @@ -11,16 +11,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_setpgid_with_dsym(self): - self.buildDsym() - self.expr_syscall() - - @dwarf_test @expectedFailureWindows("llvm.org/pr21765") # Also getpid() is not a function on Windows anyway - def test_setpgid_with_dwarf(self): - self.buildDwarf() + def test_setpgid(self): + self.build() self.expr_syscall() def expr_syscall(self): Index: test/expression_command/formatters/TestFormatters.py =================================================================== --- test/expression_command/formatters/TestFormatters.py +++ test/expression_command/formatters/TestFormatters.py @@ -18,27 +18,16 @@ self.line = line_number('main.cpp', '// Stop here') - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): - """Test expr + formatters for good interoperability.""" - self.buildDsym() - self.do_my_test() - @skipIfFreeBSD # llvm.org/pr24691 skipping to avoid crashing the test runner @expectedFailureFreeBSD('llvm.org/pr19011') # Newer Clang omits C1 complete object constructor @expectedFailureFreeBSD('llvm.org/pr24691') # we hit an assertion in clang @expectedFailureWindows("llvm.org/pr21765") @skipIfTargetAndroid() # skipping to avoid crashing the test runner @expectedFailureAndroid('llvm.org/pr24691') # we hit an assertion in clang - @dwarf_test def test_with_dwarf(self): """Test expr + formatters for good interoperability.""" - self.buildDwarf() - self.do_my_test() + self.build() - def do_my_test(self): - # This is the function to remove the custom formats in order to have a # clean slate for the next test case. def cleanup(): Index: test/expression_command/issue_11588/Test11588.py =================================================================== --- test/expression_command/issue_11588/Test11588.py +++ test/expression_command/issue_11588/Test11588.py @@ -26,7 +26,7 @@ self.addTearDownHook(cleanup) """valobj.AddressOf() should return correct values.""" - self.buildDefault() + self.build() exe = os.path.join(os.getcwd(), "a.out") Index: test/expression_command/options/TestExprOptions.py =================================================================== --- test/expression_command/options/TestExprOptions.py +++ test/expression_command/options/TestExprOptions.py @@ -28,7 +28,7 @@ def test_expr_options(self): """These expression command options should work as expected.""" - self.buildDefault() + self.build() # Set debugger into synchronous mode self.dbg.SetAsync(False) Index: test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py =================================================================== --- test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py +++ test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py @@ -18,26 +18,13 @@ self.line = line_number('main.m','// break here') @skipUnlessDarwin - @dsym_test @expectedFailureAll( bugnumber='http://llvm.org/pr23504', oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0']) def test_with_dsym(self): """Test that we can p *objcObject""" - self.buildDsym() - self.do_my_test() + self.build() - @skipUnlessDarwin - @dwarf_test - @expectedFailureAll( - bugnumber='http://llvm.org/pr23504', - oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0']) - def test_with_dwarf(self): - """Test that we can p *objcObject""" - self.buildDwarf() - self.do_my_test() - - def do_my_test(self): def cleanup(): pass Index: test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py =================================================================== --- test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py +++ test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py @@ -15,21 +15,10 @@ # Call super's setUp(). TestBase.setUp(self) - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): + def test(self): """Test that we can have persistent pointer variables""" - self.buildDsym() - self.do_my_test() + self.build() - @skipUnlessDarwin - @dwarf_test - def test_with_dwarf(self): - """Test that we can have persistent pointer variables""" - self.buildDwarf() - self.do_my_test() - - def do_my_test(self): def cleanup(): pass Index: test/expression_command/persistent_types/TestNestedPersistentTypes.py =================================================================== --- test/expression_command/persistent_types/TestNestedPersistentTypes.py +++ test/expression_command/persistent_types/TestNestedPersistentTypes.py @@ -14,7 +14,7 @@ @expectedFailureWindows("llvm.org/pr21765") def test_persistent_types(self): """Test that nested persistent types work.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/persistent_types/TestPersistentTypes.py =================================================================== --- test/expression_command/persistent_types/TestPersistentTypes.py +++ test/expression_command/persistent_types/TestPersistentTypes.py @@ -14,7 +14,7 @@ @expectedFailureWindows("llvm.org/pr21765") def test_persistent_types(self): """Test that lldb persistent types works correctly.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/persistent_variables/TestPersistentVariables.py =================================================================== --- test/expression_command/persistent_variables/TestPersistentVariables.py +++ test/expression_command/persistent_variables/TestPersistentVariables.py @@ -13,7 +13,7 @@ def test_persistent_variables(self): """Test that lldb persistent variables works correctly.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/po_verbosity/TestPoVerbosity.py =================================================================== --- test/expression_command/po_verbosity/TestPoVerbosity.py +++ test/expression_command/po_verbosity/TestPoVerbosity.py @@ -19,20 +19,9 @@ '// Stop here') @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): + def test(self): """Test that the po command acts correctly.""" - self.buildDsym() - self.do_my_test() - - @skipUnlessDarwin - @dwarf_test - def test_with_dwarf(self): - """Test that the po command acts correctly.""" - self.buildDwarf() - self.do_my_test() - - def do_my_test(self): + self.build() # This is the function to remove the custom formats in order to have a # clean slate for the next test case. Index: test/expression_command/radar_8638051/Test8638051.py =================================================================== --- test/expression_command/radar_8638051/Test8638051.py +++ test/expression_command/radar_8638051/Test8638051.py @@ -13,7 +13,7 @@ def test_expr_commands(self): """The following expression commands should not crash.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/radar_9531204/TestPrintfAfterUp.py =================================================================== --- test/expression_command/radar_9531204/TestPrintfAfterUp.py +++ test/expression_command/radar_9531204/TestPrintfAfterUp.py @@ -16,7 +16,7 @@ @expectedFailureWindows("llvm.org/pr21765") def test_expr_commands(self): """The evaluating printf(...) after break stop and then up a stack frame.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/radar_9673664/TestExprHelpExamples.py =================================================================== --- test/expression_command/radar_9673664/TestExprHelpExamples.py +++ test/expression_command/radar_9673664/TestExprHelpExamples.py @@ -22,7 +22,7 @@ @expectedFailureWindows("llvm.org/pr21765") def test_expr_commands(self): """The following expression commands should just work.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/test/TestExprs.py =================================================================== --- test/expression_command/test/TestExprs.py +++ test/expression_command/test/TestExprs.py @@ -35,7 +35,7 @@ def build_and_run(self): """These basic expression commands should work as expected.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) @@ -98,7 +98,7 @@ @expectedFailureWindows # Test crashes def test_evaluate_expression_python(self): """Test SBFrame.EvaluateExpression() API for evaluating an expression.""" - self.buildDefault() + self.build() exe = os.path.join(os.getcwd(), "a.out") @@ -198,7 +198,7 @@ @expectedFailureWindows("llvm.org/pr21765") def test_expr_commands_can_handle_quotes(self): """Throw some expression commands with quotes at lldb.""" - self.buildDefault() + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) Index: test/expression_command/timeout/TestCallWithTimeout.py =================================================================== --- test/expression_command/timeout/TestCallWithTimeout.py +++ test/expression_command/timeout/TestCallWithTimeout.py @@ -19,24 +19,13 @@ self.main_source_spec = lldb.SBFileSpec (self.main_source) - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): - """Test calling std::String member function.""" - self.buildDsym() - self.call_function() - @expectedFlakeyFreeBSD("llvm.org/pr19605") @expectedFlakeyLinux("llvm.org/pr20275") @expectedFailureWindows("llvm.org/pr21765") - @dwarf_test - def test_with_dwarf(self): + def test(self): """Test calling std::String member function.""" - self.buildDwarf() - self.call_function() + self.build() - def call_function(self): - """Test calling function with timeout.""" exe_name = "a.out" exe = os.path.join(os.getcwd(), exe_name) Index: test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py =================================================================== --- test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py +++ test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py @@ -21,21 +21,9 @@ "// Set breakpoint here, then do 'expr (NSArray*)array_token'.") @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): - """The expression parser's type search should be wider than the current compilation unit.""" - self.buildDsym() - self.type_query_from_other_cu() - - @skipUnlessDarwin - @dwarf_test def test_with_dwarf(self): """The expression parser's type search should be wider than the current compilation unit.""" - self.buildDwarf() - self.type_query_from_other_cu() - - def type_query_from_other_cu(self): - """The expression parser's type search should be wider than the current compilation unit.""" + self.build() self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) lldbutil.run_break_set_by_file_and_line (self, "main.m", self.line, num_expected_locations=1, loc_exact=True) Index: test/functionalities/abbreviation/TestAbbreviations.py =================================================================== --- test/functionalities/abbreviation/TestAbbreviations.py +++ test/functionalities/abbreviation/TestAbbreviations.py @@ -13,6 +13,7 @@ mydir = TestBase.compute_mydir(__file__) @expectedFlakeyFreeBSD("llvm.org/pr22611 thread race condition breaks prompt setting") + @no_debug_info_test def test_command_abbreviations_and_aliases (self): command_interpreter = self.dbg.GetCommandInterpreter() self.assertTrue(command_interpreter, VALID_COMMAND_INTERPRETER) Index: test/functionalities/abbreviation/TestCommonShortSpellings.py =================================================================== --- test/functionalities/abbreviation/TestCommonShortSpellings.py +++ test/functionalities/abbreviation/TestCommonShortSpellings.py @@ -13,6 +13,7 @@ mydir = TestBase.compute_mydir(__file__) + @no_debug_info_test def test_abbrevs2 (self): command_interpreter = self.dbg.GetCommandInterpreter() self.assertTrue(command_interpreter, VALID_COMMAND_INTERPRETER) Index: test/functionalities/archives/TestBSDArchives.py =================================================================== --- test/functionalities/archives/TestBSDArchives.py +++ test/functionalities/archives/TestBSDArchives.py @@ -10,20 +10,17 @@ mydir = TestBase.compute_mydir(__file__) - @expectedFailureWindows("llvm.org/pr24527") # Makefile.rules doesn't know how to build static libs on Windows. - def test_with_dwarf(self): - """Break inside a() and b() defined within libfoo.a.""" - self.buildDwarf() - self.break_inside_bsd_archives() - def setUp(self): # Call super's setUp(). TestBase.setUp(self) # Find the line number in a(int) to break at. self.line = line_number('a.c', '// Set file and line breakpoint inside a().') - def break_inside_bsd_archives(self): + @expectedFailureWindows("llvm.org/pr24527") # Makefile.rules doesn't know how to build static libs on Windows. + def test(self): """Break inside a() and b() defined within libfoo.a.""" + self.build() + exe = os.path.join(os.getcwd(), "a.out") self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) Index: test/functionalities/asan/TestMemoryHistory.py =================================================================== --- test/functionalities/asan/TestMemoryHistory.py +++ test/functionalities/asan/TestMemoryHistory.py @@ -16,23 +16,13 @@ # may not have the debugging API which was recently added, so we're calling # self.useBuiltClang() to use clang from the llvm-build directory instead - @dsym_test - @skipIfRemote - @skipUnlessCompilerRt - @skipUnlessDarwin - def test_with_dsym (self): - compiler = self.findBuiltClang () - self.buildDsym (None, compiler) - self.asan_tests () - - @dwarf_test @expectedFailureLinux # non-core functionality, need to reenable and fix later (DES 2014.11.07) @skipIfFreeBSD # llvm.org/pr21136 runtimes not yet available by default @skipIfRemote @skipUnlessCompilerRt - def test_with_dwarf (self): + def test (self): compiler = self.findBuiltClang () - self.buildDwarf (None, compiler) + self.build (None, compiler) self.asan_tests () def setUp(self): Index: test/functionalities/asan/TestReportData.py =================================================================== --- test/functionalities/asan/TestReportData.py +++ test/functionalities/asan/TestReportData.py @@ -17,23 +17,13 @@ # may not have the debugging API which was recently added, so we're calling # self.useBuiltClang() to use clang from the llvm-build directory instead - @dsym_test - @skipIfRemote - @skipUnlessCompilerRt - @skipUnlessDarwin - def test_with_dsym (self): - compiler = self.findBuiltClang () - self.buildDsym (None, compiler) - self.asan_tests () - - @dwarf_test @expectedFailureLinux # non-core functionality, need to reenable and fix later (DES 2014.11.07) @skipIfFreeBSD # llvm.org/pr21136 runtimes not yet available by default @skipIfRemote @skipUnlessCompilerRt - def test_with_dwarf (self): + def test(self): compiler = self.findBuiltClang () - self.buildDwarf (None, compiler) + self.build (None, compiler) self.asan_tests () def setUp(self): Index: test/functionalities/attach_resume/TestAttachResume.py =================================================================== --- test/functionalities/attach_resume/TestAttachResume.py +++ test/functionalities/attach_resume/TestAttachResume.py @@ -14,17 +14,15 @@ mydir = TestBase.compute_mydir(__file__) + @skipIfRemote @expectedFailureFreeBSD('llvm.org/pr19310') @expectedFlakeyLinux('llvm.org/pr19310') @expectedFailureWindows("llvm.org/pr24778") - @skipIfRemote - @dwarf_test def test_attach_continue_interrupt_detach(self): """Test attach/continue/interrupt/detach""" - self.buildDwarf() + self.build() self.process_attach_continue_interrupt_detach() - @skipIfRemote def process_attach_continue_interrupt_detach(self): """Test attach/continue/interrupt/detach""" Index: test/functionalities/avoids-fd-leak/TestFdLeak.py =================================================================== --- test/functionalities/avoids-fd-leak/TestFdLeak.py +++ test/functionalities/avoids-fd-leak/TestFdLeak.py @@ -32,7 +32,7 @@ self.do_test(["log enable -f '/dev/null' lldb commands"]) def do_test (self, commands): - self.buildDefault() + self.build() exe = os.path.join (os.getcwd(), "a.out") for c in commands: @@ -52,7 +52,7 @@ @skipIfWindows # The check for descriptor leakage needs to be implemented differently here. @skipIfTargetAndroid() # Android have some other file descriptors open by the shell def test_fd_leak_multitarget (self): - self.buildDefault() + self.build() exe = os.path.join (os.getcwd(), "a.out") target = self.dbg.CreateTarget(exe) Index: test/functionalities/backticks/TestBackticksWithoutATarget.py =================================================================== --- test/functionalities/backticks/TestBackticksWithoutATarget.py +++ test/functionalities/backticks/TestBackticksWithoutATarget.py @@ -11,6 +11,7 @@ mydir = TestBase.compute_mydir(__file__) + @no_debug_info_test def test_backticks_no_target(self): """A simple test of backticks without a target.""" self.expect("print `1+2-3`", Index: test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py =================================================================== --- test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py +++ test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py @@ -18,19 +18,10 @@ cls.RemoveTempFile("output.txt") cls.RemoveTempFile("output2.txt") - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): - """Test a sequence of breakpoint command add, list, and delete.""" - self.buildDsym() - self.breakpoint_command_sequence() - self.breakpoint_command_script_parameters () - - @dwarf_test @expectedFailureWindows("llvm.org/pr24528") - def test_with_dwarf(self): + def test(self): """Test a sequence of breakpoint command add, list, and delete.""" - self.buildDwarf() + self.build() self.breakpoint_command_sequence() self.breakpoint_command_script_parameters () Index: test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py =================================================================== --- test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py +++ test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py @@ -14,19 +14,10 @@ mydir = TestBase.compute_mydir(__file__) my_var = 10 - @skipUnlessDarwin @python_api_test - @dsym_test - def test_step_out_with_dsym_python(self): + def test_step_out_python(self): """Test stepping out using avoid-no-debug with dsyms.""" - self.buildDsym() - self.do_set_python_command_from_python() - - @python_api_test - @dwarf_test - def test_step_out_with_dwarf_python(self): - """Test stepping out using avoid-no-debug with dsyms.""" - self.buildDwarf() + self.build() self.do_set_python_command_from_python () def setUp (self): Index: test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py =================================================================== --- test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py +++ test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py @@ -12,17 +12,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): + def test(self): """Test _regexp-break command.""" - self.buildDsym() - self.regexp_break_command() - - @dwarf_test - def test_with_dwarf(self): - """Test _regexp-break command.""" - self.buildDwarf() + self.build() self.regexp_break_command() def setUp(self): Index: test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py =================================================================== --- test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py +++ test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py @@ -12,48 +12,23 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_breakpoint_condition_with_dsym_and_run_command(self): - """Exercise breakpoint condition with 'breakpoint modify -c id'.""" - self.buildDsym() - self.breakpoint_conditions() - - @skipUnlessDarwin - @dsym_test - def test_breakpoint_condition_inline_with_dsym_and_run_command(self): - """Exercise breakpoint condition inline with 'breakpoint set'.""" - self.buildDsym() - self.breakpoint_conditions(inline=True) - - @skipUnlessDarwin - @python_api_test - @dsym_test - def test_breakpoint_condition_with_dsym_and_python_api(self): - """Use Python APIs to set breakpoint conditions.""" - self.buildDsym() - self.breakpoint_conditions_python() - - @dwarf_test @skipIfWindows # Requires EE to support COFF on Windows (http://llvm.org/pr22232) - def test_breakpoint_condition_with_dwarf_and_run_command(self): + def test_breakpoint_condition_and_run_command(self): """Exercise breakpoint condition with 'breakpoint modify -c id'.""" - self.buildDwarf() + self.build() self.breakpoint_conditions() - @dwarf_test @skipIfWindows # Requires EE to support COFF on Windows (http://llvm.org/pr22232) - def test_breakpoint_condition_inline_with_dwarf_and_run_command(self): + def test_breakpoint_condition_inline_and_run_command(self): """Exercise breakpoint condition inline with 'breakpoint set'.""" - self.buildDwarf() + self.build() self.breakpoint_conditions(inline=True) - @python_api_test - @dwarf_test @skipIfWindows # Requires EE to support COFF on Windows (http://llvm.org/pr22232) - def test_breakpoint_condition_with_dwarf_and_python_api(self): + @python_api_test + def test_breakpoint_condition_and_python_api(self): """Use Python APIs to set breakpoint conditions.""" - self.buildDwarf() + self.build() self.breakpoint_conditions_python() def setUp(self): Index: test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py =================================================================== --- test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py +++ test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py @@ -12,18 +12,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym (self): - self.buildDsym () - self.breakpoint_id_tests () + def test (self): + self.build() - @dwarf_test - def test_with_dwarf (self): - self.buildDwarf () - self.breakpoint_id_tests () - - def breakpoint_id_tests (self): exe = os.path.join (os.getcwd(), "a.out") self.expect("file " + exe, patterns = [ "Current executable set to .*a.out" ]) Index: test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py =================================================================== --- test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py +++ test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py @@ -12,32 +12,15 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym_and_run_command(self): + def test_with_run_command(self): """Exercise breakpoint ignore count with 'breakpoint set -i '.""" - self.buildDsym() + self.build() self.breakpoint_ignore_count() - @skipUnlessDarwin @python_api_test - @dsym_test - def test_with_dsym_and_python_api(self): + def test_with_python_api(self): """Use Python APIs to set breakpoint ignore count.""" - self.buildDsym() - self.breakpoint_ignore_count_python() - - @dwarf_test - def test_with_dwarf_and_run_command(self): - """Exercise breakpoint ignore count with 'breakpoint set -i '.""" - self.buildDwarf() - self.breakpoint_ignore_count() - - @python_api_test - @dwarf_test - def test_with_dwarf_and_python_api(self): - """Use Python APIs to set breakpoint ignore count.""" - self.buildDwarf() + self.build() self.breakpoint_ignore_count_python() def setUp(self): Index: test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py =================================================================== --- test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py +++ test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py @@ -12,18 +12,10 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): - """Test breakpoint enable/disable for a breakpoint ID with multiple locations.""" - self.buildDsym() - self.breakpoint_locations_test() - - @dwarf_test @expectedFailureWindows("llvm.org/pr24528") - def test_with_dwarf(self): + def test(self): """Test breakpoint enable/disable for a breakpoint ID with multiple locations.""" - self.buildDwarf() + self.build() self.breakpoint_locations_test() def setUp(self): Index: test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py =================================================================== --- test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py +++ test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py @@ -12,17 +12,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): + def test(self): """Test breakpoint command for different options.""" - self.buildDsym() - self.breakpoint_options_test() - - @dwarf_test - def test_with_dwarf(self): - """Test breakpoint command for different options.""" - self.buildDwarf() + self.build() self.breakpoint_options_test() def setUp(self): Index: test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py =================================================================== --- test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py +++ test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py @@ -24,27 +24,24 @@ self.line = line_number(_SRC_FILE, '// Set break point at this line.') self.src_path = os.path.join(os.getcwd(), _SRC_FILE) - @dwarf_test @skipIfHostWindows def test_symlink_paths_set(self): pwd_symlink = self.create_src_symlink() - self.build(pwd_symlink) + self.doBuild(pwd_symlink) self.runCmd("settings set %s %s" % (_COMP_DIR_SYM_LINK_PROP, pwd_symlink)) lldbutil.run_break_set_by_file_and_line(self, self.src_path, self.line) - @dwarf_test @skipUnlessHostLinux def test_symlink_paths_set_procselfcwd(self): pwd_symlink = '/proc/self/cwd' - self.build(pwd_symlink) + self.doBuild(pwd_symlink) self.runCmd("settings set %s %s" % (_COMP_DIR_SYM_LINK_PROP, pwd_symlink)) lldbutil.run_break_set_by_file_and_line(self, self.src_path, self.line) - @dwarf_test @skipIfHostWindows def test_symlink_paths_unset(self): pwd_symlink = self.create_src_symlink() - self.build(pwd_symlink) + self.doBuild(pwd_symlink) self.runCmd('settings clear ' + _COMP_DIR_SYM_LINK_PROP) self.assertRaises(AssertionError, lldbutil.run_break_set_by_file_and_line, self, self.src_path, self.line) @@ -54,8 +51,8 @@ self.addTearDownHook(lambda: os.remove(pwd_symlink)) return pwd_symlink - def build(self, pwd_symlink): - self.buildDwarf(None, None, {'PWD': pwd_symlink}, True) + def doBuild(self, pwd_symlink): + self.build(None, None, {'PWD': pwd_symlink}, True) exe = os.path.join(os.getcwd(), _EXE_NAME) self.runCmd('file ' + exe, CURRENT_EXECUTABLE_SET) Index: test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py =================================================================== --- test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py +++ test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py @@ -10,17 +10,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test @unittest2.expectedFailure("llvm.org/pr23478") - def test_with_dsym (self): - self.buildDsym () - self.consecutive_breakpoints_tests() - - @dwarf_test - @unittest2.expectedFailure("llvm.org/pr23478") - def test_with_dwarf (self): - self.buildDwarf () + def test (self): + self.build () self.consecutive_breakpoints_tests() def consecutive_breakpoints_tests(self): Index: test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py =================================================================== --- test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py +++ test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py @@ -12,16 +12,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym (self): - self.buildDsym () - self.breakpoint_id_tests () - - @dwarf_test @expectedFailureWindows("llvm.org/pr24764") def test_with_dwarf (self): - self.buildDwarf () + self.build () self.breakpoint_id_tests () def verify_breakpoint_locations(self, target, bp_dict): Index: test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py =================================================================== --- test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py +++ test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py @@ -14,20 +14,11 @@ mydir = TestBase.compute_mydir(__file__) my_var = 10 - @skipUnlessDarwin - @python_api_test - @dsym_test - def test_cpp_exception_breakpoint (self): - """Test setting and hitting the C++ exception breakpoint.""" - self.buildDsym() - self.do_cpp_exception_bkpt () - @python_api_test @expectedFailureWindows("llvm.org/pr24538") # clang-cl does not support throw or catch - @dwarf_test - def test_cpp_exception_breakpoint_with_dwarf(self): + def test_cpp_exception_breakpoint(self): """Test setting and hitting the C++ exception breakpoint.""" - self.buildDwarf() + self.build() self.do_cpp_exception_bkpt () def setUp (self): Index: test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py =================================================================== --- test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py +++ test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py @@ -12,17 +12,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym(self): + def test(self): """Test breakpoint set before we have a target. """ - self.buildDsym() - self.dummy_breakpoint_test() - - @dwarf_test - def test_with_dwarf(self): - """Test breakpoint set before we have a target. """ - self.buildDwarf() + self.build() self.dummy_breakpoint_test() def setUp(self): Index: test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py =================================================================== --- test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py +++ test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py @@ -14,17 +14,9 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym_and_run_command(self): + def test_with_run_command(self): """Test 'b basic_types.cpp:176' does break (where int.cpp includes basic_type.cpp).""" - self.buildDsym() - self.inlined_breakpoints() - - @dwarf_test - def test_with_dwarf_and_run_command(self): - """Test 'b basic_types.cpp:176' does break (where int.cpp includes basic_type.cpp).""" - self.buildDwarf() + self.build() self.inlined_breakpoints() def setUp(self): Index: test/functionalities/breakpoint/objc/TestObjCBreakpoints.py =================================================================== --- test/functionalities/breakpoint/objc/TestObjCBreakpoints.py +++ test/functionalities/breakpoint/objc/TestObjCBreakpoints.py @@ -16,17 +16,9 @@ mydir = TestBase.compute_mydir(__file__) - @dsym_test - def test_break_with_dsym(self): - """Test setting Objective C specific breakpoints (dSYM).""" - self.buildDsym() - self.setTearDownCleanup() - self.check_objc_breakpoints(True) - - @dwarf_test - def test_break_with_dwarf(self): + def test_break(self): """Test setting Objective C specific breakpoints (DWARF in .o files).""" - self.buildDwarf() + self.build() self.setTearDownCleanup() self.check_objc_breakpoints(False) Index: test/functionalities/command_history/TestCommandHistory.py =================================================================== --- test/functionalities/command_history/TestCommandHistory.py +++ test/functionalities/command_history/TestCommandHistory.py @@ -11,6 +11,7 @@ mydir = TestBase.compute_mydir(__file__) + @no_debug_info_test def test_history(self): self.runCmd('command history --clear', inHistory=False) self.runCmd('breakpoint list', check=False, inHistory=True) #0 Index: test/functionalities/command_regex/TestCommandRegex.py =================================================================== --- test/functionalities/command_regex/TestCommandRegex.py +++ test/functionalities/command_regex/TestCommandRegex.py @@ -12,6 +12,7 @@ mydir = TestBase.compute_mydir(__file__) @expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows") + @no_debug_info_test def test_command_regex(self): """Test a simple scenario of 'command regex' invocation and subsequent use.""" import pexpect Index: test/functionalities/command_script/TestCommandScript.py =================================================================== --- test/functionalities/command_script/TestCommandScript.py +++ test/functionalities/command_script/TestCommandScript.py @@ -11,15 +11,8 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @dsym_test - def test_with_dsym (self): - self.buildDsym () - self.pycmd_tests () - - @dwarf_test - def test_with_dwarf (self): - self.buildDwarf () + def test (self): + self.build () self.pycmd_tests () def pycmd_tests (self): Index: test/functionalities/command_script/import/TestImport.py =================================================================== --- test/functionalities/command_script/import/TestImport.py +++ test/functionalities/command_script/import/TestImport.py @@ -10,6 +10,7 @@ mydir = TestBase.compute_mydir(__file__) @python_api_test + @no_debug_info_test def test_import_command(self): """Import some Python scripts by path and test them""" self.run_test() Index: test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py =================================================================== --- test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py +++ test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py @@ -10,6 +10,7 @@ mydir = TestBase.compute_mydir(__file__) @python_api_test + @no_debug_info_test def test_rdar12586188_command(self): """Check that we handle an ImportError in a special way when command script importing files.""" self.run_test() Index: test/functionalities/command_source/TestCommandSource.py =================================================================== --- test/functionalities/command_source/TestCommandSource.py +++ test/functionalities/command_source/TestCommandSource.py @@ -13,6 +13,7 @@ mydir = TestBase.compute_mydir(__file__) + @no_debug_info_test def test_command_source(self): """Test that lldb command "command source" works correctly.""" Index: test/functionalities/completion/TestCompletion.py =================================================================== --- test/functionalities/completion/TestCompletion.py +++ test/functionalities/completion/TestCompletion.py @@ -22,18 +22,21 @@ @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_at(self): """Test that 'at' completes to 'attach '.""" self.complete_from_to('at', 'attach ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_de(self): """Test that 'de' completes to 'detach '.""" self.complete_from_to('de', 'detach ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_process_attach_dash_dash_con(self): """Test that 'process attach --con' completes to 'process attach --continue '.""" self.complete_from_to('process attach --con', 'process attach --continue ') @@ -41,6 +44,7 @@ # @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_infinite_loop_while_completing(self): """Test that 'process print hello\' completes to itself and does not infinite loop.""" self.complete_from_to('process print hello\\', 'process print hello\\', @@ -48,126 +52,147 @@ @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_co(self): """Test that 'watchpoint co' completes to 'watchpoint command '.""" self.complete_from_to('watchpoint co', 'watchpoint command ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_command_space(self): """Test that 'watchpoint command ' completes to ['Available completions:', 'add', 'delete', 'list'].""" self.complete_from_to('watchpoint command ', ['Available completions:', 'add', 'delete', 'list']) @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_command_a(self): """Test that 'watchpoint command a' completes to 'watchpoint command add '.""" self.complete_from_to('watchpoint command a', 'watchpoint command add ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_set_variable_dash_w(self): """Test that 'watchpoint set variable -w' completes to 'watchpoint set variable -w '.""" self.complete_from_to('watchpoint set variable -w', 'watchpoint set variable -w ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_set_variable_dash_w_space(self): """Test that 'watchpoint set variable -w ' completes to ['Available completions:', 'read', 'write', 'read_write'].""" self.complete_from_to('watchpoint set variable -w ', ['Available completions:', 'read', 'write', 'read_write']) @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_set_ex(self): """Test that 'watchpoint set ex' completes to 'watchpoint set expression '.""" self.complete_from_to('watchpoint set ex', 'watchpoint set expression ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_set_var(self): """Test that 'watchpoint set var' completes to 'watchpoint set variable '.""" self.complete_from_to('watchpoint set var', 'watchpoint set variable ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_watchpoint_set_variable_dash_w_read_underbar(self): """Test that 'watchpoint set variable -w read_' completes to 'watchpoint set variable -w read_write'.""" self.complete_from_to('watchpoint set variable -w read_', 'watchpoint set variable -w read_write') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_help_fi(self): """Test that 'help fi' completes to ['Available completions:', 'file', 'finish'].""" self.complete_from_to('help fi', ['Available completions:', 'file', 'finish']) @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_help_watchpoint_s(self): """Test that 'help watchpoint s' completes to 'help watchpoint set '.""" self.complete_from_to('help watchpoint s', 'help watchpoint set ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_append_target_er(self): """Test that 'settings append target.er' completes to 'settings append target.error-path'.""" self.complete_from_to('settings append target.er', 'settings append target.error-path') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_insert_after_target_en(self): """Test that 'settings insert-after target.env' completes to 'settings insert-after target.env-vars'.""" self.complete_from_to('settings insert-after target.env', 'settings insert-after target.env-vars') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_insert_before_target_en(self): """Test that 'settings insert-before target.env' completes to 'settings insert-before target.env-vars'.""" self.complete_from_to('settings insert-before target.env', 'settings insert-before target.env-vars') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_replace_target_ru(self): """Test that 'settings replace target.ru' completes to 'settings replace target.run-args'.""" self.complete_from_to('settings replace target.ru', 'settings replace target.run-args') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_s(self): """Test that 'settings s' completes to ['Available completions:', 'set', 'show'].""" self.complete_from_to('settings s', ['Available completions:', 'set', 'show']) @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_set_th(self): """Test that 'settings set th' completes to 'settings set thread-format'.""" self.complete_from_to('settings set th', 'settings set thread-format') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_s_dash(self): """Test that 'settings set -' completes to 'settings set -g'.""" self.complete_from_to('settings set -', 'settings set -g') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_clear_th(self): """Test that 'settings clear th' completes to 'settings clear thread-format'.""" self.complete_from_to('settings clear th', 'settings clear thread-format') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_set_ta(self): """Test that 'settings set ta' completes to 'settings set target.'.""" self.complete_from_to('settings set ta', 'settings set target.') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_set_target_exec(self): """Test that 'settings set target.exec' completes to 'settings set target.exec-search-paths '.""" self.complete_from_to('settings set target.exec', 'settings set target.exec-search-paths') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_set_target_pr(self): """Test that 'settings set target.pr' completes to ['Available completions:', 'target.prefer-dynamic-value', 'target.process.'].""" @@ -178,18 +203,21 @@ @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_set_target_process(self): """Test that 'settings set target.process' completes to 'settings set target.process.'.""" self.complete_from_to('settings set target.process', 'settings set target.process.') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_set_target_process_dot(self): """Test that 'settings set target.process.t' completes to 'settings set target.process.thread.'.""" self.complete_from_to('settings set target.process.t', 'settings set target.process.thread.') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_settings_set_target_process_thread_dot(self): """Test that 'settings set target.process.thread.' completes to ['Available completions:', 'target.process.thread.step-avoid-regexp', 'target.process.thread.trace-thread'].""" @@ -200,6 +228,7 @@ @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_target_space(self): """Test that 'target ' completes to ['Available completions:', 'create', 'delete', 'list', 'modules', 'select', 'stop-hook', 'variable'].""" @@ -209,29 +238,21 @@ @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_target_create_dash_co(self): """Test that 'target create --co' completes to 'target variable --core '.""" self.complete_from_to('target create --co', 'target create --core ') @expectedFailureHostWindows("llvm.org/pr24679") @skipIfFreeBSD # timing out on the FreeBSD buildbot + @no_debug_info_test def test_target_va(self): """Test that 'target va' completes to 'target variable '.""" self.complete_from_to('target va', 'target variable ') - @skipUnlessDarwin - @dsym_test - def test_symbol_name_dsym(self): - self.buildDsym() - self.complete_from_to('''file a.out - breakpoint set -n Fo''', - 'breakpoint set -n Foo::Bar(int,\\ int)', - turn_off_re_match=True) - @expectedFailureHostWindows("llvm.org/pr24679") - @dwarf_test - def test_symbol_name_dwarf(self): - self.buildDwarf() + def test_symbol_name(self): + self.build() self.complete_from_to('''file a.out breakpoint set -n Fo''', 'breakpoint set -n Foo::Bar(int,\\ int)', Index: test/functionalities/conditional_break/TestConditionalBreak.py =================================================================== --- test/functionalities/conditional_break/TestConditionalBreak.py +++ test/functionalities/conditional_break/TestConditionalBreak.py @@ -17,33 +17,16 @@ mydir = TestBase.compute_mydir(__file__) - @skipUnlessDarwin - @python_api_test - @dsym_test - def test_with_dsym_python(self): - """Exercise some thread and frame APIs to break if c() is called by a().""" - self.buildDsym() - self.do_conditional_break() - @expectedFailureWindows("llvm.org/pr24778") @python_api_test - @dwarf_test - def test_with_dwarf_python(self): + def test_with_python(self): """Exercise some thread and frame APIs to break if c() is called by a().""" - self.buildDwarf() + self.build() self.do_conditional_break() - @skipUnlessDarwin - @dsym_test - def test_with_dsym_command(self): - """Simulate a user using lldb commands to break on c() if called from a().""" - self.buildDsym() - self.simulate_conditional_break_by_user() - - @dwarf_test - def test_with_dwarf_command(self): + def test_with_command(self): """Simulate a user using lldb commands to break on c() if called from a().""" - self.buildDwarf() + self.build() self.simulate_conditional_break_by_user() def do_conditional_break(self): Index: test/functionalities/connect_remote/TestConnectRemote.py =================================================================== --- test/functionalities/connect_remote/TestConnectRemote.py +++ test/functionalities/connect_remote/TestConnectRemote.py @@ -15,6 +15,7 @@ @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows") @expectedFailureLinux("llvm.org/pr23475") # Test occasionally times out on the Linux build bot @skipIfLinux # Test occasionally times out on the Linux build bot + @no_debug_info_test def test_connect_remote(self): """Test "process connect connect:://localhost:[port]".""" Index: test/lldbtest.py =================================================================== --- test/lldbtest.py +++ test/lldbtest.py @@ -520,6 +520,19 @@ wrapper.__benchmarks_test__ = True return wrapper +def no_debug_info_test(func): + """Decorate the item as a test what don't use any debug info. If this annotation is specified + then the test runner won't generate a separate test for each debug info format. """ + if isinstance(func, type) and issubclass(func, unittest2.TestCase): + raise Exception("@no_debug_info_test can only be used to decorate a test method") + @wraps(func) + def wrapper(self, *args, **kwargs): + return func(self, *args, **kwargs) + + # Mark this function as such to separate them from the regular tests. + wrapper.__no_debug_info_test__ = True + return wrapper + def dsym_test(func): """Decorate the item as a dsym test.""" if isinstance(func, type) and issubclass(func, unittest2.TestCase): @@ -628,27 +641,32 @@ else: return expectedFailure_impl -def expectedFailureCompiler(compiler, compiler_version=None, bugnumber=None): - if compiler_version is None: - compiler_version=['=', None] - def fn(self): - return compiler in self.getCompiler() and self.expectedCompilerVersion(compiler_version) - return expectedFailure(fn, bugnumber) - # provide a function to xfail on defined oslist, compiler version, and archs # if none is specified for any argument, that argument won't be checked and thus means for all # for example, # @expectedFailureAll, xfail for all platform/compiler/arch, # @expectedFailureAll(compiler='gcc'), xfail for gcc on all platform/architecture # @expectedFailureAll(bugnumber, ["linux"], "gcc", ['>=', '4.9'], ['i386']), xfail for gcc>=4.9 on linux with i386 -def expectedFailureAll(bugnumber=None, oslist=None, compiler=None, compiler_version=None, archs=None, triple=None): +def expectedFailureAll(bugnumber=None, oslist=None, compiler=None, compiler_version=None, archs=None, triple=None, debug_info=None): def fn(self): return ((oslist is None or self.getPlatform() in oslist) and (compiler is None or (compiler in self.getCompiler() and self.expectedCompilerVersion(compiler_version))) and self.expectedArch(archs) and - (triple is None or re.match(triple, lldb.DBG.GetSelectedPlatform().GetTriple()))) + (triple is None or re.match(triple, lldb.DBG.GetSelectedPlatform().GetTriple())) and + (debug_info is None or self.debug_info in debug_info)) return expectedFailure(fn, bugnumber) +def expectedFailureDwarf(bugnumber=None): + return expectedFailureAll(bugnumber==bugnumber, debug_info="dwarf") + +def expectedFailureDsym(bugnumber=None): + return expectedFailureAll(bugnumber==bugnumber, debug_info="dsym") + +def expectedFailureCompiler(compiler, compiler_version=None, bugnumber=None): + if compiler_version is None: + compiler_version=['=', None] + return expectedFailureAll(bugnumber=bugnumber, compiler=compiler, compiler_version=compiler_version) + # to XFAIL a specific clang versions, try this # @expectedFailureClang('bugnumber', ['<=', '3.4']) def expectedFailureClang(bugnumber=None, compiler_version=None): @@ -671,10 +689,11 @@ def expectedFailurex86_64(bugnumber=None): return expectedFailureArch('x86_64', bugnumber) -def expectedFailureOS(oslist, bugnumber=None, compilers=None): +def expectedFailureOS(oslist, bugnumber=None, compilers=None, debug_info=None): def fn(self): return (self.getPlatform() in oslist and - self.expectedCompiler(compilers)) + self.expectedCompiler(compilers) and + (debug_info is None or self.debug_info in debug_info)) return expectedFailure(fn, bugnumber) def expectedFailureHostOS(oslist, bugnumber=None, compilers=None): @@ -683,18 +702,18 @@ self.expectedCompiler(compilers)) return expectedFailure(fn, bugnumber) -def expectedFailureDarwin(bugnumber=None, compilers=None): +def expectedFailureDarwin(bugnumber=None, compilers=None, debug_info=None): # For legacy reasons, we support both "darwin" and "macosx" as OS X triples. - return expectedFailureOS(getDarwinOSTriples(), bugnumber, compilers) + return expectedFailureOS(getDarwinOSTriples(), bugnumber, compilers, debug_info=debug_info) -def expectedFailureFreeBSD(bugnumber=None, compilers=None): - return expectedFailureOS(['freebsd'], bugnumber, compilers) +def expectedFailureFreeBSD(bugnumber=None, compilers=None, debug_info=None): + return expectedFailureOS(['freebsd'], bugnumber, compilers, debug_info=debug_info) -def expectedFailureLinux(bugnumber=None, compilers=None): - return expectedFailureOS(['linux'], bugnumber, compilers) +def expectedFailureLinux(bugnumber=None, compilers=None, debug_info=None): + return expectedFailureOS(['linux'], bugnumber, compilers, debug_info=debug_info) -def expectedFailureWindows(bugnumber=None, compilers=None): - return expectedFailureOS(['windows'], bugnumber, compilers) +def expectedFailureWindows(bugnumber=None, compilers=None, debug_info=None): + return expectedFailureOS(['windows'], bugnumber, compilers, debug_info=debug_info) def expectedFailureHostWindows(bugnumber=None, compilers=None): return expectedFailureHostOS(['windows'], bugnumber, compilers) @@ -759,6 +778,16 @@ else: return expectedFailure_impl +def expectedFlakeyDwarf(bugnumber=None): + def fn(self): + return self.debug_info == "dwarf" + return expectedFlakey(fn, bugnumber) + +def expectedFlakeyDsym(bugnumber=None): + def fn(self): + return self.debug_info == "dwarf" + return expectedFlakey(fn, bugnumber) + def expectedFlakeyOS(oslist, bugnumber=None, compilers=None): def fn(self): return (self.getPlatform() in oslist and @@ -1021,12 +1050,22 @@ # @skipIf(bugnumber, ["linux"], "gcc", ['>=', '4.9'], ['i386']), skip for gcc>=4.9 on linux with i386 # TODO: refactor current code, to make skipIfxxx functions to call this function -def skipIf(bugnumber=None, oslist=None, compiler=None, compiler_version=None, archs=None): +def skipIf(bugnumber=None, oslist=None, compiler=None, compiler_version=None, archs=None, debug_info=None): def fn(self): return ((oslist is None or self.getPlatform() in oslist) and (compiler is None or (compiler in self.getCompiler() and self.expectedCompilerVersion(compiler_version))) and - self.expectedArch(archs)) - return skipTestIfFn(fn, bugnumber, skipReason="skipping because os:%s compiler: %s %s arch: %s"%(oslist, compiler, compiler_version, archs)) + self.expectedArch(archs) and + (debug_info is None or self.debug_info in debug_info)) + return skipTestIfFn(fn, bugnumber, skipReason="skipping because os:%s compiler: %s %s arch: %s debug info: %s"%(oslist, compiler, compiler_version, archs, debug_info)) + +def skipIfDebugInfo(bugnumber=None, debug_info=None): + return skipIf(bugnumber=bugnumber, debug_info=debug_info) + +def skipIfDwarf(bugnumber=None): + return skipIfDebugInfo(bugnumber, ["dwarf"]) + +def skipIfDsym(bugnumber=None): + return skipIfDebugInfo(bugnumber, ["dsym"]) def skipTestIfFn(expected_fn, bugnumber=None, skipReason=None): def skipTestIfFn_impl(func): @@ -2050,12 +2089,6 @@ self.buildDefault(dictionary=d) - def buildProgram(self, sources, exe_name): - """ Platform specific way to build an executable from C/C++ sources. """ - d = {'CXX_SOURCES' : sources, - 'EXE' : exe_name} - self.buildDefault(dictionary=d) - def buildDefault(self, architecture=None, compiler=None, dictionary=None, clean=True): """Platform specific way to build the default binaries.""" if lldb.skip_build_and_cleanup: @@ -2177,6 +2210,34 @@ else: return ['libc++.1.dylib','libc++abi.dylib'] +# Metaclass for TestBase to change the list of test metods when a new TestCase is loaded. +# We change the test methods to create a new test method for each test for each debug info we are +# testing. The name of the new test method will be '_' and with adding +# the new test method we remove the old method at the same time. +class LLDBTestCaseFactory(type): + def __new__(cls, name, bases, attrs): + newattrs = {} + for attrname, attrvalue in attrs.iteritems(): + if attrname.startswith("test") and not getattr(attrvalue, "__no_debug_info_test__", False): + @dsym_test + def dsym_test_method(self, attrvalue=attrvalue): + self.debug_info = "dsym" + return attrvalue(self) + dsym_method_name = attrname + "_dsym" + dsym_test_method.__name__ = dsym_method_name + newattrs[dsym_method_name] = dsym_test_method + + @dwarf_test + def dwarf_test_method(self, attrvalue=attrvalue): + self.debug_info = "dwarf" + return attrvalue(self) + dwarf_method_name = attrname + "_dwarf" + dwarf_test_method.__name__ = dwarf_method_name + newattrs[dwarf_method_name] = dwarf_test_method + else: + newattrs[attrname] = attrvalue + return super(LLDBTestCaseFactory, cls).__new__(cls, name, bases, newattrs) + class TestBase(Base): """ This abstract base class is meant to be subclassed. It provides default @@ -2237,6 +2298,9 @@ # Can be overridden by the LLDB_TIME_WAIT_NEXT_LAUNCH environment variable. timeWaitNextLaunch = 1.0; + # Setup the metaclass for this class to change the list of the test methods when a new class is loaded + __metaclass__ = LLDBTestCaseFactory + def doDelay(self): """See option -w of dotest.py.""" if ("LLDB_WAIT_BETWEEN_TEST_CASES" in os.environ and @@ -2692,6 +2756,20 @@ print >> sbuf, str(method) + ":", result return result + def build(self, architecture=None, compiler=None, dictionary=None, clean=True): + """Platform specific way to build the default binaries.""" + if lldb.skip_build_and_cleanup: + return + module = builder_module() + if target_is_android(): + dictionary = append_android_envs(dictionary) + if self.debug_info is None: + return self.buildDefault(architecture, compiler, dictionary, clean) + elif self.debug_info == "dsym": + return self.buildDsym(architecture, compiler, dictionary, clean) + elif self.debug_info == "dwarf": + return self.buildDwarf(architecture, compiler, dictionary, clean) + # ================================================= # Misc. helper methods for debugging test execution # ================================================= Index: test/types/AbstractBase.py =================================================================== --- test/types/AbstractBase.py +++ test/types/AbstractBase.py @@ -59,22 +59,19 @@ # variable # #==========================================================================# - def build_and_run(self, source, atoms, dsym=True, bc=False, qd=False): - self.build_and_run_with_source_atoms_expr(source, atoms, expr=False, dsym=dsym, bc=bc, qd=qd) + def build_and_run(self, source, atoms, bc=False, qd=False): + self.build_and_run_with_source_atoms_expr(source, atoms, expr=False, bc=bc, qd=qd) - def build_and_run_expr(self, source, atoms, dsym=True, bc=False, qd=False): - self.build_and_run_with_source_atoms_expr(source, atoms, expr=True, dsym=dsym, bc=bc, qd=qd) + def build_and_run_expr(self, source, atoms, bc=False, qd=False): + self.build_and_run_with_source_atoms_expr(source, atoms, expr=True, bc=bc, qd=qd) - def build_and_run_with_source_atoms_expr(self, source, atoms, expr, dsym=True, bc=False, qd=False): + def build_and_run_with_source_atoms_expr(self, source, atoms, expr, bc=False, qd=False): # See also Makefile and basic_type.cpp:177. if bc: d = {'CXX_SOURCES': source, 'EXE': self.exe_name, 'CFLAGS_EXTRAS': '-DTEST_BLOCK_CAPTURED_VARS'} else: d = {'CXX_SOURCES': source, 'EXE': self.exe_name} - if dsym: - self.buildDsym(dictionary=d) - else: - self.buildDwarf(dictionary=d) + self.build(dictionary=d) self.setTearDownCleanup(dictionary=d) if expr: self.generic_type_expr_tester(self.exe_name, atoms, blockCaptured=bc, quotedDisplay=qd) Index: test/types/TestFloatTypes.py =================================================================== --- test/types/TestFloatTypes.py +++ test/types/TestFloatTypes.py @@ -19,42 +19,25 @@ self.runCmd("settings set auto-confirm true") self.addTearDownHook(lambda: self.runCmd("settings clear auto-confirm")) - @skipUnlessDarwin - @dsym_test - def test_float_type_with_dsym(self): + def test_float_type(self): """Test that float-type variables are displayed correctly.""" self.build_and_run('float.cpp', set(['float'])) @skipUnlessDarwin - @dsym_test - def test_float_type_from_block_with_dsym(self): + def test_float_type_from_block(self): """Test that float-type variables are displayed correctly from a block.""" self.build_and_run('float.cpp', set(['float']), bc=True) - @dwarf_test - def test_float_type_with_dwarf(self): - """Test that float-type variables are displayed correctly.""" - self.build_and_run('float.cpp', set(['float']), dsym=False) - - @skipUnlessDarwin - @dsym_test - @expectedFlakeyDarwin # failed 1/140 runs 'frame variable --show-types a_union_nonzero_ref.u.a' matches the output (from compiled code): 11001110 - def test_double_type_with_dsym(self): + @expectedFlakeyDsym # failed 1/140 runs 'frame variable --show-types a_union_nonzero_ref.u.a' matches the output (from compiled code): 11001110 + def test_double_type(self): """Test that double-type variables are displayed correctly.""" self.build_and_run('double.cpp', set(['double'])) @skipUnlessDarwin - @dsym_test - def test_double_type_from_block_with_dsym(self): + def test_double_type_from_block(self): """Test that double-type variables are displayed correctly from a block.""" self.build_and_run('double.cpp', set(['double']), bc=True) - @dwarf_test - def test_double_type_with_dwarf(self): - """Test that double-type variables are displayed correctly.""" - self.build_and_run('double.cpp', set(['double']), dsym=False) - - if __name__ == '__main__': import atexit lldb.SBDebugger.Initialize() Index: test/types/TestFloatTypesExpr.py =================================================================== --- test/types/TestFloatTypesExpr.py +++ test/types/TestFloatTypesExpr.py @@ -22,41 +22,24 @@ self.runCmd("settings set auto-confirm true") self.addTearDownHook(lambda: self.runCmd("settings clear auto-confirm")) - @skipUnlessDarwin - @dsym_test - def test_float_type_with_dsym(self): + def test_float_type(self): """Test that float-type variable expressions are evaluated correctly.""" self.build_and_run_expr('float.cpp', set(['float'])) @skipUnlessDarwin - @dsym_test - def test_float_type_from_block_with_dsym(self): + def test_float_type_from_block(self): """Test that float-type variables are displayed correctly from a block.""" self.build_and_run_expr('float.cpp', set(['float']), bc=True) - @dwarf_test - def test_float_type_with_dwarf(self): - """Test that float-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('float.cpp', set(['float']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_double_type_with_dsym(self): + def test_double_type(self): """Test that double-type variable expressions are evaluated correctly.""" self.build_and_run_expr('double.cpp', set(['double'])) @skipUnlessDarwin - @dsym_test - def test_double_type_from_block_with_dsym(self): + def test_double_type_from_block(self): """Test that double-type variables are displayed correctly from a block.""" self.build_and_run_expr('double.cpp', set(['double']), bc=True) - @dwarf_test - def test_double_type_with_dwarf(self): - """Test that double-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('double.cpp', set(['double']), dsym=False) - - if __name__ == '__main__': import atexit lldb.SBDebugger.Initialize() Index: test/types/TestIntegerTypes.py =================================================================== --- test/types/TestIntegerTypes.py +++ test/types/TestIntegerTypes.py @@ -19,179 +19,96 @@ self.runCmd("settings set auto-confirm true") self.addTearDownHook(lambda: self.runCmd("settings clear auto-confirm")) - @skipUnlessDarwin - @dsym_test - def test_char_type_with_dsym(self): + def test_char_type(self): """Test that char-type variables are displayed correctly.""" self.build_and_run('char.cpp', set(['char']), qd=True) @skipUnlessDarwin - @dsym_test - def test_char_type_from_block_with_dsym(self): + def test_char_type_from_block(self): """Test that char-type variables are displayed correctly from a block.""" self.build_and_run('char.cpp', set(['char']), bc=True, qd=True) - @dwarf_test - def test_char_type_with_dwarf(self): - """Test that char-type variables are displayed correctly.""" - self.build_and_run('char.cpp', set(['char']), dsym=False, qd=True) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_char_type_with_dsym(self): + def test_unsigned_char_type(self): """Test that 'unsigned_char'-type variables are displayed correctly.""" self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), qd=True) @skipUnlessDarwin - @dsym_test - def test_unsigned_char_type_from_block_with_dsym(self): + def test_unsigned_char_type_from_block(self): """Test that 'unsigned char'-type variables are displayed correctly from a block.""" self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), bc=True, qd=True) - @dwarf_test - def test_unsigned_char_type_with_dwarf(self): - """Test that 'unsigned char'-type variables are displayed correctly.""" - self.build_and_run('unsigned_char.cpp', set(['unsigned', 'char']), dsym=False, qd=True) - - @skipUnlessDarwin - @dsym_test - def test_short_type_with_dsym(self): + def test_short_type(self): """Test that short-type variables are displayed correctly.""" self.build_and_run('short.cpp', set(['short'])) @skipUnlessDarwin - @dsym_test - def test_short_type_from_block_with_dsym(self): + def test_short_type_from_block(self): """Test that short-type variables are displayed correctly from a block.""" self.build_and_run('short.cpp', set(['short']), bc=True) - @dwarf_test - def test_short_type_with_dwarf(self): - """Test that short-type variables are displayed correctly.""" - self.build_and_run('short.cpp', set(['short']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_short_type_with_dsym(self): + def test_unsigned_short_type(self): """Test that 'unsigned_short'-type variables are displayed correctly.""" self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_short_type_from_block_with_dsym(self): + def test_unsigned_short_type_from_block(self): """Test that 'unsigned short'-type variables are displayed correctly from a block.""" self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']), bc=True) - @dwarf_test - def test_unsigned_short_type_with_dwarf(self): - """Test that 'unsigned short'-type variables are displayed correctly.""" - self.build_and_run('unsigned_short.cpp', set(['unsigned', 'short']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_int_type_with_dsym(self): + def test_int_type(self): """Test that int-type variables are displayed correctly.""" self.build_and_run('int.cpp', set(['int'])) @skipUnlessDarwin - @dsym_test - def test_int_type_from_block_with_dsym(self): + def test_int_type_from_block(self): """Test that int-type variables are displayed correctly from a block.""" - self.build_and_run('int.cpp', set(['int']), dsym=False) - - @dwarf_test - def test_int_type_with_dwarf(self): - """Test that int-type variables are displayed correctly.""" - self.build_and_run('int.cpp', set(['int']), dsym=False) + self.build_and_run('int.cpp', set(['int'])) - @skipUnlessDarwin - @dsym_test - def test_unsigned_int_type_with_dsym(self): + def test_unsigned_int_type(self): """Test that 'unsigned_int'-type variables are displayed correctly.""" self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_int_type_from_block_with_dsym(self): + def test_unsigned_int_type_from_block(self): """Test that 'unsigned int'-type variables are displayed correctly from a block.""" self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']), bc=True) - @dwarf_test - def test_unsigned_int_type_with_dwarf(self): - """Test that 'unsigned int'-type variables are displayed correctly.""" - self.build_and_run('unsigned_int.cpp', set(['unsigned', 'int']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_long_type_with_dsym(self): + def test_long_type(self): """Test that long-type variables are displayed correctly.""" self.build_and_run('long.cpp', set(['long'])) @skipUnlessDarwin - @dsym_test - def test_long_type_from_block_with_dsym(self): + def test_long_type_from_block(self): """Test that long-type variables are displayed correctly from a block.""" self.build_and_run('long.cpp', set(['long']), bc=True) - @dwarf_test - def test_long_type_with_dwarf(self): - """Test that long-type variables are displayed correctly.""" - self.build_and_run('long.cpp', set(['long']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_long_type_with_dsym(self): + def test_unsigned_long_type(self): """Test that 'unsigned long'-type variables are displayed correctly.""" self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_long_type_from_block_with_dsym(self): + def test_unsigned_long_type_from_block(self): """Test that 'unsigned_long'-type variables are displayed correctly from a block.""" self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']), bc=True) - @dwarf_test - def test_unsigned_long_type_with_dwarf(self): - """Test that 'unsigned long'-type variables are displayed correctly.""" - self.build_and_run('unsigned_long.cpp', set(['unsigned', 'long']), dsym=False) - - # rdar://problem/8482903 - # test suite failure for types dir -- "long long" and "unsigned long long" - - @skipUnlessDarwin - @dsym_test - def test_long_long_type_with_dsym(self): + def test_long_long_type(self): """Test that 'long long'-type variables are displayed correctly.""" self.build_and_run('long_long.cpp', set(['long long'])) @skipUnlessDarwin - @dsym_test - def test_long_long_type_from_block_with_dsym(self): + def test_long_long_type_from_block(self): """Test that 'long_long'-type variables are displayed correctly from a block.""" self.build_and_run('long_long.cpp', set(['long long']), bc=True) - @dwarf_test - def test_long_long_type_with_dwarf(self): - """Test that 'long long'-type variables are displayed correctly.""" - self.build_and_run('long_long.cpp', set(['long long']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_long_long_type_with_dsym(self): + def test_unsigned_long_long_type(self): """Test that 'unsigned long long'-type variables are displayed correctly.""" self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_long_long_type_from_block_with_dsym(self): + def test_unsigned_long_long_type_from_block(self): """Test that 'unsigned_long_long'-type variables are displayed correctly from a block.""" self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']), bc=True) - @dwarf_test - def test_unsigned_long_long_type_with_dwarf(self): - """Test that 'unsigned long long'-type variables are displayed correctly.""" - self.build_and_run('unsigned_long_long.cpp', set(['unsigned', 'long long']), dsym=False) - if __name__ == '__main__': import atexit Index: test/types/TestIntegerTypesExpr.py =================================================================== --- test/types/TestIntegerTypesExpr.py +++ test/types/TestIntegerTypesExpr.py @@ -19,179 +19,96 @@ self.runCmd("settings set auto-confirm true") self.addTearDownHook(lambda: self.runCmd("settings clear auto-confirm")) - @skipUnlessDarwin - @dsym_test - def test_char_type_with_dsym(self): + def test_char_type(self): """Test that char-type variable expressions are evaluated correctly.""" self.build_and_run_expr('char.cpp', set(['char']), qd=True) @skipUnlessDarwin - @dsym_test - def test_char_type_from_block_with_dsym(self): + def test_char_type_from_block(self): """Test that char-type variables are displayed correctly from a block.""" self.build_and_run_expr('char.cpp', set(['char']), bc=True, qd=True) - @dwarf_test - def test_char_type_with_dwarf(self): - """Test that char-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('char.cpp', set(['char']), dsym=False, qd=True) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_char_type_with_dsym(self): + def test_unsigned_char_type(self): """Test that 'unsigned_char'-type variable expressions are evaluated correctly.""" self.build_and_run_expr('unsigned_char.cpp', set(['unsigned', 'char']), qd=True) @skipUnlessDarwin - @dsym_test - def test_unsigned_char_type_from_block_with_dsym(self): + def test_unsigned_char_type_from_block(self): """Test that 'unsigned char'-type variables are displayed correctly from a block.""" self.build_and_run_expr('unsigned_char.cpp', set(['unsigned', 'char']), bc=True, qd=True) - @dwarf_test - def test_unsigned_char_type_with_dwarf(self): - """Test that 'unsigned char'-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('unsigned_char.cpp', set(['unsigned', 'char']), dsym=False, qd=True) - - @skipUnlessDarwin - @dsym_test - def test_short_type_with_dsym(self): + def test_short_type(self): """Test that short-type variable expressions are evaluated correctly.""" self.build_and_run_expr('short.cpp', set(['short'])) @skipUnlessDarwin - @dsym_test - def test_short_type_from_block_with_dsym(self): + def test_short_type_from_block(self): """Test that short-type variables are displayed correctly from a block.""" self.build_and_run_expr('short.cpp', set(['short']), bc=True) - @dwarf_test - def test_short_type_with_dwarf(self): - """Test that short-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('short.cpp', set(['short']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_short_type_with_dsym(self): + def test_unsigned_short_type(self): """Test that 'unsigned_short'-type variable expressions are evaluated correctly.""" self.build_and_run_expr('unsigned_short.cpp', set(['unsigned', 'short'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_short_type_from_block_with_dsym(self): + def test_unsigned_short_type_from_block(self): """Test that 'unsigned short'-type variables are displayed correctly from a block.""" self.build_and_run_expr('unsigned_short.cpp', set(['unsigned', 'short']), bc=True) - @dwarf_test - def test_unsigned_short_type_with_dwarf(self): - """Test that 'unsigned short'-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('unsigned_short.cpp', set(['unsigned', 'short']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_int_type_with_dsym(self): + def test_int_type(self): """Test that int-type variable expressions are evaluated correctly.""" self.build_and_run_expr('int.cpp', set(['int'])) @skipUnlessDarwin - @dsym_test - def test_int_type_from_block_with_dsym(self): + def test_int_type_from_block(self): """Test that int-type variables are displayed correctly from a block.""" - self.build_and_run_expr('int.cpp', set(['int']), dsym=False) - - @dwarf_test - def test_int_type_with_dwarf(self): - """Test that int-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('int.cpp', set(['int']), dsym=False) + self.build_and_run_expr('int.cpp', set(['int'])) - @skipUnlessDarwin - @dsym_test - def test_unsigned_int_type_with_dsym(self): + def test_unsigned_int_type(self): """Test that 'unsigned_int'-type variable expressions are evaluated correctly.""" self.build_and_run_expr('unsigned_int.cpp', set(['unsigned', 'int'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_int_type_from_block_with_dsym(self): + def test_unsigned_int_type_from_block(self): """Test that 'unsigned int'-type variables are displayed correctly from a block.""" self.build_and_run_expr('unsigned_int.cpp', set(['unsigned', 'int']), bc=True) - @dwarf_test - def test_unsigned_int_type_with_dwarf(self): - """Test that 'unsigned int'-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('unsigned_int.cpp', set(['unsigned', 'int']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_long_type_with_dsym(self): + def test_long_type(self): """Test that long-type variable expressions are evaluated correctly.""" self.build_and_run_expr('long.cpp', set(['long'])) @skipUnlessDarwin - @dsym_test - def test_long_type_from_block_with_dsym(self): + def test_long_type_from_block(self): """Test that long-type variables are displayed correctly from a block.""" self.build_and_run_expr('long.cpp', set(['long']), bc=True) - @dwarf_test - def test_long_type_with_dwarf(self): - """Test that long-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('long.cpp', set(['long']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_long_type_with_dsym(self): + def test_unsigned_long_type(self): """Test that 'unsigned long'-type variable expressions are evaluated correctly.""" self.build_and_run_expr('unsigned_long.cpp', set(['unsigned', 'long'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_long_type_from_block_with_dsym(self): + def test_unsigned_long_type_from_block(self): """Test that 'unsigned_long'-type variables are displayed correctly from a block.""" self.build_and_run_expr('unsigned_long.cpp', set(['unsigned', 'long']), bc=True) - @dwarf_test - def test_unsigned_long_type_with_dwarf(self): - """Test that 'unsigned long'-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('unsigned_long.cpp', set(['unsigned', 'long']), dsym=False) - - # rdar://problem/8482903 - # test suite failure for types dir -- "long long" and "unsigned long long" - - @skipUnlessDarwin - @dsym_test - def test_long_long_type_with_dsym(self): + def test_long_long_type(self): """Test that 'long long'-type variable expressions are evaluated correctly.""" self.build_and_run_expr('long_long.cpp', set(['long long'])) @skipUnlessDarwin - @dsym_test - def test_long_long_type_from_block_with_dsym(self): + def test_long_long_type_from_block(self): """Test that 'long_long'-type variables are displayed correctly from a block.""" self.build_and_run_expr('long_long.cpp', set(['long long']), bc=True) - @dwarf_test - def test_long_long_type_with_dwarf(self): - """Test that 'long long'-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('long_long.cpp', set(['long long']), dsym=False) - - @skipUnlessDarwin - @dsym_test - def test_unsigned_long_long_type_with_dsym(self): + def test_unsigned_long_long_type(self): """Test that 'unsigned long long'-type variable expressions are evaluated correctly.""" self.build_and_run_expr('unsigned_long_long.cpp', set(['unsigned', 'long long'])) @skipUnlessDarwin - @dsym_test - def test_unsigned_long_long_type_from_block_with_dsym(self): + def test_unsigned_long_long_type_from_block(self): """Test that 'unsigned_long_long'-type variables are displayed correctly from a block.""" self.build_and_run_expr('unsigned_long_long.cpp', set(['unsigned', 'long long']), bc=True) - @dwarf_test - def test_unsigned_long_long_type_with_dwarf(self): - """Test that 'unsigned long long'-type variable expressions are evaluated correctly.""" - self.build_and_run_expr('unsigned_long_long.cpp', set(['unsigned', 'long long']), dsym=False) - if __name__ == '__main__': import atexit Index: test/types/TestRecursiveTypes.py =================================================================== --- test/types/TestRecursiveTypes.py +++ test/types/TestRecursiveTypes.py @@ -25,33 +25,15 @@ self.d1 = {'CXX_SOURCES': 'recursive_type_main.cpp recursive_type_1.cpp'} self.d2 = {'CXX_SOURCES': 'recursive_type_main.cpp recursive_type_2.cpp'} - @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") - @dsym_test - def test_recursive_dsym_type_1(self): + def test_recursive_type_1(self): """Test that recursive structs are displayed correctly.""" - self.buildDsym(dictionary=self.d1) + self.build(dictionary=self.d1) self.setTearDownCleanup(dictionary=self.d1) self.print_struct() - @dwarf_test - def test_recursive_dwarf_type_1(self): + def test_recursive_type_2(self): """Test that recursive structs are displayed correctly.""" - self.buildDwarf(dictionary=self.d1) - self.setTearDownCleanup(dictionary=self.d1) - self.print_struct() - - @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") - @dsym_test - def test_recursive_dsym_type_2(self): - """Test that recursive structs are displayed correctly.""" - self.buildDsym(dictionary=self.d2) - self.setTearDownCleanup(dictionary=self.d2) - self.print_struct() - - @dwarf_test - def test_recursive_dwarf_type_2(self): - """Test that recursive structs are displayed correctly.""" - self.buildDwarf(dictionary=self.d2) + self.build(dictionary=self.d1) self.setTearDownCleanup(dictionary=self.d2) self.print_struct()