summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTamas Berghammer <tberghammer@google.com>2015-09-30 10:12:40 +0000
committerTamas Berghammer <tberghammer@google.com>2015-09-30 10:12:40 +0000
commitc8fd130a2cbf7ade53d05e597f9d48e8c2f37442 (patch)
tree3c9cfb6d1674ee147e83fb80c6ab25e0444ad958
parentebfd72493cc68b085d3feac59f032acb518f4163 (diff)
downloadbcm5719-llvm-c8fd130a2cbf7ade53d05e597f9d48e8c2f37442.tar.gz
bcm5719-llvm-c8fd130a2cbf7ade53d05e597f9d48e8c2f37442.zip
Merge dwarf and dsym tests
Currently most of the test files have a separate dwarf and a separate dsym test with almost identical content (only the build step is different). With adding dwo symbol file handling to the test suit it would increase this to a 3-way duplication. The purpose of this change is to eliminate this redundancy with generating 2 test case (one dwarf and one dsym) for each test function specified (dwo handling will be added at a later commit). Main design goals: * There should be no boilerplate code in each test file to support the multiple debug info in most of the tests (custom scenarios are acceptable in special cases) so adding a new test case is easier and we can't miss one of the debug info type. * In case of a test failure, the debug symbols used during the test run have to be cleanly visible from the output of dotest.py to make debugging easier both from build bot logs and from local test runs * Each test case should have a unique, fully qualified name so we can run exactly 1 test with "-f <test-case>.<test-function>" syntax * Test output should be grouped based on test files the same way as it happens now (displaying dwarf/dsym results separately isn't preferable) Proposed solution (main logic in lldbtest.py, rest of them are test cases fixed up for the new style): * Have only 1 test fuction in the test files what will run for all debug info separately and this test function should call just "self.build(...)" to build an inferior with the right debug info * When a class is created by python (the class object, not the class instance), we will generate a new test method for each debug info format in the test class with the name "<test-function>_<debug-info>" and remove the original test method. This way unittest2 see multiple test methods (1 for each debug info, pretty much as of now) and will handle the test selection and the failure reporting correctly (the debug info will be visible from the end of the test name) * Add new annotation @no_debug_info_test to disable the generation of multiple tests for each debug info format when the test don't have an inferior Differential revision: http://reviews.llvm.org/D13028 llvm-svn: 248883
-rw-r--r--lldb/test/arm_emulation/TestEmulations.py3
-rw-r--r--lldb/test/benchmarks/continue/TestBenchmarkContinue.py13
-rw-r--r--lldb/test/benchmarks/disassembly/TestDisassembly.py2
-rw-r--r--lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py1
-rw-r--r--lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py2
-rw-r--r--lldb/test/benchmarks/expression/TestExpressionCmd.py2
-rw-r--r--lldb/test/benchmarks/expression/TestRepeatedExprs.py2
-rw-r--r--lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py1
-rw-r--r--lldb/test/benchmarks/startup/TestStartupDelays.py1
-rw-r--r--lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py1
-rw-r--r--lldb/test/benchmarks/stepping/TestSteppingSpeed.py1
-rw-r--r--lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py1
-rw-r--r--lldb/test/driver/batch_mode/TestBatchMode.py23
-rw-r--r--lldb/test/expression_command/call-function/TestCallStdStringFunction.py18
-rw-r--r--lldb/test/expression_command/call-function/TestCallStopAndContinue.py17
-rw-r--r--lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py18
-rw-r--r--lldb/test/expression_command/call-restarts/TestCallThatRestarts.py18
-rw-r--r--lldb/test/expression_command/call-throws/TestCallThatThrows.py13
-rw-r--r--lldb/test/expression_command/char/TestExprsChar.py2
-rw-r--r--lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py11
-rw-r--r--lldb/test/expression_command/formatters/TestFormatters.py15
-rw-r--r--lldb/test/expression_command/issue_11588/Test11588.py2
-rw-r--r--lldb/test/expression_command/options/TestExprOptions.py2
-rw-r--r--lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py17
-rw-r--r--lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py15
-rw-r--r--lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py2
-rw-r--r--lldb/test/expression_command/persistent_types/TestPersistentTypes.py2
-rw-r--r--lldb/test/expression_command/persistent_variables/TestPersistentVariables.py2
-rw-r--r--lldb/test/expression_command/po_verbosity/TestPoVerbosity.py15
-rw-r--r--lldb/test/expression_command/radar_8638051/Test8638051.py2
-rw-r--r--lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py2
-rw-r--r--lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py2
-rw-r--r--lldb/test/expression_command/test/TestExprs.py6
-rw-r--r--lldb/test/expression_command/test/TestExprs2.py2
-rw-r--r--lldb/test/expression_command/timeout/TestCallWithTimeout.py15
-rw-r--r--lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py16
-rw-r--r--lldb/test/functionalities/abbreviation/TestAbbreviations.py1
-rw-r--r--lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py1
-rw-r--r--lldb/test/functionalities/archives/TestBSDArchives.py11
-rw-r--r--lldb/test/functionalities/asan/TestMemoryHistory.py14
-rw-r--r--lldb/test/functionalities/asan/TestReportData.py14
-rw-r--r--lldb/test/functionalities/attach_resume/TestAttachResume.py6
-rw-r--r--lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py4
-rw-r--r--lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py1
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py13
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py13
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py12
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py39
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py13
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py25
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py12
-rw-r--r--lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py12
-rw-r--r--lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py13
-rw-r--r--lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py12
-rw-r--r--lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py11
-rw-r--r--lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py13
-rw-r--r--lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py12
-rw-r--r--lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py12
-rw-r--r--lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py12
-rw-r--r--lldb/test/functionalities/command_history/TestCommandHistory.py1
-rw-r--r--lldb/test/functionalities/command_regex/TestCommandRegex.py1
-rw-r--r--lldb/test/functionalities/command_script/TestCommandScript.py11
-rw-r--r--lldb/test/functionalities/command_script/import/TestImport.py1
-rw-r--r--lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py1
-rw-r--r--lldb/test/functionalities/command_source/TestCommandSource.py1
-rw-r--r--lldb/test/functionalities/completion/TestCompletion.py45
-rw-r--r--lldb/test/functionalities/conditional_break/TestConditionalBreak.py25
-rw-r--r--lldb/test/functionalities/connect_remote/TestConnectRemote.py1
-rw-r--r--lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py12
-rw-r--r--lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py18
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py16
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py16
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py18
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py18
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py16
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py16
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py16
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py155
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py37
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py12
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py12
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py24
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py12
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py12
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py12
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py28
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py22
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py22
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py20
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py23
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py22
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py18
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py20
-rw-r--r--lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py19
-rw-r--r--lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py16
-rw-r--r--lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py16
-rw-r--r--lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py18
-rw-r--r--lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py18
-rw-r--r--lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py18
-rw-r--r--lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersBoolRefPtr.py18
-rw-r--r--lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py18
-rw-r--r--lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py16
-rw-r--r--lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py16
-rw-r--r--lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py16
-rw-r--r--lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py18
-rw-r--r--lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py16
-rw-r--r--lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py17
-rw-r--r--lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py18
-rw-r--r--lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py21
-rw-r--r--lldb/test/functionalities/dead-strip/TestDeadStrip.py16
-rw-r--r--lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py14
-rw-r--r--lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py32
-rw-r--r--lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py25
-rw-r--r--lldb/test/functionalities/exec/TestExec.py26
-rw-r--r--lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py20
-rw-r--r--lldb/test/functionalities/fat_archives/TestFatArchives.py3
-rw-r--r--lldb/test/functionalities/format/TestFormats.py2
-rw-r--r--lldb/test/functionalities/inferior-assert/TestInferiorAssert.py44
-rw-r--r--lldb/test/functionalities/inferior-changed/TestInferiorChanged.py17
-rw-r--r--lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py62
-rw-r--r--lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py63
-rw-r--r--lldb/test/functionalities/inline-stepping/TestInlineStepping.py39
-rw-r--r--lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py15
-rw-r--r--lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py16
-rw-r--r--lldb/test/functionalities/load_unload/TestLoadUnload.py10
-rw-r--r--lldb/test/functionalities/longjmp/TestLongjmp.py6
-rw-r--r--lldb/test/functionalities/memory/read/TestMemoryRead.py18
-rw-r--r--lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py8
-rw-r--r--lldb/test/functionalities/nosucharch/TestNoSuchArch.py25
-rw-r--r--lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py5
-rw-r--r--lldb/test/functionalities/paths/TestPaths.py3
-rw-r--r--lldb/test/functionalities/platform/TestPlatformCommand.py8
-rw-r--r--lldb/test/functionalities/plugins/commands/TestPluginCommands.py1
-rw-r--r--lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py24
-rw-r--r--lldb/test/functionalities/postmortem/minidump/TestMiniDump.py2
-rw-r--r--lldb/test/functionalities/process_attach/TestProcessAttach.py52
-rw-r--r--lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py3
-rw-r--r--lldb/test/functionalities/process_group/TestChangeProcessGroup.py27
-rw-r--r--lldb/test/functionalities/process_launch/TestProcessLaunch.py40
-rw-r--r--lldb/test/functionalities/recursion/TestValueObjectRecursion.py18
-rwxr-xr-xlldb/test/functionalities/register/TestRegisters.py14
-rw-r--r--lldb/test/functionalities/rerun/TestRerun.py16
-rw-r--r--lldb/test/functionalities/return-value/TestReturnValue.py126
-rw-r--r--lldb/test/functionalities/set-data/TestSetData.py11
-rw-r--r--lldb/test/functionalities/signal/TestSendSignal.py47
-rw-r--r--lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py4
-rw-r--r--lldb/test/functionalities/signal/raise/TestRaise.py32
-rw-r--r--lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py1
-rw-r--r--lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py42
-rw-r--r--lldb/test/functionalities/stop-hook/TestStopHookCmd.py26
-rw-r--r--lldb/test/functionalities/stop-hook/TestStopHookMechanism.py23
-rw-r--r--lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py26
-rw-r--r--lldb/test/functionalities/target_command/TestTargetCommand.py21
-rw-r--r--lldb/test/functionalities/thread/TestNumThreads.py16
-rw-r--r--lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py24
-rw-r--r--lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py175
-rw-r--r--lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py21
-rw-r--r--lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py17
-rw-r--r--lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py57
-rw-r--r--lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py25
-rw-r--r--lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py73
-rw-r--r--lldb/test/functionalities/thread/jump/TestThreadJump.py32
-rw-r--r--lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py25
-rw-r--r--lldb/test/functionalities/thread/state/TestThreadStates.py65
-rw-r--r--lldb/test/functionalities/thread/step_out/TestThreadStepOut.py33
-rw-r--r--lldb/test/functionalities/thread/thread_exit/TestThreadExit.py20
-rw-r--r--lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py17
-rw-r--r--lldb/test/functionalities/tty/TestTerminal.py8
-rw-r--r--lldb/test/functionalities/type_completion/TestTypeCompletion.py20
-rw-r--r--lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py15
-rw-r--r--lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py15
-rw-r--r--lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py18
-rw-r--r--lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py23
-rw-r--r--lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py23
-rw-r--r--lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py26
-rw-r--r--lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py55
-rw-r--r--lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py24
-rw-r--r--lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py259
-rw-r--r--lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py42
-rw-r--r--lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py16
-rw-r--r--lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py16
-rw-r--r--lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py56
-rw-r--r--lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py26
-rw-r--r--lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py11
-rw-r--r--lldb/test/help/TestHelp.py15
-rw-r--r--lldb/test/lang/c/anonymous/TestAnonymous.py152
-rw-r--r--lldb/test/lang/c/array_types/TestArrayTypes.py35
-rw-r--r--lldb/test/lang/c/bitfields/TestBitfields.py41
-rw-r--r--lldb/test/lang/c/blocks/TestBlocks.py49
-rw-r--r--lldb/test/lang/c/const_variables/TestConstVariables.py19
-rw-r--r--lldb/test/lang/c/enum_types/TestEnumTypes.py21
-rw-r--r--lldb/test/lang/c/forward/TestForwardDeclaration.py20
-rw-r--r--lldb/test/lang/c/function_types/TestFunctionTypes.py74
-rw-r--r--lldb/test/lang/c/global_variables/TestGlobalVariables.py19
-rw-r--r--lldb/test/lang/c/modules/TestCModules.py38
-rw-r--r--lldb/test/lang/c/register_variables/TestRegisterVariables.py22
-rw-r--r--lldb/test/lang/c/set_values/TestSetValues.py18
-rw-r--r--lldb/test/lang/c/shared_lib/TestSharedLib.py55
-rw-r--r--lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py58
-rw-r--r--lldb/test/lang/c/stepping/TestStepAndBreakpoints.py27
-rw-r--r--lldb/test/lang/c/stepping/TestThreadStepping.py16
-rw-r--r--lldb/test/lang/c/strings/TestCStrings.py25
-rw-r--r--lldb/test/lang/c/tls_globals/TestTlsGlobals.py22
-rw-r--r--lldb/test/lang/cpp/bool/TestCPPBool.py27
-rw-r--r--lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py20
-rw-r--r--lldb/test/lang/cpp/call-function/TestCallCPPFunction.py18
-rw-r--r--lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py16
-rw-r--r--lldb/test/lang/cpp/char1632_t/TestChar1632T.py21
-rw-r--r--lldb/test/lang/cpp/class_static/TestStaticVariables.py50
-rw-r--r--lldb/test/lang/cpp/class_types/TestClassTypes.py81
-rw-r--r--lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py91
-rw-r--r--lldb/test/lang/cpp/diamond/TestDiamond.py30
-rw-r--r--lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py29
-rw-r--r--lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py139
-rw-r--r--lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py96
-rw-r--r--lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py21
-rw-r--r--lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py16
-rw-r--r--lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py13
-rw-r--r--lldb/test/lang/cpp/namespace/TestNamespace.py21
-rw-r--r--lldb/test/lang/cpp/nsimport/TestCppNsImport.py19
-rw-r--r--lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py22
-rw-r--r--lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py39
-rw-r--r--lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py25
-rw-r--r--lldb/test/lang/cpp/scope/TestCppScope.py17
-rw-r--r--lldb/test/lang/cpp/signed_types/TestSignedTypes.py18
-rw-r--r--lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py28
-rw-r--r--lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py20
-rw-r--r--lldb/test/lang/cpp/stl/TestSTL.py43
-rw-r--r--lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py2
-rw-r--r--lldb/test/lang/cpp/this/TestCPPThis.py27
-rw-r--r--lldb/test/lang/cpp/unique-types/TestUniqueTypes.py16
-rw-r--r--lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py16
-rw-r--r--lldb/test/lang/cpp/virtual/TestVirtual.py19
-rw-r--r--lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py18
-rw-r--r--lldb/test/lang/go/goroutines/TestGoroutines.py1
-rw-r--r--lldb/test/lang/go/types/TestGoASTContext.py1
-rw-r--r--lldb/test/lang/mixed/TestMixedLanguages.py2
-rw-r--r--lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py26
-rw-r--r--lldb/test/lang/objc/forward-decl/TestForwardDecl.py20
-rw-r--r--lldb/test/lang/objc/foundation/TestConstStrings.py21
-rw-r--r--lldb/test/lang/objc/foundation/TestFoundationDisassembly.py17
-rw-r--r--lldb/test/lang/objc/foundation/TestObjCMethods.py158
-rw-r--r--lldb/test/lang/objc/foundation/TestObjCMethods2.py99
-rw-r--r--lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py34
-rw-r--r--lldb/test/lang/objc/foundation/TestRuntimeTypes.py19
-rw-r--r--lldb/test/lang/objc/foundation/TestSymbolTable.py16
-rw-r--r--lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py79
-rw-r--r--lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py14
-rw-r--r--lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py37
-rw-r--r--lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py35
-rw-r--r--lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py33
-rw-r--r--lldb/test/lang/objc/modules/TestObjCModules.py37
-rw-r--r--lldb/test/lang/objc/objc++/TestObjCXX.py16
-rw-r--r--lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py29
-rw-r--r--lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py21
-rw-r--r--lldb/test/lang/objc/objc-checker/TestObjCCheckers.py31
-rw-r--r--lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py29
-rw-r--r--lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py27
-rw-r--r--lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py48
-rw-r--r--lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py23
-rw-r--r--lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py13
-rw-r--r--lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py39
-rw-r--r--lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py15
-rw-r--r--lldb/test/lang/objc/objc-property/TestObjCProperty.py35
-rw-r--r--lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py18
-rw-r--r--lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py25
-rw-r--r--lldb/test/lang/objc/objc-stepping/TestObjCStepping.py23
-rw-r--r--lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py21
-rw-r--r--lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py23
-rw-r--r--lldb/test/lang/objc/objc-super/TestObjCSuper.py24
-rw-r--r--lldb/test/lang/objc/print-obj/TestPrintObj.py23
-rw-r--r--lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py24
-rw-r--r--lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py24
-rw-r--r--lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py24
-rw-r--r--lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py24
-rw-r--r--lldb/test/lang/objc/real-definition/TestRealDefinition.py65
-rw-r--r--lldb/test/lang/objc/self/TestObjCSelf.py25
-rw-r--r--lldb/test/linux/builtin_trap/TestBuiltinTrap.py27
-rw-r--r--lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py8
-rw-r--r--lldb/test/lldbtest.py130
-rw-r--r--lldb/test/logging/TestLogging.py20
-rw-r--r--lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py1
-rw-r--r--lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py23
-rw-r--r--lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py21
-rw-r--r--lldb/test/macosx/order/TestOrderFile.py17
-rw-r--r--lldb/test/macosx/queues/TestQueues.py14
-rw-r--r--lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py43
-rw-r--r--lldb/test/macosx/universal/TestUniversal.py4
-rw-r--r--lldb/test/python_api/breakpoint/TestBreakpointAPI.py21
-rw-r--r--lldb/test/python_api/class_members/TestSBTypeClassMembers.py29
-rw-r--r--lldb/test/python_api/debugger/TestDebuggerAPI.py3
-rw-r--r--lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py32
-rw-r--r--lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py6
-rw-r--r--lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py6
-rw-r--r--lldb/test/python_api/event/TestEvents.py74
-rw-r--r--lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py21
-rw-r--r--lldb/test/python_api/formatters/TestFormattersSBAPI.py37
-rw-r--r--lldb/test/python_api/frame/TestFrames.py38
-rw-r--r--lldb/test/python_api/frame/inlines/TestInlinedFrame.py20
-rw-r--r--lldb/test/python_api/function_symbol/TestDisasmAPI.py20
-rw-r--r--lldb/test/python_api/function_symbol/TestSymbolAPI.py21
-rw-r--r--lldb/test/python_api/hello_world/TestHelloWorld.py104
-rw-r--r--lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py19
-rw-r--r--lldb/test/python_api/lldbutil/frame/TestFrameUtils.py5
-rw-r--r--lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py27
-rw-r--r--lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py5
-rw-r--r--lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py7
-rw-r--r--lldb/test/python_api/module_section/TestModuleAndSection.py28
-rw-r--r--lldb/test/python_api/objc_type/TestObjCType.py23
-rw-r--r--lldb/test/python_api/process/TestProcessAPI.py77
-rw-r--r--lldb/test/python_api/process/io/TestProcessIO.py179
-rw-r--r--lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py16
-rw-r--r--lldb/test/python_api/sbdata/TestSBData.py45
-rw-r--r--lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py22
-rwxr-xr-xlldb/test/python_api/section/TestSectionAPI.py35
-rw-r--r--lldb/test/python_api/signals/TestSignalsAPI.py2
-rw-r--r--lldb/test/python_api/symbol-context/TestSymbolContext.py23
-rw-r--r--lldb/test/python_api/target/TestTargetAPI.py193
-rw-r--r--lldb/test/python_api/thread/TestThreadAPI.py80
-rw-r--r--lldb/test/python_api/type/TestTypeList.py27
-rw-r--r--lldb/test/python_api/value/TestValueAPI.py29
-rw-r--r--lldb/test/python_api/value/change_values/TestChangeValueAPI.py31
-rw-r--r--lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py29
-rw-r--r--lldb/test/python_api/value_var_update/TestValueVarUpdate.py25
-rw-r--r--lldb/test/python_api/watchpoint/TestSetWatchpoint.py17
-rw-r--r--lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py17
-rw-r--r--lldb/test/python_api/watchpoint/TestWatchpointIter.py17
-rw-r--r--lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py17
-rw-r--r--lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py17
-rw-r--r--lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py40
-rw-r--r--lldb/test/settings/TestSettings.py37
-rw-r--r--lldb/test/settings/quoting/TestQuoting.py11
-rw-r--r--lldb/test/source-manager/TestSourceManager.py22
-rw-r--r--lldb/test/terminal/TestSTTYBeforeAndAfter.py1
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteAttach.py10
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py35
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py50
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteKill.py10
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py42
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py20
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py10
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py40
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py30
-rw-r--r--lldb/test/tools/lldb-server/TestGdbRemote_vCont.py59
-rw-r--r--lldb/test/tools/lldb-server/TestLldbGdbServer.py307
-rw-r--r--lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py10
-rw-r--r--lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py10
-rw-r--r--lldb/test/types/AbstractBase.py15
-rw-r--r--lldb/test/types/HideTestFailures.py90
-rw-r--r--lldb/test/types/TestFloatTypes.py26
-rw-r--r--lldb/test/types/TestFloatTypesExpr.py25
-rw-r--r--lldb/test/types/TestIntegerTypes.py125
-rw-r--r--lldb/test/types/TestIntegerTypesExpr.py125
-rw-r--r--lldb/test/types/TestRecursiveTypes.py26
-rw-r--r--lldb/test/warnings/uuid/TestAddDsymCommand.py3
366 files changed, 2484 insertions, 7521 deletions
diff --git a/lldb/test/arm_emulation/TestEmulations.py b/lldb/test/arm_emulation/TestEmulations.py
index baf791cff0c..0bd36f05a94 100644
--- a/lldb/test/arm_emulation/TestEmulations.py
+++ b/lldb/test/arm_emulation/TestEmulations.py
@@ -11,6 +11,7 @@ class ARMEmulationTestCase(TestBase):
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 @@ class ARMEmulationTestCase(TestBase):
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")
diff --git a/lldb/test/benchmarks/continue/TestBenchmarkContinue.py b/lldb/test/benchmarks/continue/TestBenchmarkContinue.py
index fa18afb87c6..c4d0de34347 100644
--- a/lldb/test/benchmarks/continue/TestBenchmarkContinue.py
+++ b/lldb/test/benchmarks/continue/TestBenchmarkContinue.py
@@ -13,18 +13,9 @@ class TestBenchmarkContinue(BenchBase):
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):
diff --git a/lldb/test/benchmarks/disassembly/TestDisassembly.py b/lldb/test/benchmarks/disassembly/TestDisassembly.py
index 9f9920dbd41..83ed72ea3c9 100644
--- a/lldb/test/benchmarks/disassembly/TestDisassembly.py
+++ b/lldb/test/benchmarks/disassembly/TestDisassembly.py
@@ -37,6 +37,7 @@ class DisassembleDriverMainLoop(BenchBase):
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 @@ class DisassembleDriverMainLoop(BenchBase):
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."""
diff --git a/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py b/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py
index 0a5f51f607d..0f06497023e 100644
--- a/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py
+++ b/lldb/test/benchmarks/disassembly/TestDoAttachThenDisassembly.py
@@ -22,6 +22,7 @@ class AttachThenDisassemblyBench(BenchBase):
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
diff --git a/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py b/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py
index aa37157eb07..ff79866de12 100644
--- a/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py
+++ b/lldb/test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py
@@ -22,6 +22,7 @@ class XCode41Vs42GDBDisassembly(BenchBase):
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 @@ class XCode41Vs42GDBDisassembly(BenchBase):
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."""
diff --git a/lldb/test/benchmarks/expression/TestExpressionCmd.py b/lldb/test/benchmarks/expression/TestExpressionCmd.py
index 46a8582c3d9..a9d26499eb2 100644
--- a/lldb/test/benchmarks/expression/TestExpressionCmd.py
+++ b/lldb/test/benchmarks/expression/TestExpressionCmd.py
@@ -21,7 +21,7 @@ class ExpressionEvaluationCase(BenchBase):
@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
diff --git a/lldb/test/benchmarks/expression/TestRepeatedExprs.py b/lldb/test/benchmarks/expression/TestRepeatedExprs.py
index 21fe7b3ed4d..ad8f963ba9e 100644
--- a/lldb/test/benchmarks/expression/TestRepeatedExprs.py
+++ b/lldb/test/benchmarks/expression/TestRepeatedExprs.py
@@ -23,7 +23,7 @@ class RepeatedExprsCase(BenchBase):
@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
diff --git a/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py b/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py
index 7f738f11968..b3eb7b651f5 100644
--- a/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py
+++ b/lldb/test/benchmarks/frame_variable/TestFrameVariableResponse.py
@@ -25,6 +25,7 @@ class FrameVariableResponseBench(BenchBase):
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."""
diff --git a/lldb/test/benchmarks/startup/TestStartupDelays.py b/lldb/test/benchmarks/startup/TestStartupDelays.py
index f307a47d4df..802a8858673 100644
--- a/lldb/test/benchmarks/startup/TestStartupDelays.py
+++ b/lldb/test/benchmarks/startup/TestStartupDelays.py
@@ -30,6 +30,7 @@ class StartupDelaysBench(BenchBase):
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."""
diff --git a/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py b/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py
index 234b96cbda0..623e2c081b3 100644
--- a/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py
+++ b/lldb/test/benchmarks/stepping/TestRunHooksThenSteppings.py
@@ -16,6 +16,7 @@ class RunHooksThenSteppingsBench(BenchBase):
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."""
diff --git a/lldb/test/benchmarks/stepping/TestSteppingSpeed.py b/lldb/test/benchmarks/stepping/TestSteppingSpeed.py
index 23471da8934..7aa84c6fe5d 100644
--- a/lldb/test/benchmarks/stepping/TestSteppingSpeed.py
+++ b/lldb/test/benchmarks/stepping/TestSteppingSpeed.py
@@ -28,6 +28,7 @@ class SteppingSpeedBench(BenchBase):
#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."""
diff --git a/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py b/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py
index f7b6d4d83f5..ab57a704022 100644
--- a/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py
+++ b/lldb/test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py
@@ -22,6 +22,7 @@ class CompileRunToBreakpointBench(BenchBase):
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."""
diff --git a/lldb/test/driver/batch_mode/TestBatchMode.py b/lldb/test/driver/batch_mode/TestBatchMode.py
index 964ff401c94..be285a5efd2 100644
--- a/lldb/test/driver/batch_mode/TestBatchMode.py
+++ b/lldb/test/driver/batch_mode/TestBatchMode.py
@@ -15,21 +15,11 @@ class DriverBatchModeTest (TestBase):
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 @@ class DriverBatchModeTest (TestBase):
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 @@ class DriverBatchModeTest (TestBase):
index = self.child.expect([pexpect.EOF, pexpect.TIMEOUT])
self.assertTrue(index == 0, "lldb didn't close on successful batch completion.")
-
-
-
-
-
-
-
-
diff --git a/lldb/test/expression_command/call-function/TestCallStdStringFunction.py b/lldb/test/expression_command/call-function/TestCallStdStringFunction.py
index da26763bb13..ca09285858e 100644
--- a/lldb/test/expression_command/call-function/TestCallStdStringFunction.py
+++ b/lldb/test/expression_command/call-function/TestCallStdStringFunction.py
@@ -18,24 +18,12 @@ class ExprCommandCallFunctionTestCase(TestBase):
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(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
diff --git a/lldb/test/expression_command/call-function/TestCallStopAndContinue.py b/lldb/test/expression_command/call-function/TestCallStopAndContinue.py
index 1c50e73e185..1f34ad3addc 100644
--- a/lldb/test/expression_command/call-function/TestCallStopAndContinue.py
+++ b/lldb/test/expression_command/call-function/TestCallStopAndContinue.py
@@ -20,24 +20,11 @@ class ExprCommandCallStopContinueTestCase(TestBase):
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
diff --git a/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py b/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py
index e9764ef7772..d1a46b1ebed 100644
--- a/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py
+++ b/lldb/test/expression_command/call-function/TestCallUserDefinedFunction.py
@@ -22,23 +22,11 @@ class ExprCommandCallUserDefinedFunction(TestBase):
# 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)
diff --git a/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py b/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py
index e6636091b57..289341e5df8 100644
--- a/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py
+++ b/lldb/test/expression_command/call-restarts/TestCallThatRestarts.py
@@ -18,22 +18,12 @@ class ExprCommandThatRestartsTestCase(TestBase):
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 +35,7 @@ class ExprCommandThatRestartsTestCase(TestBase):
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)
diff --git a/lldb/test/expression_command/call-throws/TestCallThatThrows.py b/lldb/test/expression_command/call-throws/TestCallThatThrows.py
index 8d54e268771..7d99d052774 100644
--- a/lldb/test/expression_command/call-throws/TestCallThatThrows.py
+++ b/lldb/test/expression_command/call-throws/TestCallThatThrows.py
@@ -18,19 +18,10 @@ class ExprCommandWithThrowTestCase(TestBase):
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):
diff --git a/lldb/test/expression_command/char/TestExprsChar.py b/lldb/test/expression_command/char/TestExprsChar.py
index 1f4a7a87591..0a8319f95cb 100644
--- a/lldb/test/expression_command/char/TestExprsChar.py
+++ b/lldb/test/expression_command/char/TestExprsChar.py
@@ -17,7 +17,7 @@ class ExprCharTestCase(TestBase):
def do_test(self, dictionary=None):
"""These basic expression commands should work as expected."""
- self.buildDefault(dictionary = dictionary)
+ self.build(dictionary = dictionary)
target = self.dbg.CreateTarget(self.exe)
self.assertTrue(target)
diff --git a/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py b/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py
index be9832c9563..c8a97c70b93 100644
--- a/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py
+++ b/lldb/test/expression_command/expr-in-syscall/TestExpressionInSyscall.py
@@ -11,16 +11,9 @@ class ExprSyscallTestCase(TestBase):
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):
diff --git a/lldb/test/expression_command/formatters/TestFormatters.py b/lldb/test/expression_command/formatters/TestFormatters.py
index 721e5884ea3..12cf3e12871 100644
--- a/lldb/test/expression_command/formatters/TestFormatters.py
+++ b/lldb/test/expression_command/formatters/TestFormatters.py
@@ -18,27 +18,16 @@ class ExprFormattersTestCase(TestBase):
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):
+ def test(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():
diff --git a/lldb/test/expression_command/issue_11588/Test11588.py b/lldb/test/expression_command/issue_11588/Test11588.py
index c78ab5f3230..be631ed1d7d 100644
--- a/lldb/test/expression_command/issue_11588/Test11588.py
+++ b/lldb/test/expression_command/issue_11588/Test11588.py
@@ -26,7 +26,7 @@ class Issue11581TestCase(TestBase):
self.addTearDownHook(cleanup)
"""valobj.AddressOf() should return correct values."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
diff --git a/lldb/test/expression_command/options/TestExprOptions.py b/lldb/test/expression_command/options/TestExprOptions.py
index 2dca24657a3..ae9dcf64277 100644
--- a/lldb/test/expression_command/options/TestExprOptions.py
+++ b/lldb/test/expression_command/options/TestExprOptions.py
@@ -28,7 +28,7 @@ class ExprOptionsTestCase(TestBase):
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)
diff --git a/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py b/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py
index c1c5eb2dbec..f58ccc1706b 100644
--- a/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py
+++ b/lldb/test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py
@@ -18,26 +18,13 @@ class PersistObjCPointeeType(TestBase):
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):
+ def test_with(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
diff --git a/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py b/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py
index af21086c006..6ea706a0bcb 100644
--- a/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py
+++ b/lldb/test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py
@@ -15,21 +15,10 @@ class PersistentPtrUpdateTestCase(TestBase):
# 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
diff --git a/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py b/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py
index 5802d497505..b9269058f37 100644
--- a/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py
+++ b/lldb/test/expression_command/persistent_types/TestNestedPersistentTypes.py
@@ -14,7 +14,7 @@ class NestedPersistentTypesTestCase(TestBase):
@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)
diff --git a/lldb/test/expression_command/persistent_types/TestPersistentTypes.py b/lldb/test/expression_command/persistent_types/TestPersistentTypes.py
index 1f689b8823d..7f0eb648bbd 100644
--- a/lldb/test/expression_command/persistent_types/TestPersistentTypes.py
+++ b/lldb/test/expression_command/persistent_types/TestPersistentTypes.py
@@ -14,7 +14,7 @@ class PersistenttypesTestCase(TestBase):
@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)
diff --git a/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py b/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py
index 8e7af009c6a..77d1c251915 100644
--- a/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py
+++ b/lldb/test/expression_command/persistent_variables/TestPersistentVariables.py
@@ -13,7 +13,7 @@ class PersistentVariablesTestCase(TestBase):
def test_persistent_variables(self):
"""Test that lldb persistent variables works correctly."""
- self.buildDefault()
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py b/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py
index dbb9daa8d04..2a9ed7c9779 100644
--- a/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py
+++ b/lldb/test/expression_command/po_verbosity/TestPoVerbosity.py
@@ -19,20 +19,9 @@ class PoVerbosityTestCase(TestBase):
'// 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.
diff --git a/lldb/test/expression_command/radar_8638051/Test8638051.py b/lldb/test/expression_command/radar_8638051/Test8638051.py
index 823c8e12113..fa1f1756dba 100644
--- a/lldb/test/expression_command/radar_8638051/Test8638051.py
+++ b/lldb/test/expression_command/radar_8638051/Test8638051.py
@@ -13,7 +13,7 @@ class Radar8638051TestCase(TestBase):
def test_expr_commands(self):
"""The following expression commands should not crash."""
- self.buildDefault()
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py b/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py
index 827fddbb6b2..0a1a9b81ffe 100644
--- a/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py
+++ b/lldb/test/expression_command/radar_9531204/TestPrintfAfterUp.py
@@ -16,7 +16,7 @@ class Radar9531204TestCase(TestBase):
@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)
diff --git a/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py b/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py
index 71c08523bd0..58f04554ed6 100644
--- a/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py
+++ b/lldb/test/expression_command/radar_9673664/TestExprHelpExamples.py
@@ -22,7 +22,7 @@ class Radar9673644TestCase(TestBase):
@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)
diff --git a/lldb/test/expression_command/test/TestExprs.py b/lldb/test/expression_command/test/TestExprs.py
index 4d718aa8b1c..3545e34e74a 100644
--- a/lldb/test/expression_command/test/TestExprs.py
+++ b/lldb/test/expression_command/test/TestExprs.py
@@ -35,7 +35,7 @@ class BasicExprCommandsTestCase(TestBase):
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 @@ class BasicExprCommandsTestCase(TestBase):
@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 @@ class BasicExprCommandsTestCase(TestBase):
@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)
diff --git a/lldb/test/expression_command/test/TestExprs2.py b/lldb/test/expression_command/test/TestExprs2.py
index 9395d31bac2..5e52c5e94de 100644
--- a/lldb/test/expression_command/test/TestExprs2.py
+++ b/lldb/test/expression_command/test/TestExprs2.py
@@ -22,7 +22,7 @@ class ExprCommands2TestCase(TestBase):
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
def test_more_expr_commands(self):
"""Test some more expression commands."""
- self.buildDefault()
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/expression_command/timeout/TestCallWithTimeout.py b/lldb/test/expression_command/timeout/TestCallWithTimeout.py
index c5b4e06448c..f59cd7564dc 100644
--- a/lldb/test/expression_command/timeout/TestCallWithTimeout.py
+++ b/lldb/test/expression_command/timeout/TestCallWithTimeout.py
@@ -19,24 +19,13 @@ class ExprCommandWithTimeoutsTestCase(TestBase):
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)
diff --git a/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py b/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
index 9f3a18d6af0..8279a75684e 100644
--- a/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
+++ b/lldb/test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
@@ -21,21 +21,9 @@ class ObjCTypeQueryTestCase(TestBase):
"// 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):
+ def test(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)
diff --git a/lldb/test/functionalities/abbreviation/TestAbbreviations.py b/lldb/test/functionalities/abbreviation/TestAbbreviations.py
index 69208475ab3..d0bbd15b749 100644
--- a/lldb/test/functionalities/abbreviation/TestAbbreviations.py
+++ b/lldb/test/functionalities/abbreviation/TestAbbreviations.py
@@ -13,6 +13,7 @@ class AbbreviationsTestCase(TestBase):
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)
diff --git a/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py b/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py
index c01a0314a5c..5f7e84df40c 100644
--- a/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py
+++ b/lldb/test/functionalities/abbreviation/TestCommonShortSpellings.py
@@ -13,6 +13,7 @@ class CommonShortSpellingsTestCase(TestBase):
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)
diff --git a/lldb/test/functionalities/archives/TestBSDArchives.py b/lldb/test/functionalities/archives/TestBSDArchives.py
index b04a9055955..0404e25a39e 100644
--- a/lldb/test/functionalities/archives/TestBSDArchives.py
+++ b/lldb/test/functionalities/archives/TestBSDArchives.py
@@ -10,20 +10,17 @@ class BSDArchivesTestCase(TestBase):
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)
diff --git a/lldb/test/functionalities/asan/TestMemoryHistory.py b/lldb/test/functionalities/asan/TestMemoryHistory.py
index 9c5c3e70785..541c1c5fa14 100644
--- a/lldb/test/functionalities/asan/TestMemoryHistory.py
+++ b/lldb/test/functionalities/asan/TestMemoryHistory.py
@@ -16,23 +16,13 @@ class AsanTestCase(TestBase):
# 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):
diff --git a/lldb/test/functionalities/asan/TestReportData.py b/lldb/test/functionalities/asan/TestReportData.py
index 235ba037d69..cfa0141dd36 100644
--- a/lldb/test/functionalities/asan/TestReportData.py
+++ b/lldb/test/functionalities/asan/TestReportData.py
@@ -17,23 +17,13 @@ class AsanTestReportDataCase(TestBase):
# 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):
diff --git a/lldb/test/functionalities/attach_resume/TestAttachResume.py b/lldb/test/functionalities/attach_resume/TestAttachResume.py
index ec6e626ac1c..88df25bae78 100644
--- a/lldb/test/functionalities/attach_resume/TestAttachResume.py
+++ b/lldb/test/functionalities/attach_resume/TestAttachResume.py
@@ -14,17 +14,15 @@ class AttachResumeTestCase(TestBase):
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"""
diff --git a/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py b/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py
index c56c1adf034..c28221a7f90 100644
--- a/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py
+++ b/lldb/test/functionalities/avoids-fd-leak/TestFdLeak.py
@@ -32,7 +32,7 @@ class AvoidsFdLeakTestCase(TestBase):
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 @@ class AvoidsFdLeakTestCase(TestBase):
@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)
diff --git a/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py b/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py
index 7c8cf86341f..7d9be675292 100644
--- a/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py
+++ b/lldb/test/functionalities/backticks/TestBackticksWithoutATarget.py
@@ -11,6 +11,7 @@ class BackticksWithNoTargetTestCase(TestBase):
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`",
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
index 80bf487c274..d6a9f70baa9 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
@@ -18,19 +18,10 @@ class BreakpointCommandTestCase(TestBase):
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 ()
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
index 7fab045bfe5..c7bc773d4d5 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py
@@ -14,19 +14,10 @@ class PythonBreakpointCommandSettingTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py b/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
index ca95f36e838..e5fda67c212 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py
@@ -12,17 +12,9 @@ class RegexpBreakCommandTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py b/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
index a60a917e8af..1aa01542075 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py
@@ -12,48 +12,23 @@ class BreakpointConditionsTestCase(TestBase):
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 <expr> 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 <expr> 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):
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py b/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py
index 23d7e8a8884..efab6fba918 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py
@@ -12,18 +12,9 @@ class BreakpointIDTestCase(TestBase):
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" ])
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py b/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
index 7655af396ab..6daa68d8a45 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
@@ -12,32 +12,15 @@ class BreakpointIgnoreCountTestCase(TestBase):
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 <count>'."""
- 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 <count>'."""
- 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):
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py b/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
index 27d91adccdc..4e957111221 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
@@ -12,18 +12,10 @@ class BreakpointLocationsTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py b/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
index 2efa53aae5a..b71fbabea7e 100644
--- a/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
+++ b/lldb/test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
@@ -12,17 +12,9 @@ class BreakpointOptionsTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py b/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
index 67a29a4aeb5..d67c43ff56f 100644
--- a/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
+++ b/lldb/test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py
@@ -24,27 +24,24 @@ class CompDirSymLinkTestCase(TestBase):
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 @@ class CompDirSymLinkTestCase(TestBase):
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)
diff --git a/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py b/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
index fe1459fe4ed..5f94352953a 100644
--- a/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
+++ b/lldb/test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py
@@ -10,17 +10,9 @@ class ConsecutiveBreakpoitsTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py b/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
index 8fcd08b324a..23ccbb54078 100644
--- a/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
+++ b/lldb/test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py
@@ -12,16 +12,9 @@ class TestCPPBreakpointLocations(TestBase):
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 ()
+ def test (self):
+ self.build ()
self.breakpoint_id_tests ()
def verify_breakpoint_locations(self, target, bp_dict):
diff --git a/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py b/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
index 5078fcd24cf..aa52a2cf1a5 100644
--- a/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
+++ b/lldb/test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py
@@ -14,20 +14,11 @@ class TestCPPExceptionBreakpoint (TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py b/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py
index de532c85724..65197ed5290 100644
--- a/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py
+++ b/lldb/test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py
@@ -12,17 +12,9 @@ class BreakpointInDummyTarget (TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py b/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py
index d3549dcd293..5681b1281c7 100644
--- a/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py
+++ b/lldb/test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py
@@ -14,17 +14,9 @@ class InlinedBreakpointsTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py b/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py
index 1c823799138..6feb31a13fe 100644
--- a/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py
+++ b/lldb/test/functionalities/breakpoint/objc/TestObjCBreakpoints.py
@@ -16,17 +16,9 @@ class TestObjCBreakpoints(TestBase):
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)
diff --git a/lldb/test/functionalities/command_history/TestCommandHistory.py b/lldb/test/functionalities/command_history/TestCommandHistory.py
index 0644f4b643a..6cca992ced3 100644
--- a/lldb/test/functionalities/command_history/TestCommandHistory.py
+++ b/lldb/test/functionalities/command_history/TestCommandHistory.py
@@ -11,6 +11,7 @@ class CommandHistoryTestCase(TestBase):
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
diff --git a/lldb/test/functionalities/command_regex/TestCommandRegex.py b/lldb/test/functionalities/command_regex/TestCommandRegex.py
index 5db123c4ba9..93c0aa4fed5 100644
--- a/lldb/test/functionalities/command_regex/TestCommandRegex.py
+++ b/lldb/test/functionalities/command_regex/TestCommandRegex.py
@@ -12,6 +12,7 @@ class CommandRegexTestCase(TestBase):
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
diff --git a/lldb/test/functionalities/command_script/TestCommandScript.py b/lldb/test/functionalities/command_script/TestCommandScript.py
index 61685d833ec..40d0b694fa9 100644
--- a/lldb/test/functionalities/command_script/TestCommandScript.py
+++ b/lldb/test/functionalities/command_script/TestCommandScript.py
@@ -11,15 +11,8 @@ class CmdPythonTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/command_script/import/TestImport.py b/lldb/test/functionalities/command_script/import/TestImport.py
index 393285b7c6c..a00db8e7dfe 100644
--- a/lldb/test/functionalities/command_script/import/TestImport.py
+++ b/lldb/test/functionalities/command_script/import/TestImport.py
@@ -10,6 +10,7 @@ class ImportTestCase(TestBase):
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()
diff --git a/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py b/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py
index c3ee8ffbeed..17368197e0b 100644
--- a/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py
+++ b/lldb/test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py
@@ -10,6 +10,7 @@ class Rdar12586188TestCase(TestBase):
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()
diff --git a/lldb/test/functionalities/command_source/TestCommandSource.py b/lldb/test/functionalities/command_source/TestCommandSource.py
index 413b3446aca..122d4c69d88 100644
--- a/lldb/test/functionalities/command_source/TestCommandSource.py
+++ b/lldb/test/functionalities/command_source/TestCommandSource.py
@@ -13,6 +13,7 @@ class CommandSourceTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
+ @no_debug_info_test
def test_command_source(self):
"""Test that lldb command "command source" works correctly."""
diff --git a/lldb/test/functionalities/completion/TestCompletion.py b/lldb/test/functionalities/completion/TestCompletion.py
index 5af1edb4a50..638c8947e6f 100644
--- a/lldb/test/functionalities/completion/TestCompletion.py
+++ b/lldb/test/functionalities/completion/TestCompletion.py
@@ -22,18 +22,21 @@ class CommandLineCompletionTestCase(TestBase):
@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 @@ class CommandLineCompletionTestCase(TestBase):
# <rdar://problem/11052829>
@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 @@ class CommandLineCompletionTestCase(TestBase):
@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 @@ class CommandLineCompletionTestCase(TestBase):
@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 @@ class CommandLineCompletionTestCase(TestBase):
@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 @@ class CommandLineCompletionTestCase(TestBase):
@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)',
diff --git a/lldb/test/functionalities/conditional_break/TestConditionalBreak.py b/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
index 2ebb4719dde..4ca3a010550 100644
--- a/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
+++ b/lldb/test/functionalities/conditional_break/TestConditionalBreak.py
@@ -17,33 +17,16 @@ class ConditionalBreakTestCase(TestBase):
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):
diff --git a/lldb/test/functionalities/connect_remote/TestConnectRemote.py b/lldb/test/functionalities/connect_remote/TestConnectRemote.py
index f7c40b4b823..2486afd4832 100644
--- a/lldb/test/functionalities/connect_remote/TestConnectRemote.py
+++ b/lldb/test/functionalities/connect_remote/TestConnectRemote.py
@@ -16,6 +16,7 @@ class ConnectRemoteTestCase(TestBase):
@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]"."""
diff --git a/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py b/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py
index 092737b3ac2..4464ba0b127 100644
--- a/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py
+++ b/lldb/test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py
@@ -14,17 +14,9 @@ class DataFormatterBoolRefPtr(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
- @dsym_test
- def test_boolrefptr_with_dsym_and_run_command(self):
+ def test_boolrefptr_with_run_command(self):
"""Test the formatters we use for BOOL& and BOOL* in Objective-C."""
- self.buildDsym()
- self.boolrefptr_data_formatter_commands()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_boolrefptr_with_dwarf_and_run_command(self):
- """Test the formatters we use for BOOL& and BOOL* in Objective-C."""
- self.buildDwarf()
+ self.build()
self.boolrefptr_data_formatter_commands()
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py b/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py
index 35a5ebe7ec6..eeb5ffbcff1 100644
--- a/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py
+++ b/lldb/test/functionalities/data-formatter/compactvectors/TestCompactVectors.py
@@ -12,28 +12,16 @@ class CompactVectorsFormattingTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @skipUnlessDarwin
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py b/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
index 702563a20ae..97dcb7447b8 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
@@ -12,27 +12,15 @@ class AdvDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py b/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
index 299e3222d4a..6aa51e012b8 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
@@ -12,27 +12,15 @@ class CategoriesDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py b/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
index 6ac9d1ddee4..259abc030f2 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
@@ -12,28 +12,16 @@ class CppDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py b/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py
index 25cea2a0b01..e15f17d82ff 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py
@@ -12,28 +12,16 @@ class DataFormatterDisablingTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
+ def test_with_run_command(self):
"""Check that we can properly disable all data formatter categories."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py b/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py
index 98891e539c2..4c3d390025a 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py
@@ -12,27 +12,15 @@ class EnumFormatTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py b/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
index 0b5817fccbe..44ed11b0ed3 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py
@@ -12,27 +12,15 @@ class GlobalsDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py b/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py
index 64e68e5e320..12f59b7c2de 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py
@@ -12,27 +12,15 @@ class NamedSummariesDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py b/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
index 89ccd5f1da0..3aae3e5a201 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py
@@ -15,180 +15,81 @@ class ObjCDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
- @dsym_test
- def test_plain_objc_with_dsym_and_run_command(self):
+ def test_plain_objc_with_run_command(self):
"""Test basic ObjC formatting behavior."""
- self.buildDsym()
+ self.build()
self.plain_data_formatter_commands()
- @skipUnlessDarwin
- @dwarf_test
- def test_plain_objc_with_dwarf_and_run_command(self):
- """Test basic ObjC formatting behavior."""
- self.buildDwarf()
- self.plain_data_formatter_commands()
-
- def appkit_tester_impl(self,builder,commands):
- builder()
+ def appkit_tester_impl(self,commands):
+ self.build()
self.appkit_common_data_formatters_command()
commands()
@skipUnlessDarwin
- @dsym_test
- def test_nsnumber_with_dsym_and_run_command(self):
- """Test formatters for NSNumber."""
- self.appkit_tester_impl(self.buildDsym,self.nsnumber_data_formatter_commands)
-
- @skipUnlessDarwin
- @dwarf_test
- def test_nsnumber_with_dwarf_and_run_command(self):
+ def test_nsnumber_with_run_command(self):
"""Test formatters for NSNumber."""
- self.appkit_tester_impl(self.buildDwarf,self.nsnumber_data_formatter_commands)
-
- @skipUnlessDarwin
- @dsym_test
- def test_nscontainers_with_dsym_and_run_command(self):
- """Test formatters for NS container classes."""
- self.appkit_tester_impl(self.buildDsym,self.nscontainers_data_formatter_commands)
+ self.appkit_tester_impl(self.nsnumber_data_formatter_commands)
@skipUnlessDarwin
- @dwarf_test
- def test_nscontainers_with_dwarf_and_run_command(self):
+ def test_nscontainers_with_run_command(self):
"""Test formatters for NS container classes."""
- self.appkit_tester_impl(self.buildDwarf,self.nscontainers_data_formatter_commands)
-
-
- @skipUnlessDarwin
- @dsym_test
- def test_nsdata_with_dsym_and_run_command(self):
- """Test formatters for NSData."""
- self.appkit_tester_impl(self.buildDsym,self.nsdata_data_formatter_commands)
+ self.appkit_tester_impl(self.nscontainers_data_formatter_commands)
@skipUnlessDarwin
- @dwarf_test
- def test_nsdata_with_dwarf_and_run_command(self):
+ def test_nsdata_with_run_command(self):
"""Test formatters for NSData."""
- self.appkit_tester_impl(self.buildDwarf,self.nsdata_data_formatter_commands)
-
-
- @skipUnlessDarwin
- @dsym_test
- def test_nsurl_with_dsym_and_run_command(self):
- """Test formatters for NSURL."""
- self.appkit_tester_impl(self.buildDsym,self.nsurl_data_formatter_commands)
+ self.appkit_tester_impl(self.nsdata_data_formatter_commands)
@skipUnlessDarwin
- @dwarf_test
- def test_nsurl_with_dwarf_and_run_command(self):
+ def test_nsurl_with_run_command(self):
"""Test formatters for NSURL."""
- self.appkit_tester_impl(self.buildDwarf,self.nsurl_data_formatter_commands)
+ self.appkit_tester_impl(self.nsurl_data_formatter_commands)
@skipUnlessDarwin
- @dsym_test
- def test_nserror_with_dsym_and_run_command(self):
+ def test_nserror_with_run_command(self):
"""Test formatters for NSError."""
- self.appkit_tester_impl(self.buildDsym,self.nserror_data_formatter_commands)
-
- @skipUnlessDarwin
- @dwarf_test
- def test_nserror_with_dwarf_and_run_command(self):
- """Test formatters for NSError."""
- self.appkit_tester_impl(self.buildDwarf,self.nserror_data_formatter_commands)
+ self.appkit_tester_impl(self.nserror_data_formatter_commands)
@skipUnlessDarwin
- @dsym_test
- def test_nsbundle_with_dsym_and_run_command(self):
+ def test_nsbundle_with_run_command(self):
"""Test formatters for NSBundle."""
- self.appkit_tester_impl(self.buildDsym,self.nsbundle_data_formatter_commands)
-
- @skipUnlessDarwin
- @dwarf_test
- def test_nsbundle_with_dwarf_and_run_command(self):
- """Test formatters for NSBundle."""
- self.appkit_tester_impl(self.buildDwarf,self.nsbundle_data_formatter_commands)
+ self.appkit_tester_impl(self.nsbundle_data_formatter_commands)
@skipUnlessDarwin
- @dsym_test
- def test_nsexception_with_dsym_and_run_command(self):
+ def test_nsexception_with_run_command(self):
"""Test formatters for NSException."""
- self.appkit_tester_impl(self.buildDsym,self.nsexception_data_formatter_commands)
+ self.appkit_tester_impl(self.nsexception_data_formatter_commands)
@skipUnlessDarwin
- @dwarf_test
- def test_nsexception_with_dwarf_and_run_command(self):
- """Test formatters for NSException."""
- self.appkit_tester_impl(self.buildDwarf,self.nsexception_data_formatter_commands)
-
-
- @skipUnlessDarwin
- @dsym_test
- def test_nsmisc_with_dsym_and_run_command(self):
- """Test formatters for misc NS classes."""
- self.appkit_tester_impl(self.buildDsym,self.nsmisc_data_formatter_commands)
-
- @skipUnlessDarwin
- @dwarf_test
- def test_nsmisc_with_dwarf_and_run_command(self):
+ def test_nsmisc_with_run_command(self):
"""Test formatters for misc NS classes."""
- self.appkit_tester_impl(self.buildDwarf,self.nsmisc_data_formatter_commands)
+ self.appkit_tester_impl(self.nsmisc_data_formatter_commands)
@skipUnlessDarwin
- @dsym_test
- def test_nsdate_with_dsym_and_run_command(self):
+ def test_nsdate_with_run_command(self):
"""Test formatters for NSDate."""
- self.appkit_tester_impl(self.buildDsym,self.nsdate_data_formatter_commands)
-
- @skipUnlessDarwin
- @dwarf_test
- def test_nsdate_with_dwarf_and_run_command(self):
- """Test formatters for NSDate."""
- self.appkit_tester_impl(self.buildDwarf,self.nsdate_data_formatter_commands)
-
-
- @skipUnlessDarwin
- @dsym_test
- def test_coreframeworks_with_dsym_and_run_command(self):
- """Test formatters for Core OSX frameworks."""
- self.buildDsym()
- self.cf_data_formatter_commands()
+ self.appkit_tester_impl(self.nsdate_data_formatter_commands)
@skipUnlessDarwin
- @dwarf_test
- def test_coreframeworks_with_dwarf_and_run_command(self):
+ def test_coreframeworks_and_run_command(self):
"""Test formatters for Core OSX frameworks."""
- self.buildDwarf()
+ self.build()
self.cf_data_formatter_commands()
@skipUnlessDarwin
- @dsym_test
- def test_kvo_with_dsym_and_run_command(self):
+ def test_kvo_with_run_command(self):
"""Test the behavior of formatters when KVO is in use."""
- self.buildDsym()
+ self.build()
self.kvo_data_formatter_commands()
@skipUnlessDarwin
- @dwarf_test
- def test_kvo_with_dwarf_and_run_command(self):
- """Test the behavior of formatters when KVO is in use."""
- self.buildDwarf()
- self.kvo_data_formatter_commands()
-
- @skipUnlessDarwin
- @dsym_test
- def test_expr_with_dsym_and_run_command(self):
- """Test common cases of expression parser <--> formatters interaction."""
- self.buildDsym()
- self.expr_objc_data_formatter_commands()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_expr_with_dwarf_and_run_command(self):
+ def test_expr_with_run_command(self):
"""Test common cases of expression parser <--> formatters interaction."""
- self.buildDwarf()
+ self.build()
self.expr_objc_data_formatter_commands()
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py b/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py
index 563ba5a21bb..fb0442957ce 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py
@@ -14,8 +14,8 @@ class NSStringDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def appkit_tester_impl(self,builder,commands):
- builder()
+ def appkit_tester_impl(self,commands):
+ 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)
@@ -40,40 +40,19 @@ class NSStringDataFormatterTestCase(TestBase):
commands()
@skipUnlessDarwin
- @dsym_test
- def test_nsstring_with_dsym_and_run_command(self):
+ def test_nsstring_with_run_command(self):
"""Test formatters for NSString."""
- self.appkit_tester_impl(self.buildDsym,self.nsstring_data_formatter_commands)
+ self.appkit_tester_impl(self.nsstring_data_formatter_commands)
@skipUnlessDarwin
- @dwarf_test
- def test_nsstring_with_dwarf_and_run_command(self):
- """Test formatters for NSString."""
- self.appkit_tester_impl(self.buildDwarf,self.nsstring_data_formatter_commands)
-
- @skipUnlessDarwin
- @dsym_test
- def test_rdar11106605_with_dsym_and_run_command(self):
+ def test_rdar11106605_with_run_command(self):
"""Check that Unicode characters come out of CFString summary correctly."""
- self.appkit_tester_impl(self.buildDsym,self.rdar11106605_commands)
-
- @skipUnlessDarwin
- @dwarf_test
- def test_rdar11106605_with_dwarf_and_run_command(self):
- """Check that Unicode characters come out of CFString summary correctly."""
- self.appkit_tester_impl(self.buildDwarf,self.rdar11106605_commands)
-
- @skipUnlessDarwin
- @dsym_test
- def test_nsstring_withNULs_with_dsym_and_run_command(self):
- """Test formatters for NSString."""
- self.appkit_tester_impl(self.buildDsym,self.nsstring_withNULs_commands)
+ self.appkit_tester_impl(self.rdar11106605_commands)
@skipUnlessDarwin
- @dwarf_test
- def test_nsstring_withNULS_with_dwarf_and_run_command(self):
+ def test_nsstring_withNULS_with_run_command(self):
"""Test formatters for NSString."""
- self.appkit_tester_impl(self.buildDwarf,self.nsstring_withNULs_commands)
+ self.appkit_tester_impl(self.nsstring_withNULs_commands)
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py b/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
index b3cbeb43e10..42e1c469b5d 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
@@ -14,17 +14,9 @@ class DataFormatterOneIsSingularTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
- @dsym_test
- def test_one_is_singular_with_dsym_and_run_command(self):
+ def test_one_is_singular_with_run_command(self):
"""Test that 1 item is not as reported as 1 items."""
- self.buildDsym()
- self.oneness_data_formatter_commands()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_one_is_singular_with_dwarf_and_run_command(self):
- """Test that 1 item is not as reported as 1 items."""
- self.buildDwarf()
+ self.build()
self.oneness_data_formatter_commands()
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py b/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py
index 5f8997984f5..172cfdd1a8d 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py
@@ -12,17 +12,9 @@ class PtrToArrayDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
+ def test_with_run_command(self):
"""Test that LLDB handles the clang typeclass Paren correctly."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that LLDB handles the clang typeclass Paren correctly."""
- self.buildDwarf()
+ self.build()
self.data_formatter_commands()
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py b/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
index fad6d4a05b1..f6a3e2d14d4 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
@@ -12,31 +12,15 @@ class PythonSynthDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@skipIfFreeBSD # llvm.org/pr20545 bogus output confuses buildbot parser
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
+ def test_with_run_command(self):
"""Test data formatter commands."""
- self.buildDwarf()
+ self.build()
self.data_formatter_commands()
- @skipUnlessDarwin
- @dsym_test
- def test_rdar10960550_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.rdar10960550_formatter_commands()
-
- @dwarf_test
- def test_rdar10960550_with_dwarf_and_run_command(self):
+ def test_rdar10960550_with_run_command(self):
"""Test data formatter commands."""
- self.buildDwarf()
+ self.build()
self.rdar10960550_formatter_commands()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py b/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py
index a23fa2c9adc..4eecda472c0 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py
@@ -12,17 +12,9 @@ class ScriptDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
+ def test_with_run_command(self):
"""Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
+ self.build()
self.data_formatter_commands()
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py b/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
index 2d56af303fc..5ef92574c51 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
@@ -12,19 +12,11 @@ class SkipSummaryDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
@expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
+ def test_with_run_command(self):
"""Test data formatter commands."""
- self.buildDwarf()
+ self.build()
self.data_formatter_commands()
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py b/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py
index 1984cf09c5e..e4eb325bbcc 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py
@@ -12,18 +12,10 @@ class SmartArrayDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
@expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
- def test_with_dwarf_and_run_command(self):
+ def test_with_run_command(self):
"""Test data formatter commands."""
- self.buildDwarf()
+ self.build()
self.data_formatter_commands()
def setUp(self):
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
index 6b9c875ac44..7abb6eded71 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
@@ -12,28 +12,12 @@ class InitializerListTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@skipIfWindows # libc++ not ported to Windows yet
@skipIfGcc
@expectedFailureLinux # fails on clang 3.5 and tot
- @dwarf_test
- def test_with_dwarf(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def data_formatter_commands(self):
+ def test(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
index 2e4c43b4108..82ff6d131bb 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
@@ -12,29 +12,17 @@ class LibcxxIteratorDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @skipIfGcc
- @skipIfWindows # libc++ not ported to Windows yet
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @skipIfGcc
+ @skipIfWindows # libc++ not ported to Windows yet
+ def test_with_run_command(self):
"""Test that libc++ iterators format properly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
index c1b10a09371..3390ae3d01c 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
@@ -12,21 +12,6 @@ class LibcxxListDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @skipIfGcc
- @skipIfWindows # libc++ not ported to Windows yet
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -36,8 +21,11 @@ class LibcxxListDataFormatterTestCase(TestBase):
self.line3 = line_number('main.cpp', '// Set third break point at this line.')
self.line4 = line_number('main.cpp', '// Set fourth break point at this line.')
- def data_formatter_commands(self):
+ @skipIfGcc
+ @skipIfWindows # libc++ not ported to Windows yet
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
index 934d03afa2f..25565bf4045 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
@@ -12,27 +12,11 @@ class LibcxxMapDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@skipIfGcc
@skipIfWindows # libc++ not ported to Windows yet
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py
index 36dfa583d1e..ebd74fb839f 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py
@@ -12,27 +12,11 @@ class LibcxxMultiMapDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@skipIfWindows # libc++ not ported to Windows yet
@skipIfGcc
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py
index 16e377936dd..68d1c9e77ed 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py
@@ -12,27 +12,11 @@ class LibcxxMultiSetDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@skipIfGcc
@skipIfWindows # libc++ not ported to Windows yet
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py
index 5b034e987ed..e6ceff983b5 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py
@@ -12,27 +12,11 @@ class LibcxxSetDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@skipIfGcc
@skipIfWindows # libc++ not ported to Windows yet
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
index 448c33344bb..ee050cdfd56 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
@@ -13,29 +13,17 @@ class LibcxxStringDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @skipIfGcc
- @skipIfWindows # libc++ not ported to Windows yet
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @skipIfGcc
+ @skipIfWindows # libc++ not ported to Windows yet
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py
index 6399fce99a4..04caa51b98c 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py
@@ -12,31 +12,11 @@ class LibcxxUnorderedDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
@skipIfWindows # libc++ not ported to Windows yet
@skipIfGcc
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def look_for_content_and_continue(self, var_name, patterns):
- self.expect( ("frame variable %s" % var_name), patterns=patterns)
- self.runCmd("continue")
-
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
@@ -87,6 +67,10 @@ class LibcxxUnorderedDataFormatterTestCase(TestBase):
['size=5 {', '(\[\d\] = "is"(\\n|.)+){2}',
'(\[\d\] = "world"(\\n|.)+){2}'])
+ def look_for_content_and_continue(self, var_name, patterns):
+ self.expect( ("frame variable %s" % var_name), patterns=patterns)
+ self.runCmd("continue")
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py
index 99ca5da7cd1..92368d13225 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py
@@ -12,29 +12,17 @@ class LibcxxVBoolDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @skipIfGcc
- @skipIfWindows # libc++ not ported to Windows.
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @skipIfGcc
+ @skipIfWindows # libc++ not ported to Windows.
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
index a6ac38ee621..5cec93ed61e 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
@@ -12,27 +12,11 @@ class LibcxxVectorDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
@skipIfGcc
@skipIfWindows # libc++ not ported to Windows yet
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py
index ea835a7833f..9b830787152 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py
@@ -12,30 +12,18 @@ class StdIteratorDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- @skipIfWindows # libstdcpp not ported to Windows
- @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
- @expectedFailureIcc # llvm.org/pr15301 LLDB prints incorrect sizes of STL containers
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @skipIfWindows # libstdcpp not ported to Windows
+ @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
+ @expectedFailureIcc # llvm.org/pr15301 LLDB prints incorrect sizes of STL containers
+ def test_with_run_command(self):
"""Test that libstdcpp iterators format properly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=-1)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py
index 1d1202a0677..f82caa85a4b 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py
@@ -12,21 +12,6 @@ class StdListDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- @skipIfWindows # libstdcpp not ported to Windows
- @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -35,8 +20,11 @@ class StdListDataFormatterTestCase(TestBase):
self.optional_line = line_number('main.cpp', '// Optional break point at this line.')
self.final_line = line_number('main.cpp', '// Set final break point at this line.')
- def data_formatter_commands(self):
+ @skipIfWindows # libstdcpp not ported to Windows
+ @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=-1)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
index c80a3c2427d..0a2cdf1c0c0 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py
@@ -12,30 +12,18 @@ class StdMapDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @expectedFailureIcc # llvm.org/pr15301: LLDB prints incorrect size of libstdc++ containers
- @skipIfWindows # libstdcpp not ported to Windows
- @skipIfFreeBSD
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @expectedFailureIcc # llvm.org/pr15301: LLDB prints incorrect size of libstdc++ containers
+ @skipIfWindows # libstdcpp not ported to Windows
+ @skipIfFreeBSD
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_source_regexp (self, "Set break point at this line.")
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
index 5c0c2498954..b34e0e430bf 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py
@@ -13,29 +13,17 @@ class StdStringDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
- @skipIfWindows # libstdcpp not ported to Windows
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
+ @skipIfWindows # libstdcpp not ported to Windows
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=-1)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
index b8052dc8326..ec34c528ad3 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py
@@ -12,32 +12,19 @@ class StdVBoolDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @skipIfDarwin
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
- @dwarf_test
- @skipIfWindows # libstdcpp not ported to Windows.
- @skipIfDarwin
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
+ @expectedFailureFreeBSD("llvm.org/pr20548") # fails to build on lab.llvm.org buildbot
@expectedFailureIcc # llvm.org/pr15301: lldb does not print the correct sizes of STL containers when building with ICC
- def data_formatter_commands(self):
+ @skipIfWindows # libstdcpp not ported to Windows.
+ @skipIfDarwin
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=-1)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
index 9c74cac3c3c..c268317144b 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py
@@ -12,30 +12,18 @@ class StdVectorDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- @skipIfFreeBSD
- @expectedFailureIcc # llvm.org/pr15301 LLDB prints incorrect sizes of STL containers
- @skipIfWindows # libstdcpp not ported to Windows
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @skipIfFreeBSD
+ @expectedFailureIcc # llvm.org/pr15301 LLDB prints incorrect sizes of STL containers
+ @skipIfWindows # libstdcpp not ported to Windows
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_source_regexp (self, "Set break point at this line.")
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py b/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py
index 6592641cde2..dc125366da0 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py
@@ -12,28 +12,16 @@ class SynthDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- @expectedFailureAll("llvm.org/pr23139", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["x86_64","i386"])
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ @expectedFailureAll("llvm.org/pr23139", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["x86_64","i386"])
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py b/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
index a7dd95ad220..cdff8e4b745 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py
@@ -12,29 +12,17 @@ class DataFormatterSynthValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test using Python synthetic children provider to provide a value."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @skipIfFreeBSD # llvm.org/pr20545 bogus output confuses buildbot parser
- @expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test using Python synthetic children provider to provide a value."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', 'break here')
- def data_formatter_commands(self):
+ @skipIfFreeBSD # llvm.org/pr20545 bogus output confuses buildbot parser
+ @expectedFailureWindows("llvm.org/pr24462") # Data formatters have problems on Windows
+ def test_with_run_command(self):
"""Test using Python synthetic children provider to provide a value."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py b/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py
index cc670569d72..6a949ff0373 100644
--- a/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py
+++ b/lldb/test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py
@@ -12,29 +12,16 @@ class FormatPropagationTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- # rdar://problem/14035604
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Check if changing Format on an SBValue correctly propagates that new format to children as it should"""
- self.buildDsym()
- self.propagate_test_commands()
-
- # rdar://problem/14035604
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Check if changing Format on an SBValue correctly propagates that new format to children as it should"""
- self.buildDwarf()
- self.propagate_test_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def propagate_test_commands(self):
+ # rdar://problem/14035604
+ def test_with_run_command(self):
"""Check for an issue where capping does not work because the Target pointer appears to be changing behind our backs."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py b/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py
index 7580a5f86b7..1e9008ac7db 100644
--- a/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py
+++ b/lldb/test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py
@@ -12,27 +12,15 @@ class FrameFormatSmallStructTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that the user can input a format but it will not prevail over summary format's choices."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that the user can input a format but it will not prevail over summary format's choices."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that the user can input a format but it will not prevail over summary format's choices."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py b/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py
index de283da9c6c..dc486c7bf2a 100644
--- a/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py
+++ b/lldb/test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py
@@ -12,27 +12,15 @@ class DataFormatterHexCapsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py b/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py
index 08260c5e787..a5f01088e14 100644
--- a/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py
+++ b/lldb/test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py
@@ -13,28 +13,16 @@ class NSArraySyntheticTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_rdar11086338_with_dsym_and_run_command(self):
- """Test that NSArray reports its synthetic children properly."""
- self.buildDsym()
- self.rdar11086338_tester()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_rdar11086338_with_dwarf_and_run_command(self):
- """Test that NSArray reports its synthetic children properly."""
- self.buildDwarf()
- self.rdar11086338_tester()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.m', '// Set break point at this line.')
- def rdar11086338_tester(self):
+ @skipUnlessDarwin
+ def test_rdar11086338_with_run_command(self):
"""Test that NSArray reports its synthetic children properly."""
+ 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)
diff --git a/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py b/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
index 032ca1cf7a5..188c450fb29 100644
--- a/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
+++ b/lldb/test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
@@ -13,28 +13,16 @@ class NSDictionarySyntheticTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_rdar11988289_with_dsym_and_run_command(self):
- """Test that NSDictionary reports its synthetic children properly."""
- self.buildDsym()
- self.rdar11988289_tester()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_rdar11988289_with_dwarf_and_run_command(self):
- """Test that NSDictionary reports its synthetic children properly."""
- self.buildDwarf()
- self.rdar11988289_tester()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.m', '// Set break point at this line.')
- def rdar11988289_tester(self):
+ @skipUnlessDarwin
+ def test_rdar11988289_with_run_command(self):
"""Test that NSDictionary reports its synthetic children properly."""
+ 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)
diff --git a/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py b/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
index de1138d2a45..5a5203c0998 100644
--- a/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
+++ b/lldb/test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
@@ -13,28 +13,16 @@ class NSSetSyntheticTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_rdar12529957_with_dsym_and_run_command(self):
- """Test that NSSet reports its synthetic children properly."""
- self.buildDsym()
- self.rdar12529957_tester()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_rdar12529957_with_dwarf_and_run_command(self):
- """Test that NSSet reports its synthetic children properly."""
- self.buildDwarf()
- self.rdar12529957_tester()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.m', '// Set break point at this line.')
- def rdar12529957_tester(self):
+ @skipUnlessDarwin
+ def test_rdar12529957_with_run_command(self):
"""Test that NSSet reports its synthetic children properly."""
+ 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)
diff --git a/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersBoolRefPtr.py b/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersBoolRefPtr.py
index f0584c89ed2..afca9bd0493 100644
--- a/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersBoolRefPtr.py
+++ b/lldb/test/functionalities/data-formatter/ostypeformatting/TestFormattersBoolRefPtr.py
@@ -13,28 +13,16 @@ class DataFormatterOSTypeTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_ostype_with_dsym_and_run_command(self):
- """Test the formatters we use for OSType."""
- self.buildDsym()
- self.ostype_data_formatter_commands()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_ostype_with_dwarf_and_run_command(self):
- """Test the formatters we use for OSType."""
- self.buildDwarf()
- self.ostype_data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.mm', '// Set break point at this line.')
- def ostype_data_formatter_commands(self):
+ @skipUnlessDarwin
+ def test_ostype_with_run_command(self):
"""Test the formatters we use for OSType."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.mm", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py b/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py
index ad086e6e1a9..7bac2cfae21 100644
--- a/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py
+++ b/lldb/test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py
@@ -12,27 +12,15 @@ class PtrRef2TypedefTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set breakpoint here')
-
- def data_formatter_commands(self):
+
+ def test_with_run_command(self):
"""Test that a pointer/reference to a typedef is formatted as we want."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py b/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py
index 237099d7bdd..e9927f13b1a 100644
--- a/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py
+++ b/lldb/test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py
@@ -12,27 +12,15 @@ class DataFormatterRefPtrRecursionTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that ValueObjectPrinter does not cause an infinite loop when a reference to a struct that contains a pointer to itself is printed."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that ValueObjectPrinter does not cause an infinite loop when a reference to a struct that contains a pointer to itself is printed."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that ValueObjectPrinter does not cause an infinite loop when a reference to a struct that contains a pointer to itself is printed."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py b/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py
index 326edf1a5a9..6dc9e1216a2 100644
--- a/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py
+++ b/lldb/test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py
@@ -13,27 +13,15 @@ class Radar9974002DataFormatterTestCase(TestBase):
# test for rdar://problem/9974002 ()
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
if "clang" in self.getCompiler() and "3.4" in self.getCompilerVersion():
self.skipTest("llvm.org/pr16214 -- clang emits partial DWARF for structures referenced via typedef")
diff --git a/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py b/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py
index b054d487b01..bf18d44b2cc 100644
--- a/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py
+++ b/lldb/test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py
@@ -12,27 +12,15 @@ class SyntheticCappingTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Check for an issue where capping does not work because the Target pointer appears to be changing behind our backs."""
- self.buildDsym()
- self.capping_test_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Check for an issue where capping does not work because the Target pointer appears to be changing behind our backs."""
- self.buildDwarf()
- self.capping_test_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def capping_test_commands(self):
+ def test_with_run_command(self):
"""Check for an issue where capping does not work because the Target pointer appears to be changing behind our backs."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py b/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py
index fd24740c3cd..eb3859c8106 100644
--- a/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py
+++ b/lldb/test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py
@@ -13,28 +13,16 @@ class SyntheticFilterRecomputingTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_rdar12437442_with_dsym_and_run_command(self):
- """Test that we update SBValues correctly as dynamic types change."""
- self.buildDsym()
- self.rdar12437442_tester()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_rdar12437442_with_dwarf_and_run_command(self):
- """Test that we update SBValues correctly as dynamic types change."""
- self.buildDwarf()
- self.rdar12437442_tester()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.m', '// Set break point at this line.')
- def rdar12437442_tester(self):
+ @skipUnlessDarwin
+ def test_rdar12437442_with_run_command(self):
"""Test that we update SBValues correctly as dynamic types change."""
+ 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)
diff --git a/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py b/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py
index 7650c23bb51..63beed23274 100644
--- a/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py
+++ b/lldb/test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py
@@ -12,27 +12,15 @@ class UserFormatVSSummaryTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that the user can input a format but it will not prevail over summary format's choices."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that the user can input a format but it will not prevail over summary format's choices."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that the user can input a format but it will not prevail over summary format's choices."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py b/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py
index ffa2fc9177c..d3eaa1dbb35 100644
--- a/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py
+++ b/lldb/test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py
@@ -12,28 +12,15 @@ class VarInAggregateMisuseTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
-
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def data_formatter_commands(self):
+ def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py b/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py
index 66f597d3493..777dc29cb3e 100644
--- a/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py
+++ b/lldb/test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py
@@ -13,28 +13,16 @@ class PythonSynthDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test data formatter commands."""
- self.buildDsym()
- self.data_formatter_commands()
-
- @skipIfFreeBSD # llvm.org/pr20545 bogus output confuses buildbot parser
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test data formatter commands."""
- self.buildDwarf()
- self.data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', ' // Set breakpoint here.')
- def data_formatter_commands(self):
+ @skipIfFreeBSD # llvm.org/pr20545 bogus output confuses buildbot parser
+ def test_with_run_command(self):
"""Test using Python synthetic children provider."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py b/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py
index 61f96312cd6..58a31cedd0a 100644
--- a/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py
+++ b/lldb/test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py
@@ -12,30 +12,17 @@ class VectorTypesFormattingTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- # rdar://problem/14035604
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Check that vector types format properly"""
- self.buildDsym()
- self.propagate_test_commands()
-
- # rdar://problem/14035604
- @dwarf_test
- @skipIf(compiler='gcc') # gcc don't have ext_vector_type extension
- def test_with_dwarf_and_run_command(self):
- """Check that vector types format properly"""
- self.buildDwarf()
- self.propagate_test_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// break here')
- def propagate_test_commands(self):
+ # rdar://problem/14035604
+ @skipIf(compiler='gcc') # gcc don't have ext_vector_type extension
+ def test_with_run_command(self):
"""Check that vector types format properly"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/dead-strip/TestDeadStrip.py b/lldb/test/functionalities/dead-strip/TestDeadStrip.py
index 27e6480431b..a9e24b5733c 100644
--- a/lldb/test/functionalities/dead-strip/TestDeadStrip.py
+++ b/lldb/test/functionalities/dead-strip/TestDeadStrip.py
@@ -12,23 +12,11 @@ class DeadStripTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test breakpoint works correctly with dead-code stripping."""
- self.buildDsym()
- self.dead_strip()
-
@expectedFailureWindows("llvm.org/pr24778")
@skipIfFreeBSD # The -dead_strip linker option isn't supported on FreeBSD versions of ld.
- @dwarf_test
- def test_with_dwarf(self):
- """Test breakpoint works correctly with dead-code stripping."""
- self.buildDwarf()
- self.dead_strip()
-
- def dead_strip(self):
+ def test(self):
"""Test breakpoint works correctly with dead-code stripping."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py b/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py
index 3d71f305d4e..fe7e3d674d7 100644
--- a/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py
+++ b/lldb/test/functionalities/disassembly/TestDisassembleBreakpoint.py
@@ -12,19 +12,9 @@ class DisassemblyTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
- self.buildDsym ()
- self.disassemble_breakpoint ()
-
- @dwarf_test
@expectedFailureWindows # Function name prints fully demangled instead of name-only
- def test_with_dwarf (self):
- self.buildDwarf ()
- self.disassemble_breakpoint ()
-
- def disassemble_breakpoint (self):
+ def test(self):
+ self.build()
exe = os.path.join (os.getcwd(), "a.out")
self.expect("file " + exe,
patterns = [ "Current executable set to .*a.out.*" ])
diff --git a/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py b/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py
index 4fad3afc031..e6702638119 100644
--- a/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py
+++ b/lldb/test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py
@@ -12,26 +12,6 @@ class DynamicValueChildCountTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- @expectedFailurei386("to be figured out")
- def test_get_dynamic_vals_with_dsym(self):
- """Test fetching C++ dynamic values from pointers & references."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.do_get_dynamic_vals()
-
- @expectedFailureLinux("llvm.org/pr23039")
- @expectedFailureFreeBSD("llvm.org/pr19311") # continue at a breakpoint does not work
- @expectedFailureWindows("llvm.org/pr24663")
- @python_api_test
- @dwarf_test
- @expectedFailurei386("to be figured out")
- def test_get_dynamic_vals_with_dwarf(self):
- """Test fetching C++ dynamic values from pointers & references."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.do_get_dynamic_vals()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -47,11 +27,15 @@ class DynamicValueChildCountTestCase(TestBase):
self.main_sixth_call_line = line_number('pass-to-base.cpp',
'// Break here and check b has 0 children again')
-
-
-
- def do_get_dynamic_vals(self):
+ @expectedFailureLinux("llvm.org/pr23039")
+ @expectedFailureFreeBSD("llvm.org/pr19311") # continue at a breakpoint does not work
+ @expectedFailureWindows("llvm.org/pr24663")
+ @expectedFailurei386("to be figured out")
+ @python_api_test
+ def test_get_dynamic_vals(self):
+ """Test fetching C++ dynamic values from pointers & references."""
"""Get argument vals for the call stack when stopped on a breakpoint."""
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
diff --git a/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py b/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py
index 8b1ef5fbb94..0f66a3e7cb9 100644
--- a/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py
+++ b/lldb/test/functionalities/embedded_interpreter/TestConvenienceVariables.py
@@ -9,32 +9,19 @@ class ConvenienceVariablesCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @skipIfRemote
- def test_with_dsym_and_run_command(self):
- """Test convenience variables lldb.debugger, lldb.target, lldb.process, lldb.thread, and lldb.frame."""
- self.buildDsym()
- self.convenience_variables()
-
- @dwarf_test
- @skipIfFreeBSD # llvm.org/pr17228
- @skipIfRemote
- @expectedFailureAll("llvm.org/pr23560", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["i386"])
- @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows")
- def test_with_dwarf_and_run_commands(self):
- """Test convenience variables lldb.debugger, lldb.target, lldb.process, lldb.thread, and lldb.frame."""
- self.buildDwarf()
- self.convenience_variables()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break on inside main.cpp.
self.line = line_number('main.c', 'Hello world.')
- def convenience_variables(self):
+ @skipIfFreeBSD # llvm.org/pr17228
+ @skipIfRemote
+ @expectedFailureAll("llvm.org/pr23560", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["i386"])
+ @expectedFailureWindows("llvm.org/pr22274: need a pexpect replacement for windows")
+ def test_with_run_commands(self):
"""Test convenience variables lldb.debugger, lldb.target, lldb.process, lldb.thread, and lldb.frame."""
+ self.build()
import pexpect
exe = os.path.join(os.getcwd(), "a.out")
prompt = "(lldb) "
diff --git a/lldb/test/functionalities/exec/TestExec.py b/lldb/test/functionalities/exec/TestExec.py
index e5d19583ee3..c81ebefafb1 100644
--- a/lldb/test/functionalities/exec/TestExec.py
+++ b/lldb/test/functionalities/exec/TestExec.py
@@ -21,35 +21,19 @@ class ExecTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
- if self.getArchitecture() == 'x86_64':
- source = os.path.join (os.getcwd(), "main.cpp")
- o_file = os.path.join (os.getcwd(), "main.o")
- execute_command ("'%s' -g -O0 -arch i386 -arch x86_64 '%s' -c -o '%s'" % (os.environ["CC"], source, o_file))
- execute_command ("'%s' -g -O0 -arch i386 -arch x86_64 '%s'" % (os.environ["CC"], o_file))
- else:
- self.buildDsym()
- self.do_test ()
-
-
@skipUnlessDarwin
- @dwarf_test
- def test_with_dwarf (self):
+ def test(self):
if self.getArchitecture() == 'x86_64':
source = os.path.join (os.getcwd(), "main.cpp")
o_file = os.path.join (os.getcwd(), "main.o")
- dsym_path = os.path.join (os.getcwd(), "a.out.dSYM")
execute_command ("'%s' -g -O0 -arch i386 -arch x86_64 '%s' -c -o '%s'" % (os.environ["CC"], source, o_file))
execute_command ("'%s' -g -O0 -arch i386 -arch x86_64 '%s'" % (os.environ["CC"], o_file))
- execute_command ("rm -rf '%s'" % (dsym_path))
+ if self.debug_info != "dsym":
+ dsym_path = os.path.join (os.getcwd(), "a.out.dSYM")
+ execute_command ("rm -rf '%s'" % (dsym_path))
else:
- self.buildDwarf()
- self.do_test ()
+ self.build()
- def do_test (self):
exe = os.path.join (os.getcwd(), "a.out")
# Create the target
diff --git a/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py b/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
index 19faf2a2b1b..76677ff2afb 100644
--- a/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
+++ b/lldb/test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py
@@ -15,28 +15,12 @@ class ExprDoesntDeadlockTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that expr will time out and allow other threads to run if it blocks - with dsym."""
- self.buildDsym()
- self.expr_doesnt_deadlock()
-
- @dwarf_test
@expectedFailureFreeBSD('llvm.org/pr17946')
@expectedFlakeyLinux # failed 1/365 test runs, line 61, thread.IsValid()
@expectedFailureWindows # Windows doesn't have pthreads, need to port this test.
- def test_with_dwarf_and_run_command(self):
- """Test that expr will time out and allow other threads to run if it blocks."""
- self.buildDwarf()
- self.expr_doesnt_deadlock()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def expr_doesnt_deadlock (self):
+ def test_with_run_command(self):
"""Test that expr will time out and allow other threads to run if it blocks."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/functionalities/fat_archives/TestFatArchives.py b/lldb/test/functionalities/fat_archives/TestFatArchives.py
index dc31738df2b..d4be28f7a56 100644
--- a/lldb/test/functionalities/fat_archives/TestFatArchives.py
+++ b/lldb/test/functionalities/fat_archives/TestFatArchives.py
@@ -22,8 +22,7 @@ class FatArchiveTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
- @dwarf_test
- def test_with_dwarf (self):
+ def test (self):
if self.getArchitecture() == 'x86_64':
execute_command ("make CC='%s'" % (os.environ["CC"]))
self.main ()
diff --git a/lldb/test/functionalities/format/TestFormats.py b/lldb/test/functionalities/format/TestFormats.py
index a3ddf3f292d..878f276b234 100644
--- a/lldb/test/functionalities/format/TestFormats.py
+++ b/lldb/test/functionalities/format/TestFormats.py
@@ -14,7 +14,7 @@ class TestFormats(TestBase):
@expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows")
def test_formats(self):
"""Test format string functionality."""
- self.buildDwarf ()
+ self.build()
import pexpect
prompt = "(lldb) "
child = pexpect.spawn('%s %s -x -o "b main" -o r a.out' % (lldbtest_config.lldbExec, self.lldbOption))
diff --git a/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py b/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py
index 31cfebff276..de74b7171d3 100644
--- a/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py
+++ b/lldb/test/functionalities/inferior-assert/TestInferiorAssert.py
@@ -9,70 +9,46 @@ class AssertingInferiorTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- def test_inferior_asserting_dsym(self):
- """Test that lldb reliably catches the inferior asserting (command)."""
- self.buildDsym()
- self.inferior_asserting()
-
@expectedFailurei386("llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly")
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
- def test_inferior_asserting_dwarf(self):
+ def test_inferior_asserting(self):
"""Test that lldb reliably catches the inferior asserting (command)."""
- self.buildDwarf()
+ self.build()
self.inferior_asserting()
- @skipUnlessDarwin
- def test_inferior_asserting_registers_dsym(self):
- """Test that lldb reliably reads registers from the inferior after asserting (command)."""
- self.buildDsym()
- self.inferior_asserting_registers()
-
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
@expectedFailureAndroid(api_levels=range(16 + 1)) # b.android.com/179836
- def test_inferior_asserting_register_dwarf(self):
+ def test_inferior_asserting_register(self):
"""Test that lldb reliably reads registers from the inferior after asserting (command)."""
- self.buildDwarf()
+ self.build()
self.inferior_asserting_registers()
@expectedFailurei386("llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly")
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
def test_inferior_asserting_disassemble(self):
"""Test that lldb reliably disassembles frames after asserting (command)."""
- self.buildDefault()
+ self.build()
self.inferior_asserting_disassemble()
@python_api_test
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
def test_inferior_asserting_python(self):
"""Test that lldb reliably catches the inferior asserting (Python API)."""
- self.buildDefault()
+ self.build()
self.inferior_asserting_python()
- @skipUnlessDarwin
- def test_inferior_asserting_expr_dsym(self):
- """Test that the lldb expression interpreter can read from the inferior after asserting (command)."""
- self.buildDsym()
- self.inferior_asserting_expr()
-
@expectedFailurei386('llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly')
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
- def test_inferior_asserting_expr_dwarf(self):
+ def test_inferior_asserting_expr(self):
"""Test that the lldb expression interpreter can read from the inferior after asserting (command)."""
- self.buildDwarf()
+ self.build()
self.inferior_asserting_expr()
- @skipUnlessDarwin
- def test_inferior_asserting_step_dsym(self):
- """Test that lldb functions correctly after stepping through a call to assert()."""
- self.buildDsym()
- self.inferior_asserting_step()
-
@expectedFailurei386("llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly")
@expectedFailureWindows("llvm.org/pr21793: need to implement support for detecting assertion / abort on Windows")
- def test_inferior_asserting_step_dwarf(self):
+ def test_inferior_asserting_step(self):
"""Test that lldb functions correctly after stepping through a call to assert()."""
- self.buildDwarf()
+ self.build()
self.inferior_asserting_step()
def set_breakpoint(self, line):
diff --git a/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py b/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
index 5f47be70774..cd13b803c1a 100644
--- a/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
+++ b/lldb/test/functionalities/inferior-changed/TestInferiorChanged.py
@@ -10,21 +10,10 @@ class ChangedInferiorTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- def test_inferior_crashing_dsym(self):
- """Test lldb reloads the inferior after it was changed during the session."""
- self.buildDsym()
- self.inferior_crashing()
- self.cleanup()
- d = {'C_SOURCES': 'main2.c'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.inferior_not_crashing()
-
@skipIfHostWindows
- def test_inferior_crashing_dwarf(self):
+ def test_inferior_crashing(self):
"""Test lldb reloads the inferior after it was changed during the session."""
- self.buildDwarf()
+ self.build()
self.inferior_crashing()
self.cleanup()
# lldb needs to recognize the inferior has changed. If lldb needs to check the
@@ -32,7 +21,7 @@ class ChangedInferiorTestCase(TestBase):
# 1 second delay.
time.sleep(1)
d = {'C_SOURCES': 'main2.c'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.inferior_not_crashing()
diff --git a/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py b/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py
index c300deea1ed..40d76884d88 100644
--- a/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py
+++ b/lldb/test/functionalities/inferior-crashing/TestInferiorCrashing.py
@@ -9,88 +9,52 @@ class CrashingInferiorTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- def test_inferior_crashing_dsym(self):
- """Test that lldb reliably catches the inferior crashing (command)."""
- self.buildDsym()
- self.inferior_crashing()
-
@expectedFailureFreeBSD("llvm.org/pr23699 SIGSEGV is reported as exception, not signal")
@expectedFailureWindows("llvm.org/pr24778") # This actually works, but the test relies on the output format instead of the API
- def test_inferior_crashing_dwarf(self):
+ def test_inferior_crashing(self):
"""Test that lldb reliably catches the inferior crashing (command)."""
- self.buildDwarf()
+ self.build()
self.inferior_crashing()
- @skipUnlessDarwin
- def test_inferior_crashing_registers_dsym(self):
- """Test that lldb reliably reads registers from the inferior after crashing (command)."""
- self.buildDsym()
- self.inferior_crashing_registers()
-
@expectedFailureWindows("llvm.org/pr24778")
- def test_inferior_crashing_register_dwarf(self):
+ def test_inferior_crashing_register(self):
"""Test that lldb reliably reads registers from the inferior after crashing (command)."""
- self.buildDwarf()
+ self.build()
self.inferior_crashing_registers()
@python_api_test
@expectedFailureWindows("llvm.org/pr24778")
def test_inferior_crashing_python(self):
"""Test that lldb reliably catches the inferior crashing (Python API)."""
- self.buildDefault()
+ self.build()
self.inferior_crashing_python()
- @skipUnlessDarwin
- def test_inferior_crashing_expr_dsym(self):
- """Test that the lldb expression interpreter can read from the inferior after crashing (command)."""
- self.buildDsym()
- self.inferior_crashing_expr()
-
@expectedFailureWindows("llvm.org/pr24778")
- def test_inferior_crashing_expr_dwarf(self):
+ def test_inferior_crashing_expr(self):
"""Test that the lldb expression interpreter can read from the inferior after crashing (command)."""
- self.buildDwarf()
+ self.build()
self.inferior_crashing_expr()
- @skipUnlessDarwin
- def test_inferior_crashing_step_dsym(self):
- """Test that lldb functions correctly after stepping through a crash."""
- self.buildDsym()
- self.inferior_crashing_step()
-
@expectedFailureAll("llvm.org/pr23139", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["i386"])
@expectedFailureWindows("llvm.org/pr24778")
- def test_inferior_crashing_step_dwarf(self):
+ def test_inferior_crashing_step(self):
"""Test that stepping after a crash behaves correctly."""
- self.buildDwarf()
+ self.build()
self.inferior_crashing_step()
- @skipUnlessDarwin
- def test_inferior_crashing_step_after_break_dsym(self):
- """Test that stepping after a crash behaves correctly."""
- self.buildDsym()
- self.inferior_crashing_step_after_break()
-
@expectedFailureFreeBSD('llvm.org/pr24939')
@expectedFailureWindows("llvm.org/pr24778")
@expectedFailureAndroid(archs=['aarch64'], api_levels=range(21 + 1)) # No eh_frame for sa_restorer
- def test_inferior_crashing_step_after_break_dwarf(self):
+ def test_inferior_crashing_step_after_break(self):
"""Test that lldb functions correctly after stepping through a crash."""
- self.buildDwarf()
+ self.build()
self.inferior_crashing_step_after_break()
- @skipUnlessDarwin
- def test_inferior_crashing_expr_step_and_expr_dsym(self):
- """Test that lldb expressions work before and after stepping after a crash."""
- self.buildDsym()
- self.inferior_crashing_expr_step_expr()
-
@expectedFailureWindows("llvm.org/pr24778")
@skipIfLinux # Inferior exits after stepping after a segfault. This is working as intended IMHO.
- def test_inferior_crashing_expr_step_and_expr_dwarf(self):
+ def test_inferior_crashing_expr_step_and_expr(self):
"""Test that lldb expressions work before and after stepping after a crash."""
- self.buildDwarf()
+ self.build()
self.inferior_crashing_expr_step_expr()
def set_breakpoint(self, line):
diff --git a/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py b/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
index 855c3cf5472..86eba5de4d5 100644
--- a/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
+++ b/lldb/test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
@@ -10,87 +10,52 @@ class CrashingRecursiveInferiorTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- def test_recursive_inferior_crashing_dsym(self):
- """Test that lldb reliably catches the inferior crashing (command)."""
- self.buildDsym()
- self.recursive_inferior_crashing()
-
@expectedFailureFreeBSD("llvm.org/pr23699 SIGSEGV is reported as exception, not signal")
@expectedFailureWindows("llvm.org/pr24778")
- def test_recursive_inferior_crashing_dwarf(self):
+ def test_recursive_inferior_crashing(self):
"""Test that lldb reliably catches the inferior crashing (command)."""
- self.buildDwarf()
+ self.build()
self.recursive_inferior_crashing()
- @skipUnlessDarwin
- def test_recursive_inferior_crashing_registers_dsym(self):
- """Test that lldb reliably reads registers from the inferior after crashing (command)."""
- self.buildDsym()
- self.recursive_inferior_crashing_registers()
-
@expectedFailureWindows("llvm.org/pr24778")
- def test_recursive_inferior_crashing_register_dwarf(self):
+ def test_recursive_inferior_crashing_register(self):
"""Test that lldb reliably reads registers from the inferior after crashing (command)."""
- self.buildDwarf()
+ self.build()
self.recursive_inferior_crashing_registers()
@python_api_test
@expectedFailureWindows("llvm.org/pr24778")
def test_recursive_inferior_crashing_python(self):
"""Test that lldb reliably catches the inferior crashing (Python API)."""
- self.buildDefault()
+ self.build()
self.recursive_inferior_crashing_python()
- @skipUnlessDarwin
- def test_recursive_inferior_crashing_expr_dsym(self):
- """Test that the lldb expression interpreter can read from the inferior after crashing (command)."""
- self.buildDsym()
- self.recursive_inferior_crashing_expr()
-
@expectedFailureWindows("llvm.org/pr24778")
- def test_recursive_inferior_crashing_expr_dwarf(self):
+ def test_recursive_inferior_crashing_expr(self):
"""Test that the lldb expression interpreter can read from the inferior after crashing (command)."""
- self.buildDwarf()
+ self.build()
self.recursive_inferior_crashing_expr()
- @skipUnlessDarwin
- def test_recursive_inferior_crashing_step_dsym(self):
- """Test that lldb functions correctly after stepping through a crash."""
- self.buildDsym()
- self.recursive_inferior_crashing_step()
-
@expectedFailureWindows("llvm.org/pr24778")
- def test_recursive_inferior_crashing_step_dwarf(self):
+ def test_recursive_inferior_crashing_step(self):
"""Test that stepping after a crash behaves correctly."""
- self.buildDwarf()
+ self.build()
self.recursive_inferior_crashing_step()
- @skipUnlessDarwin
- def test_recursive_inferior_crashing_step_after_break_dsym(self):
- """Test that stepping after a crash behaves correctly."""
- self.buildDsym()
- self.recursive_inferior_crashing_step_after_break()
-
@expectedFailureFreeBSD('llvm.org/pr24939')
@expectedFailureWindows("llvm.org/pr24778")
@expectedFailureAndroid(archs=['aarch64'], api_levels=range(21 + 1)) # No eh_frame for sa_restorer
- def test_recursive_inferior_crashing_step_after_break_dwarf(self):
+ def test_recursive_inferior_crashing_step_after_break(self):
"""Test that lldb functions correctly after stepping through a crash."""
- self.buildDwarf()
+ self.build()
self.recursive_inferior_crashing_step_after_break()
- @skipUnlessDarwin
- def test_recursive_inferior_crashing_expr_step_and_expr_dsym(self):
- """Test that lldb expressions work before and after stepping after a crash."""
- self.buildDsym()
- self.recursive_inferior_crashing_expr_step_expr()
-
+ @expectedFailureFreeBSD('llvm.org/pr15989') # Couldn't allocate space for the stack frame
@skipIfLinux # Inferior exits after stepping after a segfault. This is working as intended IMHO.
@expectedFailureWindows("llvm.org/pr24778")
- def test_recursive_inferior_crashing_expr_step_and_expr_dwarf(self):
+ def test_recursive_inferior_crashing_expr_step_and_expr(self):
"""Test that lldb expressions work before and after stepping after a crash."""
- self.buildDwarf()
+ self.build()
self.recursive_inferior_crashing_expr_step_expr()
def set_breakpoint(self, line):
diff --git a/lldb/test/functionalities/inline-stepping/TestInlineStepping.py b/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
index 6a597837698..6c2a31e3711 100644
--- a/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
+++ b/lldb/test/functionalities/inline-stepping/TestInlineStepping.py
@@ -10,56 +10,29 @@ class TestInlineStepping(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test stepping over and into inlined functions."""
- self.buildDsym()
- self.inline_stepping()
-
- @python_api_test
- @dwarf_test
@expectedFailureFreeBSD('llvm.org/pr17214')
@expectedFailureIcc # Not really a bug. ICC combines two inlined functions.
@expectedFailureAll("llvm.org/pr23139", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["i386"])
@expectedFailureWindows("llvm.org/pr24778")
# failed 1/365 dosep runs, (i386-clang), TestInlineStepping.py:237 failed to stop at first breakpoint in main
@expectedFailureAll(oslist=["linux"], archs=["i386"])
- def test_with_dwarf_and_python_api(self):
+ def test_with_python_api(self):
"""Test stepping over and into inlined functions."""
- self.buildDwarf()
+ self.build()
self.inline_stepping()
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_step_over_with_dsym_and_python_api(self):
- """Test stepping over and into inlined functions."""
- self.buildDsym()
- self.inline_stepping_step_over()
-
@python_api_test
- @dwarf_test
@expectedFailureAll("llvm.org/pr23139", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["i386"])
- def test_step_over_with_dwarf_and_python_api(self):
+ def test_step_over_with_python_api(self):
"""Test stepping over and into inlined functions."""
- self.buildDwarf()
+ self.build()
self.inline_stepping_step_over()
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_step_in_template_with_dsym_and_python_api(self):
- """Test stepping in to templated functions."""
- self.buildDsym()
- self.step_in_template()
-
@python_api_test
- @dwarf_test
- def test_step_in_template_with_dwarf_and_python_api(self):
+ def test_step_in_template_with_python_api(self):
"""Test stepping in to templated functions."""
- self.buildDwarf()
+ self.build()
self.step_in_template()
def setUp(self):
diff --git a/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py b/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py
index e7168be4d2f..8a7b4d00a2c 100644
--- a/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py
+++ b/lldb/test/functionalities/jitloader_gdb/TestJITLoaderGDB.py
@@ -14,20 +14,9 @@ class JITLoaderGDBTestCase(TestBase):
@skipTestIfFn(lambda x: True, "llvm.org/pr24702", "Skipped because the test crashes the test runner")
@unittest2.expectedFailure("llvm.org/pr24702")
- @dsym_test
- def test_bogus_values_with_dsym(self):
- self.buildDsym()
- self.bogus_values_test()
-
- @skipTestIfFn(lambda x: True, "llvm.org/pr24702", "Skipped because the test crashes the test runner")
- @unittest2.expectedFailure("llvm.org/pr24702")
- @dwarf_test
- def test_bogus_values_with_dwarf(self):
- self.buildDwarf()
- self.bogus_values_test()
-
- def bogus_values_test(self):
+ def test_bogus_values(self):
"""Test that we handle inferior misusing the GDB JIT interface"""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py b/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py
index 9d599c37791..f499178c3c2 100644
--- a/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py
+++ b/lldb/test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py
@@ -13,23 +13,11 @@ class LaunchWithShellExpandTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
- self.buildDsym()
- self.do_test ()
-
-
@expectedFailureFreeBSD("llvm.org/pr22627 process launch w/ shell expansion not working")
@expectedFailureLinux("llvm.org/pr22627 process launch w/ shell expansion not working")
@expectedFailureWindows("llvm.org/pr24778")
- @dwarf_test
- def test_with_dwarf (self):
- self.buildDwarf()
- self.do_test ()
-
- def do_test (self):
+ def test(self):
+ self.build()
exe = os.path.join (os.getcwd(), "a.out")
self.runCmd("target create %s" % exe)
diff --git a/lldb/test/functionalities/load_unload/TestLoadUnload.py b/lldb/test/functionalities/load_unload/TestLoadUnload.py
index f32749dcfd7..fa1455bdba9 100644
--- a/lldb/test/functionalities/load_unload/TestLoadUnload.py
+++ b/lldb/test/functionalities/load_unload/TestLoadUnload.py
@@ -75,7 +75,7 @@ class LoadUnloadTestCase(TestBase):
"""Test target modules list after loading a different copy of the library libd.dylib, and verifies that it works with 'target modules search-paths add'."""
# Invoke the default build rule.
- self.buildDefault()
+ self.build()
if self.platformIsDarwin():
dylibName = 'libloadunload_d.dylib'
@@ -129,7 +129,7 @@ class LoadUnloadTestCase(TestBase):
"""Test (DY)LD_LIBRARY_PATH after moving libd.dylib, which defines d_function, somewhere else."""
# Invoke the default build rule.
- self.buildDefault()
+ self.build()
self.copy_shlibs_to_remote(hidden_dir=True)
exe = os.path.join(os.getcwd(), "a.out")
@@ -185,7 +185,7 @@ class LoadUnloadTestCase(TestBase):
"""Test that lldb process load/unload command work correctly."""
# Invoke the default build rule.
- self.buildDefault()
+ self.build()
self.copy_shlibs_to_remote()
exe = os.path.join(os.getcwd(), "a.out")
@@ -245,7 +245,7 @@ class LoadUnloadTestCase(TestBase):
"""Test breakpoint by name works correctly with dlopen'ing."""
# Invoke the default build rule.
- self.buildDefault()
+ self.build()
self.copy_shlibs_to_remote()
exe = os.path.join(os.getcwd(), "a.out")
@@ -288,7 +288,7 @@ class LoadUnloadTestCase(TestBase):
"""Test stepping over code that loads a shared library works correctly."""
# Invoke the default build rule.
- self.buildDefault()
+ self.build()
self.copy_shlibs_to_remote()
exe = os.path.join(os.getcwd(), "a.out")
diff --git a/lldb/test/functionalities/longjmp/TestLongjmp.py b/lldb/test/functionalities/longjmp/TestLongjmp.py
index ace7ad62c80..3fd06f258fb 100644
--- a/lldb/test/functionalities/longjmp/TestLongjmp.py
+++ b/lldb/test/functionalities/longjmp/TestLongjmp.py
@@ -21,7 +21,7 @@ class LongjmpTestCase(TestBase):
@expectedFailureWindows("llvm.org/pr24778")
def test_step_out(self):
"""Test stepping when the inferior calls setjmp/longjmp, in particular, thread step-out."""
- self.buildDefault()
+ self.build()
self.step_out()
@skipIfDarwin # llvm.org/pr16769: LLDB on Mac OS X dies in function ReadRegisterBytes in GDBRemoteRegisterContext.cpp
@@ -30,7 +30,7 @@ class LongjmpTestCase(TestBase):
@expectedFailureWindows("llvm.org/pr24778")
def test_step_over(self):
"""Test stepping when the inferior calls setjmp/longjmp, in particular, thread step-over a longjmp."""
- self.buildDefault()
+ self.build()
self.step_over()
@skipIfDarwin # llvm.org/pr16769: LLDB on Mac OS X dies in function ReadRegisterBytes in GDBRemoteRegisterContext.cpp
@@ -39,7 +39,7 @@ class LongjmpTestCase(TestBase):
@expectedFailureWindows("llvm.org/pr24778")
def test_step_back_out(self):
"""Test stepping when the inferior calls setjmp/longjmp, in particular, thread step-out after thread step-in."""
- self.buildDefault()
+ self.build()
self.step_back_out()
def start_test(self, symbol):
diff --git a/lldb/test/functionalities/memory/read/TestMemoryRead.py b/lldb/test/functionalities/memory/read/TestMemoryRead.py
index 427a8d4f504..67cf389d20d 100644
--- a/lldb/test/functionalities/memory/read/TestMemoryRead.py
+++ b/lldb/test/functionalities/memory/read/TestMemoryRead.py
@@ -13,28 +13,16 @@ class MemoryReadTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_memory_read_with_dsym(self):
- """Test the 'memory read' command with plain and vector formats."""
- self.buildDsym()
- self.memory_read_command()
-
- @dwarf_test
- @expectedFailureAll("llvm.org/pr23139", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["i386"])
- def test_memory_read_with_dwarf(self):
- """Test the 'memory read' command with plain and vector formats."""
- self.buildDwarf()
- self.memory_read_command()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.cpp', '// Set break point at this line.')
- def memory_read_command(self):
+ @expectedFailureAll("llvm.org/pr23139", oslist=["linux"], compiler="gcc", compiler_version=[">=","4.9"], archs=["i386"])
+ def test_memory_read(self):
"""Test the 'memory read' command with plain and vector formats."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py b/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py
index d2a127e999d..786102eae81 100644
--- a/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py
+++ b/lldb/test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py
@@ -18,13 +18,9 @@ class NonOverlappingIndexVariableCase(TestBase):
# rdar://problem/9890530
def test_eval_index_variable(self):
"""Test expressions of variable 'i' which appears in two for loops."""
- self.buildDefault()
+ self.build()
self.exe_name = 'a.out'
- self.eval_index_variable_i(self.exe_name)
-
- def eval_index_variable_i(self, exe_name):
- """Test expressions of variable 'i' which appears in two for loops."""
- exe = os.path.join(os.getcwd(), exe_name)
+ exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file %s" % exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, self.source, self.line_to_break, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/nosucharch/TestNoSuchArch.py b/lldb/test/functionalities/nosucharch/TestNoSuchArch.py
index 06eb0dc9db2..cda0cd6606e 100644
--- a/lldb/test/functionalities/nosucharch/TestNoSuchArch.py
+++ b/lldb/test/functionalities/nosucharch/TestNoSuchArch.py
@@ -10,32 +10,17 @@ class NoSuchArchTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
- self.buildDsym()
- self.do_test ()
-
-
- @skipUnlessDarwin
- @dwarf_test
- def test_with_dwarf (self):
- self.buildDwarf()
- self.do_test ()
-
- def do_test (self):
+ def test (self):
+ self.build()
exe = os.path.join (os.getcwd(), "a.out")
-
+
# Check that passing an invalid arch via the command-line fails but doesn't crash
self.expect("target crete --arch nothingtoseehere %s" % (exe), error=True)
-
-
+
# Check that passing an invalid arch via the SB API fails but doesn't crash
target = self.dbg.CreateTargetWithFileAndArch(exe,"nothingtoseehere")
-
self.assertFalse(target.IsValid(), "This target should not be valid")
-
+
# Now just create the target with the default arch and check it's fine
target = self.dbg.CreateTarget(exe)
self.assertTrue(target.IsValid(), "This target should now be valid")
diff --git a/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py b/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py
index aa1a6f01653..165a41fdffa 100644
--- a/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py
+++ b/lldb/test/functionalities/object-file/TestImageListMultiArchitecture.py
@@ -15,10 +15,7 @@ class TestImageListMultiArchitecture(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
+ @no_debug_info_test
def test_image_list_shows_multiple_architectures(self):
"""Test that image list properly shows the correct architecture for a set of different architecture object files."""
images = {
diff --git a/lldb/test/functionalities/paths/TestPaths.py b/lldb/test/functionalities/paths/TestPaths.py
index bc37ea6cce7..c581cccc8e7 100644
--- a/lldb/test/functionalities/paths/TestPaths.py
+++ b/lldb/test/functionalities/paths/TestPaths.py
@@ -13,6 +13,7 @@ class TestPaths(TestBase):
mydir = TestBase.compute_mydir(__file__)
+ @no_debug_info_test
def test_paths (self):
'''Test to make sure no file names are set in the lldb.SBFileSpec objects returned by lldb.SBHostOS.GetLLDBPath() for paths that are directories'''
dir_path_types = [lldb.ePathTypeLLDBShlibDir,
@@ -28,6 +29,7 @@ class TestPaths(TestBase):
# No directory path types should have the filename set
self.assertTrue (f.GetFilename() == None);
+ @no_debug_info_test
def test_directory_doesnt_end_with_slash(self):
current_directory_spec = lldb.SBFileSpec(os.path.curdir)
current_directory_string = current_directory_spec.GetDirectory()
@@ -35,6 +37,7 @@ class TestPaths(TestBase):
pass
@skipUnlessPlatform(["windows"])
+ @no_debug_info_test
def test_windows_double_slash (self):
'''Test to check the path with double slash is handled correctly '''
# Create a path and see if lldb gets the directory and file right
diff --git a/lldb/test/functionalities/platform/TestPlatformCommand.py b/lldb/test/functionalities/platform/TestPlatformCommand.py
index 5bf81260267..c7afacf5478 100644
--- a/lldb/test/functionalities/platform/TestPlatformCommand.py
+++ b/lldb/test/functionalities/platform/TestPlatformCommand.py
@@ -11,26 +11,32 @@ class PlatformCommandTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
+ @no_debug_info_test
def test_help_platform(self):
self.runCmd("help platform")
+ @no_debug_info_test
def test_list(self):
self.expect("platform list",
patterns = ['^Available platforms:'])
+ @no_debug_info_test
def test_process_list(self):
self.expect("platform process list",
substrs = ['PID', 'TRIPLE', 'NAME'])
+ @no_debug_info_test
def test_process_info_with_no_arg(self):
"""This is expected to fail and to return a proper error message."""
self.expect("platform process info", error=True,
substrs = ['one or more process id(s) must be specified'])
+ @no_debug_info_test
def test_status(self):
self.expect("platform status",
substrs = ['Platform', 'Triple', 'OS Version', 'Kernel', 'Hostname'])
+ @no_debug_info_test
def test_shell(self):
""" Test that the platform shell command can invoke ls. """
triple = self.dbg.GetSelectedPlatform().GetTriple()
@@ -41,12 +47,14 @@ class PlatformCommandTestCase(TestBase):
else:
self.expect("platform shell ls /", substrs = ["dev", "tmp", "usr"])
+ @no_debug_info_test
def test_shell_builtin(self):
""" Test a shell built-in command (echo) """
self.expect("platform shell echo hello lldb",
substrs = ["hello lldb"])
#FIXME: re-enable once platform shell -t can specify the desired timeout
+ @no_debug_info_test
def test_shell_timeout(self):
""" Test a shell built-in command (sleep) that times out """
self.skipTest("due to taking too long to complete.")
diff --git a/lldb/test/functionalities/plugins/commands/TestPluginCommands.py b/lldb/test/functionalities/plugins/commands/TestPluginCommands.py
index 0d360e472f7..f00ada5040a 100644
--- a/lldb/test/functionalities/plugins/commands/TestPluginCommands.py
+++ b/lldb/test/functionalities/plugins/commands/TestPluginCommands.py
@@ -22,6 +22,7 @@ class PluginCommandTestCase(TestBase):
@skipIfNoSBHeaders
@skipIfHostIncompatibleWithRemote # Requires a compatible arch and platform to link against the host's built lldb lib.
@expectedFailureWindows("llvm.org/pr24778")
+ @no_debug_info_test
def test_load_plugin(self):
"""Test that plugins that load commands work correctly."""
diff --git a/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py b/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
index 16feb5f85a2..d4b1b5f47c8 100644
--- a/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
+++ b/lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py
@@ -13,30 +13,14 @@ class PluginPythonOSPlugin(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_python_os_plugin_dsym(self):
+ def test_python_os_plugin(self):
"""Test that the Python operating system plugin works correctly"""
- self.buildDsym()
+ self.build()
self.run_python_os_funcionality()
- @dwarf_test
- def test_python_os_plugin_dwarf(self):
- """Test that the Python operating system plugin works correctly"""
- self.buildDwarf()
- self.run_python_os_funcionality()
-
- @skipUnlessDarwin
- @dsym_test
- def test_python_os_step_dsym(self):
- """Test that the Python operating system plugin works correctly when single stepping a virtual thread"""
- self.buildDsym()
- self.run_python_os_step()
-
- @dwarf_test
- def run_python_os_step_dwarf(self):
+ def run_python_os_step(self):
"""Test that the Python operating system plugin works correctly when single stepping a virtual thread"""
- self.buildDwarf()
+ self.build()
self.run_python_os_step()
def verify_os_thread_registers(self, thread):
diff --git a/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py b/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py
index 63cfd0ea07c..84bf777767f 100644
--- a/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py
+++ b/lldb/test/functionalities/postmortem/minidump/TestMiniDump.py
@@ -12,12 +12,14 @@ class MiniDumpTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
+ @no_debug_info_test
def test_process_info_in_mini_dump(self):
"""Test that lldb can read the process information from the minidump."""
self.assertTrue(self.process, PROCESS_IS_VALID)
self.assertEqual(self.process.GetNumThreads(), 1)
self.assertEqual(self.process.GetProcessID(), 4440)
+ @no_debug_info_test
def test_thread_info_in_mini_dump(self):
"""Test that lldb can read the thread information from the minidump."""
# This process crashed due to an access violation (0xc0000005) in its one and only thread.
diff --git a/lldb/test/functionalities/process_attach/TestProcessAttach.py b/lldb/test/functionalities/process_attach/TestProcessAttach.py
index 56a94392e8d..b8005c2c02a 100644
--- a/lldb/test/functionalities/process_attach/TestProcessAttach.py
+++ b/lldb/test/functionalities/process_attach/TestProcessAttach.py
@@ -14,46 +14,9 @@ class ProcessAttachTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_attach_to_process_by_id_with_dsym(self):
+ def test_attach_to_process_by_id(self):
"""Test attach by process id"""
- self.buildDsym()
- self.process_attach_by_id()
-
- @dwarf_test
- def test_attach_to_process_by_id_with_dwarf(self):
- """Test attach by process id"""
- self.buildDwarf()
- self.process_attach_by_id()
-
- @skipUnlessDarwin
- @dsym_test
- def test_attach_to_process_by_name_with_dsym(self):
- """Test attach by process name"""
- self.buildDsym()
- self.process_attach_by_name()
-
- @dwarf_test
- def test_attach_to_process_by_name_with_dwarf(self):
- """Test attach by process name"""
- self.buildDwarf()
- self.process_attach_by_name()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def tearDown(self):
- # Destroy process before TestBase.tearDown()
- self.dbg.GetSelectedTarget().GetProcess().Destroy()
-
- # Call super's tearDown().
- TestBase.tearDown(self)
-
- def process_attach_by_id(self):
- """Test attach by process id"""
-
+ self.build()
exe = os.path.join(os.getcwd(), exe_name)
# Spawn a new process
@@ -67,10 +30,9 @@ class ProcessAttachTestCase(TestBase):
process = target.GetProcess()
self.assertTrue(process, PROCESS_IS_VALID)
-
- def process_attach_by_name(self):
+ def test_attach_to_process_by_name(self):
"""Test attach by process name"""
-
+ self.build()
exe = os.path.join(os.getcwd(), exe_name)
# Spawn a new process
@@ -84,6 +46,12 @@ class ProcessAttachTestCase(TestBase):
process = target.GetProcess()
self.assertTrue(process, PROCESS_IS_VALID)
+ def tearDown(self):
+ # Destroy process before TestBase.tearDown()
+ self.dbg.GetSelectedTarget().GetProcess().Destroy()
+
+ # Call super's tearDown().
+ TestBase.tearDown(self)
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py b/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py
index 57ef2e053b9..65d0c235cd6 100644
--- a/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py
+++ b/lldb/test/functionalities/process_attach/attach_denied/TestAttachDenied.py
@@ -24,8 +24,7 @@ class AttachDeniedTestCase(TestBase):
@skipIfLinux # hanging after reviews D13124 change went in
def test_attach_to_process_by_id_denied(self):
"""Test attach by process id denied"""
-
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), exe_name)
# Use a file as a synchronization point between test and inferior.
diff --git a/lldb/test/functionalities/process_group/TestChangeProcessGroup.py b/lldb/test/functionalities/process_group/TestChangeProcessGroup.py
index 2d3c0f957d1..343e53d134f 100644
--- a/lldb/test/functionalities/process_group/TestChangeProcessGroup.py
+++ b/lldb/test/functionalities/process_group/TestChangeProcessGroup.py
@@ -17,28 +17,11 @@ class ChangeProcessGroupTestCase(TestBase):
# Find the line number to break for main.c.
self.line = line_number('main.c', '// Set breakpoint here')
- @skipIfWindows # setpgid call does not exist on Windows
- @skipUnlessDarwin
- @dsym_test
- def test_setpgid_with_dsym(self):
- self.buildDsym()
- self.setpgid()
-
@skipIfFreeBSD # Times out on FreeBSD llvm.org/pr23731
@skipIfWindows # setpgid call does not exist on Windows
@expectedFailureAndroid("http://llvm.org/pr23762", api_levels=[16])
- @dwarf_test
- def test_setpgid_with_dwarf(self):
- self.buildDwarf()
- self.setpgid()
-
- def run_platform_command(self, cmd):
- platform = self.dbg.GetSelectedPlatform()
- shell_command = lldb.SBPlatformShellCommand(cmd)
- err = platform.Run(shell_command)
- return (err, shell_command.GetStatus(), shell_command.GetOutput())
-
- def setpgid(self):
+ def test_setpgid(self):
+ self.build()
exe = os.path.join(os.getcwd(), 'a.out')
# Use a file as a synchronization point between test and inferior.
@@ -109,6 +92,12 @@ class ChangeProcessGroupTestCase(TestBase):
process.Continue()
self.assertEqual(process.GetState(), lldb.eStateExited)
+ def run_platform_command(self, cmd):
+ platform = self.dbg.GetSelectedPlatform()
+ shell_command = lldb.SBPlatformShellCommand(cmd)
+ err = platform.Run(shell_command)
+ return (err, shell_command.GetStatus(), shell_command.GetOutput())
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/functionalities/process_launch/TestProcessLaunch.py b/lldb/test/functionalities/process_launch/TestProcessLaunch.py
index 92732f9410d..e843bfc1812 100644
--- a/lldb/test/functionalities/process_launch/TestProcessLaunch.py
+++ b/lldb/test/functionalities/process_launch/TestProcessLaunch.py
@@ -18,22 +18,10 @@ class ProcessLaunchTestCase(TestBase):
self.runCmd("settings set auto-confirm true")
self.addTearDownHook(lambda: self.runCmd("settings clear auto-confirm"))
- @skipUnlessDarwin
- @dsym_test
- def test_io_with_dsym (self):
- """Test that process launch I/O redirection flags work properly."""
- self.buildDsym ()
- self.process_io_test ()
-
- @dwarf_test
- def test_io_with_dwarf (self):
- """Test that process launch I/O redirection flags work properly."""
- self.buildDwarf ()
- self.process_io_test ()
-
@not_remote_testsuite_ready
- def process_io_test (self):
+ def test_io (self):
"""Test that process launch I/O redirection flags work properly."""
+ self.build ()
exe = os.path.join (os.getcwd(), "a.out")
self.expect("file " + exe,
patterns = [ "Current executable set to .*a.out" ])
@@ -115,29 +103,15 @@ class ProcessLaunchTestCase(TestBase):
if not success:
self.fail (err_msg)
- d = {'CXX_SOURCES' : 'print_cwd.cpp'}
-
- @skipUnlessDarwin
- @dsym_test
- def test_set_working_dir_with_dsym (self):
- """Test that '-w dir' sets the working dir when running the inferior."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(self.d)
- self.my_working_dir_test()
-
- @expectedFailureLinux("llvm.org/pr20265")
- @dwarf_test
- def test_set_working_dir_with_dwarf (self):
- """Test that '-w dir' sets the working dir when running the inferior."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(self.d)
- self.my_working_dir_test()
-
# rdar://problem/9056462
# The process launch flag '-w' for setting the current working directory not working?
@not_remote_testsuite_ready
- def my_working_dir_test (self):
+ @expectedFailureLinux("llvm.org/pr20265")
+ def test_set_working_dir (self):
"""Test that '-w dir' sets the working dir when running the inferior."""
+ d = {'CXX_SOURCES' : 'print_cwd.cpp'}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(d)
exe = os.path.join (os.getcwd(), "a.out")
self.runCmd("file " + exe)
diff --git a/lldb/test/functionalities/recursion/TestValueObjectRecursion.py b/lldb/test/functionalities/recursion/TestValueObjectRecursion.py
index 42724d58894..243b8621a40 100644
--- a/lldb/test/functionalities/recursion/TestValueObjectRecursion.py
+++ b/lldb/test/functionalities/recursion/TestValueObjectRecursion.py
@@ -12,27 +12,15 @@ class ValueObjectRecursionTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that deeply nested ValueObjects still work."""
- self.buildDsym()
- self.recursive_vo_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that deeply nested ValueObjects still work."""
- self.buildDwarf()
- self.recursive_vo_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def recursive_vo_commands(self):
- """Test that that file and class static variables display correctly."""
+ def test_with_run_command(self):
+ """Test that deeply nested ValueObjects still work."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/register/TestRegisters.py b/lldb/test/functionalities/register/TestRegisters.py
index cee58373624..8957d9c84b4 100755
--- a/lldb/test/functionalities/register/TestRegisters.py
+++ b/lldb/test/functionalities/register/TestRegisters.py
@@ -25,7 +25,7 @@ class RegisterCommandsTestCase(TestBase):
"""Test commands related to registers, in particular vector registers."""
if not self.getArchitecture() in ['amd64', 'i386', 'x86_64']:
self.skipTest("This test requires x86 or x86_64 as the architecture for the inferior")
- self.buildDefault()
+ self.build()
self.register_commands()
@skipIfTargetAndroid(archs=["i386"]) # Writing of mxcsr register fails, presumably due to a kernel/hardware problem
@@ -33,7 +33,7 @@ class RegisterCommandsTestCase(TestBase):
"""Test commands that write to registers, in particular floating-point registers."""
if not self.getArchitecture() in ['amd64', 'i386', 'x86_64']:
self.skipTest("This test requires x86 or x86_64 as the architecture for the inferior")
- self.buildDefault()
+ self.build()
self.fp_register_write()
@expectedFailureAndroid(archs=["i386"]) # "register read fstat" always return 0xffff
@@ -42,35 +42,35 @@ class RegisterCommandsTestCase(TestBase):
"""Test commands that read fpu special purpose registers."""
if not self.getArchitecture() in ['amd64', 'i386', 'x86_64']:
self.skipTest("This test requires x86 or x86_64 as the architecture for the inferior")
- self.buildDefault()
+ self.build()
self.fp_special_purpose_register_read()
def test_register_expressions(self):
"""Test expression evaluation with commands related to registers."""
if not self.getArchitecture() in ['amd64', 'i386', 'x86_64']:
self.skipTest("This test requires x86 or x86_64 as the architecture for the inferior")
- self.buildDefault()
+ self.build()
self.register_expressions()
def test_convenience_registers(self):
"""Test convenience registers."""
if not self.getArchitecture() in ['amd64', 'x86_64']:
self.skipTest("This test requires x86_64 as the architecture for the inferior")
- self.buildDefault()
+ self.build()
self.convenience_registers()
def test_convenience_registers_with_process_attach(self):
"""Test convenience registers after a 'process attach'."""
if not self.getArchitecture() in ['amd64', 'x86_64']:
self.skipTest("This test requires x86_64 as the architecture for the inferior")
- self.buildDefault()
+ self.build()
self.convenience_registers_with_process_attach(test_16bit_regs=False)
def test_convenience_registers_16bit_with_process_attach(self):
"""Test convenience registers after a 'process attach'."""
if not self.getArchitecture() in ['amd64', 'x86_64']:
self.skipTest("This test requires x86_64 as the architecture for the inferior")
- self.buildDefault()
+ self.build()
self.convenience_registers_with_process_attach(test_16bit_regs=True)
def common_setup(self):
diff --git a/lldb/test/functionalities/rerun/TestRerun.py b/lldb/test/functionalities/rerun/TestRerun.py
index 18b447cc563..b1b5465eb42 100644
--- a/lldb/test/functionalities/rerun/TestRerun.py
+++ b/lldb/test/functionalities/rerun/TestRerun.py
@@ -13,20 +13,8 @@ class TestRerun(TestBase):
mydir = TestBase.compute_mydir(__file__)
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
- self.buildDsym()
- self.do_test ()
-
-
- @dwarf_test
- def test_with_dwarf (self):
- self.buildDwarf()
- self.do_test ()
-
- def do_test (self):
+ def test (self):
+ self.build()
exe = os.path.join (os.getcwd(), "a.out")
self.runCmd("target create %s" % exe)
diff --git a/lldb/test/functionalities/return-value/TestReturnValue.py b/lldb/test/functionalities/return-value/TestReturnValue.py
index e315b158516..bafde43e7e2 100644
--- a/lldb/test/functionalities/return-value/TestReturnValue.py
+++ b/lldb/test/functionalities/return-value/TestReturnValue.py
@@ -12,80 +12,12 @@ class ReturnValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @expectedFailurei386
- @python_api_test
- @dsym_test
- def test_with_dsym_python(self):
- """Test getting return values from stepping out with dsyms."""
- self.buildDsym()
- self.do_return_value()
-
@expectedFailurei386
@expectedFailureWindows("llvm.org/pr24778")
@python_api_test
- @dwarf_test
- def test_with_dwarf_python(self):
- """Test getting return values from stepping out."""
- self.buildDwarf()
- self.do_return_value()
-
- def return_and_test_struct_value (self, func_name):
- """Pass in the name of the function to return from - takes in value, returns value."""
-
- # Set the breakpoint, run to it, finish out.
- bkpt = self.target.BreakpointCreateByName (func_name)
- self.assertTrue (bkpt.GetNumResolvedLocations() > 0)
-
- self.process.Continue ()
-
- thread_list = lldbutil.get_threads_stopped_at_breakpoint (self.process, bkpt)
-
- self.assertTrue (len(thread_list) == 1)
- thread = thread_list[0]
-
- self.target.BreakpointDelete (bkpt.GetID())
-
- in_value = thread.GetFrameAtIndex(0).FindVariable ("value")
-
- self.assertTrue (in_value.IsValid())
- num_in_children = in_value.GetNumChildren()
-
- # This is a little hokey, but if we don't get all the children now, then
- # once we've stepped we won't be able to get them?
-
- for idx in range(0, num_in_children):
- in_child = in_value.GetChildAtIndex (idx)
- in_child_str = in_child.GetValue()
-
- thread.StepOut()
-
- self.assertTrue (self.process.GetState() == lldb.eStateStopped)
- self.assertTrue (thread.GetStopReason() == lldb.eStopReasonPlanComplete)
-
- # Assuming all these functions step out to main. Could figure out the caller dynamically
- # if that would add something to the test.
- frame = thread.GetFrameAtIndex(0)
- fun_name = frame.GetFunctionName()
- self.assertTrue (fun_name == "main")
-
- frame = thread.GetFrameAtIndex(0)
- ret_value = thread.GetStopReturnValue()
-
- self.assertTrue (ret_value.IsValid())
-
- num_ret_children = ret_value.GetNumChildren()
- self.assertTrue (num_in_children == num_ret_children)
- for idx in range(0, num_ret_children):
- in_child = in_value.GetChildAtIndex(idx)
- ret_child = ret_value.GetChildAtIndex(idx)
- in_child_str = in_child.GetValue()
- ret_child_str = ret_child.GetValue()
-
- self.assertEqual(in_child_str, ret_child_str)
-
- def do_return_value(self):
+ def test_with_python(self):
"""Test getting return values from stepping out."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
error = lldb.SBError()
@@ -221,6 +153,60 @@ class ReturnValueTestCase(TestBase):
self.return_and_test_struct_value ("return_ext_vector_size_float32_4")
self.return_and_test_struct_value ("return_ext_vector_size_float32_8")
+ def return_and_test_struct_value (self, func_name):
+ """Pass in the name of the function to return from - takes in value, returns value."""
+
+ # Set the breakpoint, run to it, finish out.
+ bkpt = self.target.BreakpointCreateByName (func_name)
+ self.assertTrue (bkpt.GetNumResolvedLocations() > 0)
+
+ self.process.Continue ()
+
+ thread_list = lldbutil.get_threads_stopped_at_breakpoint (self.process, bkpt)
+
+ self.assertTrue (len(thread_list) == 1)
+ thread = thread_list[0]
+
+ self.target.BreakpointDelete (bkpt.GetID())
+
+ in_value = thread.GetFrameAtIndex(0).FindVariable ("value")
+
+ self.assertTrue (in_value.IsValid())
+ num_in_children = in_value.GetNumChildren()
+
+ # This is a little hokey, but if we don't get all the children now, then
+ # once we've stepped we won't be able to get them?
+
+ for idx in range(0, num_in_children):
+ in_child = in_value.GetChildAtIndex (idx)
+ in_child_str = in_child.GetValue()
+
+ thread.StepOut()
+
+ self.assertTrue (self.process.GetState() == lldb.eStateStopped)
+ self.assertTrue (thread.GetStopReason() == lldb.eStopReasonPlanComplete)
+
+ # Assuming all these functions step out to main. Could figure out the caller dynamically
+ # if that would add something to the test.
+ frame = thread.GetFrameAtIndex(0)
+ fun_name = frame.GetFunctionName()
+ self.assertTrue (fun_name == "main")
+
+ frame = thread.GetFrameAtIndex(0)
+ ret_value = thread.GetStopReturnValue()
+
+ self.assertTrue (ret_value.IsValid())
+
+ num_ret_children = ret_value.GetNumChildren()
+ self.assertTrue (num_in_children == num_ret_children)
+ for idx in range(0, num_ret_children):
+ in_child = in_value.GetChildAtIndex(idx)
+ ret_child = ret_value.GetChildAtIndex(idx)
+ in_child_str = in_child.GetValue()
+ ret_child_str = ret_child.GetValue()
+
+ self.assertEqual(in_child_str, ret_child_str)
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/functionalities/set-data/TestSetData.py b/lldb/test/functionalities/set-data/TestSetData.py
index 07fdc7e0d68..3bd5ee4ce96 100644
--- a/lldb/test/functionalities/set-data/TestSetData.py
+++ b/lldb/test/functionalities/set-data/TestSetData.py
@@ -8,19 +8,14 @@ import lldb
from lldbtest import *
import lldbutil
-@skipUnlessDarwin
class SetDataTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_set_data_dsym(self):
+ @skipUnlessDarwin
+ def test_set_data(self):
"""Test setting the contents of variables and registers using raw data."""
- self.buildDsym()
- self.setData()
-
- def setData(self):
- """Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/signal/TestSendSignal.py b/lldb/test/functionalities/signal/TestSendSignal.py
index 4b01b57413a..5ce843d5286 100644
--- a/lldb/test/functionalities/signal/TestSendSignal.py
+++ b/lldb/test/functionalities/signal/TestSendSignal.py
@@ -11,43 +11,17 @@ class SendSignalTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that lldb command 'process signal SIGUSR1' sends a signal to the inferior process."""
- self.buildDsym()
- self.send_signal()
-
- @expectedFailureFreeBSD("llvm.org/pr23318: does not report running state")
- @skipIfWindows # Windows does not support signals
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that lldb command 'process signal SIGUSR1' sends a signal to the inferior process."""
- self.buildDwarf()
- self.send_signal()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.c', 'Put breakpoint here')
- def match_state(self, process_listener, expected_state):
- num_seconds = 5
- broadcaster = self.process().GetBroadcaster()
- event_type_mask = lldb.SBProcess.eBroadcastBitStateChanged
- event = lldb.SBEvent()
- got_event = process_listener.WaitForEventForBroadcasterWithType(
- num_seconds, broadcaster, event_type_mask, event)
- self.assertTrue(got_event, "Got an event")
- state = lldb.SBProcess.GetStateFromEvent(event)
- self.assertTrue(state == expected_state,
- "It was the %s state." %
- lldb.SBDebugger_StateAsCString(expected_state))
-
- def send_signal(self):
+ @expectedFailureFreeBSD("llvm.org/pr23318: does not report running state")
+ @skipIfWindows # Windows does not support signals
+ def test_with_run_command(self):
"""Test that lldb command 'process signal SIGUSR1' sends a signal to the inferior process."""
-
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
@@ -114,6 +88,19 @@ class SendSignalTestCase(TestBase):
self.assertTrue(thread.GetStopReasonDataAtIndex(0) == lldbutil.get_signal_number('SIGUSR1'),
"The stop signal was SIGUSR1")
+ def match_state(self, process_listener, expected_state):
+ num_seconds = 5
+ broadcaster = self.process().GetBroadcaster()
+ event_type_mask = lldb.SBProcess.eBroadcastBitStateChanged
+ event = lldb.SBEvent()
+ got_event = process_listener.WaitForEventForBroadcasterWithType(
+ num_seconds, broadcaster, event_type_mask, event)
+ self.assertTrue(got_event, "Got an event")
+ state = lldb.SBProcess.GetStateFromEvent(event)
+ self.assertTrue(state == expected_state,
+ "It was the %s state." %
+ lldb.SBDebugger_StateAsCString(expected_state))
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py b/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py
index ce47e942867..fdb8f995e75 100644
--- a/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py
+++ b/lldb/test/functionalities/signal/handle-segv/TestHandleSegv.py
@@ -15,8 +15,8 @@ class HandleSegvTestCase(TestBase):
@skipIfWindows # signals do not exist on Windows
@skipIfDarwin
@expectedFailureFreeBSD("llvm.org/pr23699 SIGSEGV is reported as exception, not signal")
- def test_inferior_handle_sigsegv_with_dwarf(self):
- self.buildDefault()
+ def test_inferior_handle_sigsegv(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/functionalities/signal/raise/TestRaise.py b/lldb/test/functionalities/signal/raise/TestRaise.py
index b6672779b64..0099251cb98 100644
--- a/lldb/test/functionalities/signal/raise/TestRaise.py
+++ b/lldb/test/functionalities/signal/raise/TestRaise.py
@@ -13,24 +13,15 @@ class RaiseTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_sigstop_with_dsym(self):
- self.buildDsym()
+ def test_sigstop(self):
+ self.build()
self.signal_test('SIGSTOP', False)
# passing of SIGSTOP is not correctly handled, so not testing that scenario: https://llvm.org/bugs/show_bug.cgi?id=23574
- @dwarf_test
- def test_sigstop_with_dwarf(self):
- self.buildDwarf()
- self.signal_test('SIGSTOP', False)
- # passing of SIGSTOP is not correctly handled, so not testing that scenario: https://llvm.org/bugs/show_bug.cgi?id=23574
-
- @dwarf_test
@skipIfDarwin # darwin does not support real time signals
@skipIfTargetAndroid()
- def test_sigsigrtmin_with_dwarf(self):
- self.buildDwarf()
+ def test_sigsigrtmin(self):
+ self.build()
self.signal_test('SIGRTMIN', True)
def launch(self, target, signal):
@@ -154,23 +145,12 @@ class RaiseTestCase(TestBase):
# reset signal handling to default
self.set_handle(signal, default_pass, default_stop, default_notify)
- @dwarf_test
@expectedFailureLinux("llvm.org/pr24530") # the signal the inferior generates gets lost
@expectedFailureDarwin("llvm.org/pr24530") # the signal the inferior generates gets lost
- def test_restart_bug_with_dwarf(self):
- self.buildDwarf()
- self.restart_bug_test()
-
- @dsym_test
- @expectedFailureDarwin("llvm.org/pr24530") # the signal the inferior generates gets lost
- def test_restart_bug_with_dsym(self):
- self.buildDsym()
- self.restart_bug_test()
-
- def restart_bug_test(self):
+ def test_restart_bug(self):
"""Test that we catch a signal in the edge case where the process receives it while we are
about to interrupt it"""
-
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py b/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py
index 5f5aff05aeb..cd45412679a 100644
--- a/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py
+++ b/lldb/test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py
@@ -23,6 +23,7 @@ class SingleQuoteInCommandLineTestCase(TestBase):
pass
@expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows")
+ @no_debug_info_test
def test_lldb_invocation_with_single_quote_in_filename(self):
"""Test that 'lldb my_file_name' works where my_file_name is a string with a single quote char in it."""
import pexpect
diff --git a/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py b/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py
index 7f6601b11e6..1b38afc3aaa 100644
--- a/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py
+++ b/lldb/test/functionalities/step-avoids-no-debug/TestStepNoDebug.py
@@ -13,56 +13,26 @@ class ReturnValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_step_out_with_dsym_python(self):
+ def test_step_out_with_python(self):
"""Test stepping out using avoid-no-debug with dsyms."""
- self.buildDsym()
+ self.build()
self.get_to_starting_point()
self.do_step_out_past_nodebug()
@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.get_to_starting_point()
- self.do_step_out_past_nodebug()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_step_over_with_dsym_python(self):
- """Test stepping over using avoid-no-debug with dsyms."""
- self.buildDsym()
- self.get_to_starting_point()
- self.do_step_over_past_nodebug()
-
- @python_api_test
- @dwarf_test
@expectedFailureGcc("llvm.org/pr19247")
- def test_step_over_with_dwarf_python(self):
+ def test_step_over_with_python(self):
"""Test stepping over using avoid-no-debug with dwarf."""
- self.buildDwarf()
+ self.build()
self.get_to_starting_point()
self.do_step_over_past_nodebug()
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_step_in_with_dsym_python(self):
- """Test stepping in using avoid-no-debug with dsyms."""
- self.buildDsym()
- self.get_to_starting_point()
- self.do_step_in_past_nodebug()
-
@python_api_test
- @dwarf_test
@expectedFailureGcc("llvm.org/pr19247")
- def test_step_in_with_dwarf_python(self):
+ def test_step_in_with_python(self):
"""Test stepping in using avoid-no-debug with dwarf."""
- self.buildDwarf()
+ self.build()
self.get_to_starting_point()
self.do_step_in_past_nodebug()
diff --git a/lldb/test/functionalities/stop-hook/TestStopHookCmd.py b/lldb/test/functionalities/stop-hook/TestStopHookCmd.py
index 8453cc340a2..14017c7a8cf 100644
--- a/lldb/test/functionalities/stop-hook/TestStopHookCmd.py
+++ b/lldb/test/functionalities/stop-hook/TestStopHookCmd.py
@@ -13,24 +13,6 @@ class StopHookCmdTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- # Regression test.
- def test_not_crashing_if_no_target(self):
- """target stop-hook list should not crash if no target has been set."""
- self.runCmd("target stop-hook list", check=False)
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test a sequence of target stop-hook commands."""
- self.buildDsym()
- self.stop_hook_cmd_sequence()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test a sequence of target stop-hook commands."""
- self.buildDwarf()
- self.stop_hook_cmd_sequence()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -39,8 +21,14 @@ class StopHookCmdTestCase(TestBase):
self.endl = line_number('main.cpp', '// End of the line range for which stop-hook is to be run.')
self.line = line_number('main.cpp', '// Another breakpoint which is outside of the stop-hook range.')
- def stop_hook_cmd_sequence(self):
+ @no_debug_info_test
+ def test_not_crashing_if_no_target(self):
+ """target stop-hook list should not crash if no target has been set."""
+ self.runCmd("target stop-hook list", check=False)
+
+ def test(self):
"""Test a sequence of target stop-hook commands."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py b/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py
index cda025b57ef..abb99953bc9 100644
--- a/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py
+++ b/lldb/test/functionalities/stop-hook/TestStopHookMechanism.py
@@ -11,22 +11,6 @@ class StopHookMechanismTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test the stop-hook mechanism."""
- self.buildDsym()
- self.stop_hook_firing()
-
- @skipIfFreeBSD # llvm.org/pr15037
- @expectedFlakeyLinux('llvm.org/pr15037') # stop-hooks sometimes fail to fire on Linux
- @expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows")
- @dwarf_test
- def test_with_dwarf(self):
- """Test the stop-hook mechanism."""
- self.buildDwarf()
- self.stop_hook_firing()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -36,8 +20,13 @@ class StopHookMechanismTestCase(TestBase):
self.correct_step_line = line_number ('main.cpp', '// We should stop here after stepping.')
self.line = line_number('main.cpp', '// Another breakpoint which is outside of the stop-hook range.')
- def stop_hook_firing(self):
+ @skipIfFreeBSD # llvm.org/pr15037
+ @expectedFlakeyLinux('llvm.org/pr15037') # stop-hooks sometimes fail to fire on Linux
+ @expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows")
+ def test(self):
"""Test the stop-hook mechanism."""
+ self.build()
+
import pexpect
exe = os.path.join(os.getcwd(), "a.out")
prompt = "(lldb) "
diff --git a/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py b/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py
index 69cd39f11d8..59c5222f5e1 100644
--- a/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py
+++ b/lldb/test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py
@@ -11,24 +11,6 @@ class StopHookForMultipleThreadsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_stop_hook_multiple_threads_with_dsym(self):
- """Test that lldb stop-hook works for multiple threads."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.stop_hook_multiple_threads()
-
- @dwarf_test
- @expectedFlakeyFreeBSD("llvm.org/pr15037")
- @expectedFlakeyLinux("llvm.org/pr15037") # stop hooks sometimes fail to fire on Linux
- @expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows")
- def test_stop_hook_multiple_threads_with_dwarf(self):
- """Test that lldb stop-hook works for multiple threads."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.stop_hook_multiple_threads()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -41,8 +23,14 @@ class StopHookForMultipleThreadsTestCase(TestBase):
self.exe_name = self.testMethodName
self.d = {'CXX_SOURCES': self.source, 'EXE': self.exe_name}
- def stop_hook_multiple_threads(self):
+ @expectedFlakeyFreeBSD("llvm.org/pr15037")
+ @expectedFlakeyLinux("llvm.org/pr15037") # stop hooks sometimes fail to fire on Linux
+ @expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows")
+ def test_stop_hook_multiple_threads(self):
"""Test that lldb stop-hook works for multiple threads."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
import pexpect
exe = os.path.join(os.getcwd(), self.exe_name)
prompt = "(lldb) "
diff --git a/lldb/test/functionalities/target_command/TestTargetCommand.py b/lldb/test/functionalities/target_command/TestTargetCommand.py
index 8cf327ae32b..eb7409b6092 100644
--- a/lldb/test/functionalities/target_command/TestTargetCommand.py
+++ b/lldb/test/functionalities/target_command/TestTargetCommand.py
@@ -19,41 +19,36 @@ class targetCommandTestCase(TestBase):
self.line_b = line_number('b.c', '// Set break point at this line.')
self.line_c = line_number('c.c', '// Set break point at this line.')
- @dwarf_test
- def test_target_command_with_dwarf(self):
+ def test_target_command(self):
"""Test some target commands: create, list, select."""
da = {'C_SOURCES': 'a.c', 'EXE': 'a.out'}
- self.buildDwarf(dictionary=da)
+ self.build(dictionary=da)
self.addTearDownCleanup(dictionary=da)
db = {'C_SOURCES': 'b.c', 'EXE': 'b.out'}
- self.buildDwarf(dictionary=db)
+ self.build(dictionary=db)
self.addTearDownCleanup(dictionary=db)
dc = {'C_SOURCES': 'c.c', 'EXE': 'c.out'}
- self.buildDwarf(dictionary=dc)
+ self.build(dictionary=dc)
self.addTearDownCleanup(dictionary=dc)
self.do_target_command()
# rdar://problem/9763907
# 'target variable' command fails if the target program has been run
- @skipUnlessDarwin
- @dsym_test
- def test_target_variable_command_with_dsym(self):
+ def test_target_variable_command(self):
"""Test 'target variable' command before and after starting the inferior."""
d = {'C_SOURCES': 'globals.c', 'EXE': 'globals'}
- self.buildDsym(dictionary=d)
+ self.build(dictionary=d)
self.addTearDownCleanup(dictionary=d)
self.do_target_variable_command('globals')
- @skipUnlessDarwin
- @dsym_test
- def test_target_variable_command_with_dsym_no_fail(self):
+ def test_target_variable_command_no_fail(self):
"""Test 'target variable' command before and after starting the inferior."""
d = {'C_SOURCES': 'globals.c', 'EXE': 'globals'}
- self.buildDsym(dictionary=d)
+ self.build(dictionary=d)
self.addTearDownCleanup(dictionary=d)
self.do_target_variable_command_no_fail('globals')
diff --git a/lldb/test/functionalities/thread/TestNumThreads.py b/lldb/test/functionalities/thread/TestNumThreads.py
index a7d015048a5..65ca699332f 100644
--- a/lldb/test/functionalities/thread/TestNumThreads.py
+++ b/lldb/test/functionalities/thread/TestNumThreads.py
@@ -12,27 +12,15 @@ class NumberOfThreadsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test number of threads."""
- self.buildDsym()
- self.number_of_threads_test()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test number of threads."""
- self.buildDwarf()
- self.number_of_threads_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.cpp', '// Set break point at this line.')
- def number_of_threads_test(self):
+ def test(self):
"""Test number of threads."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py b/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py
index f1f18024166..e149f361ea0 100644
--- a/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py
+++ b/lldb/test/functionalities/thread/break_after_join/TestBreakAfterJoin.py
@@ -12,31 +12,19 @@ class BreakpointAfterJoinTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @dsym_test
- def test_with_dsym(self):
- """Test breakpoint handling after a thread join."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.breakpoint_after_join_test()
-
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
- @expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
- @dwarf_test
- def test_with_dwarf(self):
- """Test breakpoint handling after a thread join."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.breakpoint_after_join_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number for our breakpoint.
self.breakpoint = line_number('main.cpp', '// Set breakpoint here')
- def breakpoint_after_join_test(self):
+ @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
+ @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
+ @expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
+ def test(self):
"""Test breakpoint handling after a thread join."""
+ self.build(dictionary=self.getBuildFlags())
+
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py b/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
index ae073f08fe2..149d6a22bc8 100644
--- a/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
+++ b/lldb/test/functionalities/thread/concurrent_events/TestConcurrentEvents.py
@@ -25,170 +25,150 @@ class ConcurrentEventsTestCase(TestBase):
## Tests for multiple threads that generate a single event.
#
@unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
- @dwarf_test
- def test_many_breakpoints_dwarf(self):
+ def test_many_breakpoints(self):
"""Test 100 breakpoints from 100 threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=100)
@unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
- @dwarf_test
- def test_many_watchpoints_dwarf(self):
+ def test_many_watchpoints(self):
"""Test 100 watchpoints from 100 threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=100)
@unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
- @dwarf_test
- def test_many_signals_dwarf(self):
+ def test_many_signals(self):
"""Test 100 signals from 100 threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_signal_threads=100)
@unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
- @dwarf_test
- def test_many_crash_dwarf(self):
+ def test_many_crash(self):
"""Test 100 threads that cause a segfault."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_crash_threads=100)
#
## Tests for concurrent signal and breakpoint
#
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_signal_break_dwarf(self):
+ def test_signal_break(self):
"""Test signal and a breakpoint in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1, num_signal_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_delay_signal_break_dwarf(self):
+ def test_delay_signal_break(self):
"""Test (1-second delay) signal and a breakpoint in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1, num_delay_signal_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_signal_delay_break_dwarf(self):
+ def test_signal_delay_break(self):
"""Test signal and a (1 second delay) breakpoint in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_delay_breakpoint_threads=1, num_signal_threads=1)
#
## Tests for concurrent watchpoint and breakpoint
#
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_watch_break_dwarf(self):
+ def test_watch_break(self):
"""Test watchpoint and a breakpoint in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1, num_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_delay_watch_break_dwarf(self):
+ def test_delay_watch_break(self):
"""Test (1-second delay) watchpoint and a breakpoint in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1, num_delay_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_watch_break_dwarf_delay(self):
+ def test_watch_break_delay(self):
"""Test watchpoint and a (1 second delay) breakpoint in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_delay_breakpoint_threads=1, num_watchpoint_threads=1)
#
## Tests for concurrent signal and watchpoint
#
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_signal_watch_dwarf(self):
+ def test_signal_watch(self):
"""Test a watchpoint and a signal in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_signal_threads=1, num_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_delay_signal_watch_dwarf(self):
+ def test_delay_signal_watch(self):
"""Test a watchpoint and a (1 second delay) signal in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_delay_signal_threads=1, num_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
@expectedFailureAll("llvm.org/pr16714", oslist=["linux"], archs=["i386"])
- def test_signal_delay_watch_dwarf(self):
+ def test_signal_delay_watch(self):
"""Test a (1 second delay) watchpoint and a signal in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_signal_threads=1, num_delay_watchpoint_threads=1)
#
## Tests for multiple breakpoint threads
#
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_two_breakpoint_threads_dwarf(self):
+ def test_two_breakpoint_threads(self):
"""Test two threads that trigger a breakpoint. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=2)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_breakpoint_one_delay_breakpoint_threads_dwarf(self):
+ def test_breakpoint_one_delay_breakpoint_threads(self):
"""Test threads that trigger a breakpoint where one thread has a 1 second delay. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1,
num_delay_breakpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_two_breakpoints_one_signal_dwarf(self):
+ def test_two_breakpoints_one_signal(self):
"""Test two threads that trigger a breakpoint and one signal thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=2, num_signal_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_breakpoint_delay_breakpoint_one_signal_dwarf(self):
+ def test_breakpoint_delay_breakpoint_one_signal(self):
"""Test two threads that trigger a breakpoint (one with a 1 second delay) and one signal thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1,
num_delay_breakpoint_threads=1,
num_signal_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_two_breakpoints_one_delay_signal_dwarf(self):
+ def test_two_breakpoints_one_delay_signal(self):
"""Test two threads that trigger a breakpoint and one (1 second delay) signal thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=2, num_delay_signal_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_two_breakpoints_one_watchpoint_dwarf(self):
+ def test_two_breakpoints_one_watchpoint(self):
"""Test two threads that trigger a breakpoint and one watchpoint thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=2, num_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_breakpoints_delayed_breakpoint_one_watchpoint_dwarf(self):
+ def test_breakpoints_delayed_breakpoint_one_watchpoint(self):
"""Test a breakpoint, a delayed breakpoint, and one watchpoint thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_breakpoint_threads=1,
num_delay_breakpoint_threads=1,
num_watchpoint_threads=1)
@@ -196,86 +176,77 @@ class ConcurrentEventsTestCase(TestBase):
#
## Tests for multiple watchpoint threads
#
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_two_watchpoint_threads_dwarf(self):
+ def test_two_watchpoint_threads(self):
"""Test two threads that trigger a watchpoint. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=2)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_watchpoint_with_delay_watchpoint_threads_dwarf(self):
+ def test_watchpoint_with_delay_watchpoint_threads(self):
"""Test two threads that trigger a watchpoint where one thread has a 1 second delay. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=1,
num_delay_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_two_watchpoints_one_breakpoint_dwarf(self):
+ def test_two_watchpoints_one_breakpoint(self):
"""Test two threads that trigger a watchpoint and one breakpoint thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=2, num_breakpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_two_watchpoints_one_delay_breakpoint_dwarf(self):
+ def test_two_watchpoints_one_delay_breakpoint(self):
"""Test two threads that trigger a watchpoint and one (1 second delay) breakpoint thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=2, num_delay_breakpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_watchpoint_delay_watchpoint_one_breakpoint_dwarf(self):
+ def test_watchpoint_delay_watchpoint_one_breakpoint(self):
"""Test two threads that trigger a watchpoint (one with a 1 second delay) and one breakpoint thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=1,
num_delay_watchpoint_threads=1,
num_breakpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_two_watchpoints_one_signal_dwarf(self):
+ def test_two_watchpoints_one_signal(self):
"""Test two threads that trigger a watchpoint and one signal thread. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=2, num_signal_threads=1)
#
## Test for watchpoint, signal and breakpoint happening concurrently
#
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_signal_watch_break_dwarf(self):
+ def test_signal_watch_break(self):
"""Test a signal/watchpoint/breakpoint in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_signal_threads=1,
num_watchpoint_threads=1,
num_breakpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_signal_watch_break_dwarf(self):
+ def test_signal_watch_break(self):
"""Test one signal thread with 5 watchpoint and breakpoint threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_signal_threads=1,
num_watchpoint_threads=5,
num_breakpoint_threads=5)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_signal_watch_break_dwarf(self):
+ def test_signal_watch_break(self):
"""Test with 5 watchpoint and breakpoint threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_watchpoint_threads=5,
num_breakpoint_threads=5)
@@ -283,54 +254,48 @@ class ConcurrentEventsTestCase(TestBase):
#
## Test for crashing threads happening concurrently with other events
#
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_crash_with_break_dwarf(self):
+ def test_crash_with_break(self):
""" Test a thread that crashes while another thread hits a breakpoint."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_crash_threads=1, num_breakpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_crash_with_watchpoint_dwarf(self):
+ def test_crash_with_watchpoint(self):
""" Test a thread that crashes while another thread hits a watchpoint."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_crash_threads=1, num_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_crash_with_signal_dwarf(self):
+ def test_crash_with_signal(self):
""" Test a thread that crashes while another thread generates a signal."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_crash_threads=1, num_signal_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_crash_with_watchpoint_breakpoint_signal_dwarf(self):
+ def test_crash_with_watchpoint_breakpoint_signal(self):
""" Test a thread that crashes while other threads generate a signal and hit a watchpoint and breakpoint. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_crash_threads=1,
num_breakpoint_threads=1,
num_signal_threads=1,
num_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@skipIfRemoteDueToDeadlock
- def test_delayed_crash_with_breakpoint_watchpoint_dwarf(self):
+ def test_delayed_crash_with_breakpoint_watchpoint(self):
""" Test a thread with a delayed crash while other threads hit a watchpoint and a breakpoint. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_delay_crash_threads=1,
num_breakpoint_threads=1,
num_watchpoint_threads=1)
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
- def test_delayed_crash_with_breakpoint_signal_dwarf(self):
+ def test_delayed_crash_with_breakpoint_signal(self):
""" Test a thread with a delayed crash while other threads generate a signal and hit a breakpoint. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.do_thread_actions(num_delay_crash_threads=1,
num_breakpoint_threads=1,
num_signal_threads=1)
diff --git a/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py b/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
index 96010def4a9..e196fa29429 100644
--- a/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
+++ b/lldb/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
@@ -12,26 +12,15 @@ class CreateDuringStepTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_step_inst_with_dsym(self):
- """Test thread creation during step-inst handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.crash_during_step_inst_test()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24778")
- @expectedFailureAndroid("llvm.org/pr24497", archs=['arm', 'aarch64'])
- def test_step_inst_with_dwarf(self):
- """Test thread creation during step-inst handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.crash_during_step_inst_test()
-
def setUp(self):
TestBase.setUp(self)
self.breakpoint = line_number('main.cpp', '// Set breakpoint here')
- def crash_during_step_inst_test(self):
+ @expectedFailureWindows("llvm.org/pr24778")
+ @expectedFailureAndroid("llvm.org/pr24497", archs=['arm', 'aarch64'])
+ def test_step_inst_with(self):
+ """Test thread creation during step-inst handling."""
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py b/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
index 6bd0d6b27db..51bc26f9d0e 100644
--- a/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
+++ b/lldb/test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
@@ -12,32 +12,23 @@ class CreateAfterAttachTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_create_after_attach_with_dsym(self):
- """Test thread creation after process attach."""
- self.buildDsym(dictionary=self.getBuildFlags(use_cpp11=False))
- self.create_after_attach(use_fork=False)
-
@skipIfFreeBSD # Hangs. May be the same as Linux issue llvm.org/pr16229 but
# not yet investigated. Revisit once required functionality
# is implemented for FreeBSD.
@skipIfWindows # Occasionally hangs on Windows, may be same as other issues.
- @dwarf_test
- def test_create_after_attach_with_dwarf_and_popen(self):
+ def test_create_after_attach_with_popen(self):
"""Test thread creation after process attach."""
- self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False))
+ self.build(dictionary=self.getBuildFlags(use_cpp11=False))
self.create_after_attach(use_fork=False)
@skipIfFreeBSD # Hangs. Revisit once required functionality is implemented
# for FreeBSD.
- @dwarf_test
@skipIfRemote
@skipIfWindows # Windows doesn't have fork.
@expectedFlakeyLinux("llvm.org/pr16229") # 1/100 dosep, build 3546, clang-3.5 x84_64
- def test_create_after_attach_with_dwarf_and_fork(self):
+ def test_create_after_attach_with_fork(self):
"""Test thread creation after process attach."""
- self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False))
+ self.build(dictionary=self.getBuildFlags(use_cpp11=False))
self.create_after_attach(use_fork=True)
def setUp(self):
diff --git a/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py b/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py
index fd8cf77b7e8..76fbc1559ba 100644
--- a/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py
+++ b/lldb/test/functionalities/thread/create_during_step/TestCreateDuringStep.py
@@ -12,59 +12,32 @@ class CreateDuringStepTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @dsym_test
- def test_step_inst_with_dsym(self):
- """Test thread creation during step-inst handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.create_during_step_inst_test()
-
- @skipUnlessDarwin
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @dsym_test
- def test_step_over_with_dsym(self):
- """Test thread creation during step-over handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.create_during_step_over_test()
-
- @skipUnlessDarwin
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @dsym_test
- def test_step_in_with_dsym(self):
- """Test thread creation during step-in handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.create_during_step_in_test()
-
@expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
@expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- @dwarf_test
- def test_step_inst_with_dwarf(self):
+ def test_step_inst(self):
"""Test thread creation during step-inst handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.create_during_step_inst_test()
+ self.build(dictionary=self.getBuildFlags())
+ self.create_during_step_base("thread step-inst -m all-threads", 'stop reason = instruction step')
@expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
@expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- @dwarf_test
- def test_step_over_with_dwarf(self):
+ def test_step_over(self):
"""Test thread creation during step-over handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.create_during_step_over_test()
+ self.build(dictionary=self.getBuildFlags())
+ self.create_during_step_base("thread step-over -m all-threads", 'stop reason = step over')
@expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
@expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- @dwarf_test
- def test_step_in_with_dwarf(self):
+ def test_step_in(self):
"""Test thread creation during step-in handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.create_during_step_in_test()
+ self.build(dictionary=self.getBuildFlags())
+ self.create_during_step_base("thread step-in -m all-threads", 'stop reason = step in')
def setUp(self):
# Call super's setUp().
@@ -73,18 +46,6 @@ class CreateDuringStepTestCase(TestBase):
self.breakpoint = line_number('main.cpp', '// Set breakpoint here')
self.continuepoint = line_number('main.cpp', '// Continue from here')
- def create_during_step_inst_test(self):
- """Test thread creation while using step-inst."""
- self.create_during_step_base("thread step-inst -m all-threads", 'stop reason = instruction step')
-
- def create_during_step_over_test(self):
- """Test thread creation while using step-over."""
- self.create_during_step_base("thread step-over -m all-threads", 'stop reason = step over')
-
- def create_during_step_in_test(self):
- """Test thread creation while using step-in."""
- self.create_during_step_base("thread step-in -m all-threads", 'stop reason = step in')
-
def create_during_step_base(self, step_cmd, step_stop_reason):
"""Test thread creation while using step-in."""
exe = os.path.join(os.getcwd(), "a.out")
diff --git a/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py b/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py
index 9d6974d8865..cecc5d91f78 100644
--- a/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py
+++ b/lldb/test/functionalities/thread/exit_during_break/TestExitDuringBreak.py
@@ -12,32 +12,19 @@ class ExitDuringBreakpointTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @dsym_test
- def test_with_dsym(self):
- """Test thread exit during breakpoint handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.exit_during_breakpoint_test()
-
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
- @expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
- @expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- @dwarf_test
- def test_with_dwarf(self):
- """Test thread exit during breakpoint handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.exit_during_breakpoint_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number for our breakpoint.
self.breakpoint = line_number('main.cpp', '// Set breakpoint here')
- def exit_during_breakpoint_test(self):
+ @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
+ @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
+ @expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
+ @expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
+ def test(self):
"""Test thread exit during breakpoint handling."""
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py b/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py
index 0908bbd217d..a69bb7f2a76 100644
--- a/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py
+++ b/lldb/test/functionalities/thread/exit_during_step/TestExitDuringStep.py
@@ -12,68 +12,35 @@ class ExitDuringStepTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @dsym_test
- def test_thread_state_is_stopped_with_dsym(self):
- """Test thread exit during step handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.thread_state_is_stopped()
-
@expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
@expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureWindows("llvm.org/pr24681")
- @dwarf_test
- def test_thread_state_is_stopped_with_dwarf(self):
+ def test_thread_state_is_stopped(self):
"""Test thread exit during step handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.thread_state_is_stopped()
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test thread exit during step handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.exit_during_step_inst_test()
-
- @skipUnlessDarwin
- @dsym_test
- def test_step_over_with_dsym(self):
- """Test thread exit during step-over handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.exit_during_step_over_test()
-
- @skipUnlessDarwin
- @dsym_test
- def test_step_in_with_dsym(self):
- """Test thread exit during step-in handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.exit_during_step_in_test()
+ self.build(dictionary=self.getBuildFlags())
+ self.exit_during_step_base("thread step-in -m all-threads", 'stop reason = step in', True)
@skipIfFreeBSD # llvm.org/pr21411: test is hanging
@expectedFailureWindows("llvm.org/pr24681")
- @dwarf_test
- def test_with_dwarf(self):
+ def test(self):
"""Test thread exit during step handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.exit_during_step_inst_test()
+ self.build(dictionary=self.getBuildFlags())
+ self.exit_during_step_base("thread step-inst -m all-threads", 'stop reason = instruction step', False)
@skipIfFreeBSD # llvm.org/pr21411: test is hanging
@expectedFailureWindows("llvm.org/pr24681")
- @dwarf_test
- def test_step_over_with_dwarf(self):
+ def test_step_over(self):
"""Test thread exit during step-over handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.exit_during_step_over_test()
+ self.build(dictionary=self.getBuildFlags())
+ self.exit_during_step_base("thread step-over -m all-threads", 'stop reason = step over', False)
@skipIfFreeBSD # llvm.org/pr21411: test is hanging
@expectedFailureWindows("llvm.org/pr24681")
- @dwarf_test
- def test_step_in_with_dwarf(self):
+ def test_step_in(self):
"""Test thread exit during step-in handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.exit_during_step_in_test()
+ self.build(dictionary=self.getBuildFlags())
+ self.exit_during_step_base("thread step-in -m all-threads", 'stop reason = step in', False)
def setUp(self):
# Call super's setUp().
@@ -82,22 +49,6 @@ class ExitDuringStepTestCase(TestBase):
self.breakpoint = line_number('main.cpp', '// Set breakpoint here')
self.continuepoint = line_number('main.cpp', '// Continue from here')
- def exit_during_step_inst_test(self):
- """Test thread exit while using step-inst."""
- self.exit_during_step_base("thread step-inst -m all-threads", 'stop reason = instruction step', False)
-
- def exit_during_step_over_test(self):
- """Test thread exit while using step-over."""
- self.exit_during_step_base("thread step-over -m all-threads", 'stop reason = step over', False)
-
- def exit_during_step_in_test(self):
- """Test thread exit while using step-in."""
- self.exit_during_step_base("thread step-in -m all-threads", 'stop reason = step in', False)
-
- def thread_state_is_stopped (self):
- """Go to first point where all threads are stopped, and test that the thread state is correctly set."""
- self.exit_during_step_base("thread step-in -m all-threads", 'stop reason = step in', True)
-
def exit_during_step_base(self, step_cmd, step_stop_reason, test_thread_state):
"""Test thread exit during step handling."""
exe = os.path.join(os.getcwd(), "a.out")
diff --git a/lldb/test/functionalities/thread/jump/TestThreadJump.py b/lldb/test/functionalities/thread/jump/TestThreadJump.py
index d1c279fd7d2..3919a242127 100644
--- a/lldb/test/functionalities/thread/jump/TestThreadJump.py
+++ b/lldb/test/functionalities/thread/jump/TestThreadJump.py
@@ -12,29 +12,9 @@ class ThreadJumpTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
+ def test(self):
"""Test thread jump handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.thread_jump_test()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test thread jump handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.thread_jump_test()
-
- def do_min_test(self, start, jump, var, value):
- self.runCmd("j %i" % start) # jump to the start marker
- self.runCmd("thread step-in") # step into the min fn
- self.runCmd("j %i" % jump) # jump to the branch we're interested in
- self.runCmd("thread step-out") # return out
- self.runCmd("thread step-over") # assign to the global
- self.expect("expr %s" % var, substrs = [value]) # check it
-
- def thread_jump_test(self):
- """Test thread exit handling."""
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -67,6 +47,14 @@ class ThreadJumpTestCase(TestBase):
# Try jumping to another function (without forcing)
self.expect("j main.cpp:%i" % self.mark1, COMMAND_FAILED_AS_EXPECTED, error = True,
substrs = ["error"])
+
+ def do_min_test(self, start, jump, var, value):
+ self.runCmd("j %i" % start) # jump to the start marker
+ self.runCmd("thread step-in") # step into the min fn
+ self.runCmd("j %i" % jump) # jump to the branch we're interested in
+ self.runCmd("thread step-out") # return out
+ self.runCmd("thread step-over") # assign to the global
+ self.expect("expr %s" % var, substrs = [value]) # check it
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py b/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py
index bf0b2bbd16c..cf6cda62a30 100644
--- a/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py
+++ b/lldb/test/functionalities/thread/multi_break/TestMultipleBreakpoints.py
@@ -12,32 +12,19 @@ class MultipleBreakpointTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @dsym_test
- def test_with_dsym(self):
- """Test simultaneous breakpoints in multiple threads."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.multiple_breakpoint_test()
-
- @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
- @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
- @expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
- @expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- @dwarf_test
- def test_with_dwarf(self):
- """Test simultaneous breakpoints in multiple threads."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.multiple_breakpoint_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number for our breakpoint.
self.breakpoint = line_number('main.cpp', '// Set breakpoint here')
- def multiple_breakpoint_test(self):
+ @expectedFailureDarwin("llvm.org/pr15824") # thread states not properly maintained
+ @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
+ @expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
+ @expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
+ def test(self):
"""Test simultaneous breakpoints in multiple threads."""
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/thread/state/TestThreadStates.py b/lldb/test/functionalities/thread/state/TestThreadStates.py
index 41b2c34a82b..e1f29a40b05 100644
--- a/lldb/test/functionalities/thread/state/TestThreadStates.py
+++ b/lldb/test/functionalities/thread/state/TestThreadStates.py
@@ -12,88 +12,43 @@ class ThreadStateTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @expectedFailureDarwin("rdar://15367566")
- def test_state_after_breakpoint_with_dsym(self):
- """Test thread state after breakpoint."""
- self.buildDsym(dictionary=self.getBuildFlags(use_cpp11=False))
- self.thread_state_after_breakpoint_test()
-
@expectedFailureDarwin("rdar://15367566")
@expectedFailureFreeBSD('llvm.org/pr15824')
@expectedFailureLinux("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- @dwarf_test
- def test_state_after_breakpoint_with_dwarf(self):
+ def test_state_after_breakpoint(self):
"""Test thread state after breakpoint."""
- self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False))
+ self.build(dictionary=self.getBuildFlags(use_cpp11=False))
self.thread_state_after_breakpoint_test()
- @skipUnlessDarwin
- @dsym_test
- def test_state_after_continue_with_dsym(self):
- """Test thread state after continue."""
- self.buildDsym(dictionary=self.getBuildFlags(use_cpp11=False))
- self.thread_state_after_continue_test()
-
- @dwarf_test
@skipIfDarwin # 'llvm.org/pr23669', cause Python crash randomly
@expectedFailureDarwin('llvm.org/pr23669')
@expectedFailureWindows("llvm.org/pr24660")
- def test_state_after_continue_with_dwarf(self):
+ def test_state_after_continue(self):
"""Test thread state after continue."""
- self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False))
- self.thread_state_after_continue_test()
-
- @skipUnlessDarwin
- @skipIfDarwin # 'llvm.org/pr23669', cause Python crash randomly
- @expectedFailureDarwin('llvm.org/pr23669')
- @dsym_test
- def test_state_after_expression_with_dsym(self):
- """Test thread state after expression."""
- self.buildDsym(dictionary=self.getBuildFlags(use_cpp11=False))
+ self.build(dictionary=self.getBuildFlags(use_cpp11=False))
self.thread_state_after_continue_test()
@skipIfDarwin # 'llvm.org/pr23669', cause Python crash randomly
@expectedFailureDarwin('llvm.org/pr23669')
@expectedFailureWindows("llvm.org/pr24660")
- @dwarf_test
- def test_state_after_expression_with_dwarf(self):
+ def test_state_after_expression(self):
"""Test thread state after expression."""
- self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False))
+ self.build(dictionary=self.getBuildFlags(use_cpp11=False))
self.thread_state_after_continue_test()
- @skipUnlessDarwin
- @dsym_test
- @unittest2.expectedFailure("llvm.org/pr16172") # thread states not properly maintained
- def test_process_interrupt_with_dsym(self):
- """Test process interrupt."""
- self.buildDsym(dictionary=self.getBuildFlags(use_cpp11=False))
- self.process_interrupt_test()
-
- @dwarf_test
@unittest2.expectedFailure("llvm.org/pr16712") # thread states not properly maintained
@expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- def test_process_interrupt_with_dwarf(self):
+ def test_process_interrupt(self):
"""Test process interrupt."""
- self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False))
+ self.build(dictionary=self.getBuildFlags(use_cpp11=False))
self.process_interrupt_test()
- @skipUnlessDarwin
- @dsym_test
- @unittest2.expectedFailure("llvm.org/pr15824") # thread states not properly maintained
- def test_process_state_with_dsym(self):
- """Test thread states (comprehensive)."""
- self.buildDsym(dictionary=self.getBuildFlags(use_cpp11=False))
- self.thread_states_test()
-
- @dwarf_test
@unittest2.expectedFailure("llvm.org/pr15824") # thread states not properly maintained
@expectedFailureWindows("llvm.org/pr24668") # Breakpoints not resolved correctly
- def test_process_state_with_dwarf(self):
+ def test_process_state(self):
"""Test thread states (comprehensive)."""
- self.buildDwarf(dictionary=self.getBuildFlags(use_cpp11=False))
+ self.build(dictionary=self.getBuildFlags(use_cpp11=False))
self.thread_states_test()
def setUp(self):
diff --git a/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py b/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py
index 2f26fc898d5..96a62e3ddca 100644
--- a/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py
+++ b/lldb/test/functionalities/thread/step_out/TestThreadStepOut.py
@@ -12,52 +12,31 @@ class ThreadStepOutTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_step_single_thread_with_dsym(self):
- """Test thread step out on one thread via command interpreter. """
- self.buildDsym(dictionary=self.getBuildFlags())
- self.step_out_test(self.step_out_single_thread_with_cmd)
-
@skipIfLinux # Test occasionally times out on the Linux build bot
@expectedFailureLinux("llvm.org/pr23477") # Test occasionally times out on the Linux build bot
@expectedFailureFreeBSD("llvm.org/pr18066") # inferior does not exit
@expectedFailureWindows # Test crashes
- @dwarf_test
- def test_step_single_thread_with_dwarf(self):
+ def test_step_single_thread(self):
"""Test thread step out on one thread via command interpreter. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.step_out_test(self.step_out_single_thread_with_cmd)
- @dsym_test
- def test_step_all_threads_with_dsym(self):
- """Test thread step out on all threads via command interpreter. """
- self.buildDsym(dictionary=self.getBuildFlags())
- self.step_out_test(self.step_out_all_threads_with_cmd)
-
@skipIfLinux # Test occasionally times out on the Linux build bot
@expectedFailureLinux("llvm.org/pr23477") # Test occasionally times out on the Linux build bot
@expectedFailureFreeBSD("llvm.org/pr19347") # 2nd thread stops at breakpoint
@expectedFailureWindows # Test crashes
- @dwarf_test
- def test_step_all_threads_with_dwarf(self):
+ def test_step_all_threads(self):
"""Test thread step out on all threads via command interpreter. """
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.step_out_test(self.step_out_all_threads_with_cmd)
- @dsym_test
- def test_python_with_dsym(self):
- """Test thread step out on one threads via Python API (dsym)."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.step_out_test(self.step_out_with_python)
-
@skipIfLinux # Test occasionally times out on the Linux build bot
@expectedFailureLinux("llvm.org/pr23477") # Test occasionally times out on the Linux build bot
@expectedFailureFreeBSD("llvm.org/pr19347")
@expectedFailureWindows("llvm.org/pr24681")
- @dwarf_test
- def test_python_with_dwarf(self):
+ def test_python(self):
"""Test thread step out on one thread via Python API (dwarf)."""
- self.buildDwarf(dictionary=self.getBuildFlags())
+ self.build(dictionary=self.getBuildFlags())
self.step_out_test(self.step_out_with_python)
def setUp(self):
diff --git a/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py b/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py
index 3155ef0e63d..99f7ac63b20 100644
--- a/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py
+++ b/lldb/test/functionalities/thread/thread_exit/TestThreadExit.py
@@ -12,21 +12,6 @@ class ThreadExitTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test thread exit handling."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.thread_exit_test()
-
- @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
- @expectedFailureWindows("llvm.org/pr24681")
- @dwarf_test
- def test_with_dwarf(self):
- """Test thread exit handling."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.thread_exit_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -36,8 +21,11 @@ class ThreadExitTestCase(TestBase):
self.break_3 = line_number('main.cpp', '// Set third breakpoint here')
self.break_4 = line_number('main.cpp', '// Set fourth breakpoint here')
- def thread_exit_test(self):
+ @expectedFailureFreeBSD("llvm.org/pr18190") # thread states not properly maintained
+ @expectedFailureWindows("llvm.org/pr24681")
+ def test(self):
"""Test thread exit handling."""
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py b/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
index 99eebc6daa4..1c22ae858a0 100644
--- a/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
+++ b/lldb/test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
@@ -12,27 +12,14 @@ class ThreadSpecificBreakTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_python(self):
- """Test that we obey thread conditioned breakpoints."""
- self.buildDsym()
- self.do_thread_specific_break()
-
@skipIfFreeBSD # test frequently times out or hangs
@expectedFailureFreeBSD('llvm.org/pr18522') # hits break in another thread in testrun
@expectedFailureWindows("llvm.org/pr24777")
@python_api_test
- @dwarf_test
@expectedFlakeyLinux # this test fails 6/100 dosep runs
- def test_with_dwarf_python(self):
- """Test that we obey thread conditioned breakpoints."""
- self.buildDwarf()
- self.do_thread_specific_break()
-
- def do_thread_specific_break(self):
+ def test_python(self):
"""Test that we obey thread conditioned breakpoints."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.dbg.HandleCommand ("log enable -f /tmp/lldb-testsuite-log.txt lldb step breakpoint process")
diff --git a/lldb/test/functionalities/tty/TestTerminal.py b/lldb/test/functionalities/tty/TestTerminal.py
index 3905459f68a..e346e1cd0cd 100644
--- a/lldb/test/functionalities/tty/TestTerminal.py
+++ b/lldb/test/functionalities/tty/TestTerminal.py
@@ -16,17 +16,13 @@ class LaunchInTerminalTestCase(TestBase):
# a program in a separate terminal window. It would be great if other platforms
# added support for this.
@skipUnlessDarwin
-
-
# If the test is being run under sudo, the spawned terminal won't retain that elevated
# privilege so it can't open the socket to talk back to the test case
- @unittest2.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0,
- "test cannot be run as root")
-
+ @unittest2.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, "test cannot be run as root")
# Do we need to disable this test if the testsuite is being run on a remote system?
# This env var is only defined when the shell is running in a local mac terminal window
@unittest2.skipUnless(os.environ.has_key('TERM_PROGRAM'), "test must be run on local system")
-
+ @no_debug_info_test
def test_launch_in_terminal (self):
exe = "/bin/ls"
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/functionalities/type_completion/TestTypeCompletion.py b/lldb/test/functionalities/type_completion/TestTypeCompletion.py
index db66ec89319..0e11ff67e3a 100644
--- a/lldb/test/functionalities/type_completion/TestTypeCompletion.py
+++ b/lldb/test/functionalities/type_completion/TestTypeCompletion.py
@@ -12,27 +12,11 @@ class TypeCompletionTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Check that types only get completed when necessary."""
- self.buildDsym()
- self.type_completion_commands()
-
- @dwarf_test
@expectedFailureIcc # often fails with 'NameAndAddress should be valid'
# Fails with gcc 4.8.1 with llvm.org/pr15301 LLDB prints incorrect sizes of STL containers
- def test_with_dwarf_and_run_command(self):
- """Check that types only get completed when necessary."""
- self.buildDwarf()
- self.type_completion_commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def type_completion_commands(self):
+ def test_with_run_command(self):
"""Check that types only get completed when necessary."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_source_regexp (self, "// Set break point at this line.")
diff --git a/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py b/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py
index 88501c3abd2..16b44857ac1 100644
--- a/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py
+++ b/lldb/test/functionalities/unwind/noreturn/TestNoreturnUnwind.py
@@ -11,24 +11,13 @@ import lldbutil
class NoreturnUnwind(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
- """Test that we can backtrace correctly with 'noreturn' functions on the stack"""
- self.buildDsym()
- self.setTearDownCleanup()
- self.noreturn_unwind_tests()
-
- @dwarf_test
@expectedFailurei386 #xfail to get buildbot green, failing config: i386 binary running on ubuntu 14.04 x86_64
@skipIfWindows # clang-cl does not support gcc style attributes.
- def test_with_dwarf (self):
+ def test (self):
"""Test that we can backtrace correctly with 'noreturn' functions on the stack"""
- self.buildDwarf()
+ self.build()
self.setTearDownCleanup()
- self.noreturn_unwind_tests()
- def noreturn_unwind_tests (self):
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py b/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py
index 541fe51e939..9aec735baca 100644
--- a/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py
+++ b/lldb/test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py
@@ -14,22 +14,11 @@ class SigtrampUnwind(TestBase):
# On different platforms the "_sigtramp" and "__kill" frames are likely to be different.
# This test could probably be adapted to run on linux/*bsd easily enough.
@skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
+ def test (self):
"""Test that we can backtrace correctly with _sigtramp on the stack"""
- self.buildDsym()
+ self.build()
self.setTearDownCleanup()
- self.sigtramp_unwind_tests()
- @skipUnlessDarwin
- @dwarf_test
- def test_with_dwarf (self):
- """Test that we can backtrace correctly with _sigtramp on the stack"""
- self.buildDwarf()
- self.setTearDownCleanup()
- self.sigtramp_unwind_tests()
-
- def sigtramp_unwind_tests (self):
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py b/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py
index 67885aa41c3..2f735871008 100644
--- a/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py
+++ b/lldb/test/functionalities/value_md5_crash/TestValueMD5Crash.py
@@ -12,28 +12,16 @@ class ValueMD5CrashTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Verify that the hash computing logic for ValueObject's values can't crash us."""
- self.buildDsym()
- self.doThings()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24663")
- def test_with_dwarf_and_run_command(self):
- """Verify that the hash computing logic for ValueObject's values can't crash us."""
- self.buildDwarf()
- self.doThings()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// break here')
- def doThings(self):
+ @expectedFailureWindows("llvm.org/pr24663")
+ def test_with_run_command(self):
"""Verify that the hash computing logic for ValueObject's values can't crash us."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py b/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
index 3c7067d07cb..624dc567aab 100644
--- a/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
+++ b/lldb/test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py
@@ -13,23 +13,6 @@ class HelloWatchLocationTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_hello_watchlocation_with_dsym(self):
- """Test watching a location with '-s size' option."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_watchlocation()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_hello_watchlocation_with_dwarf(self):
- """Test watching a location with '-s size' option."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_watchlocation()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -43,8 +26,12 @@ class HelloWatchLocationTestCase(TestBase):
self.exe_name = self.testMethodName
self.d = {'CXX_SOURCES': self.source, 'EXE': self.exe_name}
- def hello_watchlocation(self):
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_hello_watchlocation(self):
"""Test watching a location with '-s size' option."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py b/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
index 6dbd9e9337d..267f61c09eb 100644
--- a/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
+++ b/lldb/test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py
@@ -15,22 +15,6 @@ class HelloWatchpointTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_hello_watchpoint_with_dsym_using_watchpoint_set(self):
- """Test a simple sequence of watchpoint creation and watchpoint hit."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_watchpoint()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446")
- def test_hello_watchpoint_with_dwarf_using_watchpoint_set(self):
- """Test a simple sequence of watchpoint creation and watchpoint hit."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_watchpoint()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -43,8 +27,13 @@ class HelloWatchpointTestCase(TestBase):
self.exe_name = 'a.out'
self.d = {'C_SOURCES': self.source, 'EXE': self.exe_name}
- def hello_watchpoint(self):
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446")
+ def test_hello_watchpoint_using_watchpoint_set(self):
"""Test a simple sequence of watchpoint creation and watchpoint hit."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py b/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
index 06821fc8157..e1bd0ddc074 100644
--- a/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
+++ b/lldb/test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py
@@ -13,37 +13,19 @@ class WatchpointForMultipleThreadsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_watchpoint_multiple_threads_with_dsym(self):
- """Test that lldb watchpoint works for multiple threads."""
- self.buildDsym()
- self.setTearDownCleanup()
- self.hello_multiple_threads()
-
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watchpoint_multiple_threads_with_dwarf(self):
+ def test_watchpoint_multiple_threads(self):
"""Test that lldb watchpoint works for multiple threads."""
- self.buildDwarf()
+ self.build()
self.setTearDownCleanup()
self.hello_multiple_threads()
- @skipUnlessDarwin
- @dsym_test
- def test_watchpoint_multiple_threads_wp_set_and_then_delete_with_dsym(self):
- """Test that lldb watchpoint works for multiple threads, and after the watchpoint is deleted, the watchpoint event should no longer fires."""
- self.buildDsym()
- self.setTearDownCleanup()
- self.hello_multiple_threads_wp_set_and_then_delete()
-
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watchpoint_multiple_threads_wp_set_and_then_delete_with_dwarf(self):
+ def test_watchpoint_multiple_threads_wp_set_and_then_delete(self):
"""Test that lldb watchpoint works for multiple threads, and after the watchpoint is deleted, the watchpoint event should no longer fires."""
- self.buildDwarf()
+ self.build()
self.setTearDownCleanup()
self.hello_multiple_threads_wp_set_and_then_delete()
diff --git a/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py b/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
index fa546ba1647..d13c89ce667 100644
--- a/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
+++ b/lldb/test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py
@@ -13,44 +13,11 @@ class TestStepOverWatchpoint(TestBase):
def getCategories(self):
return ['basic_process']
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test stepping over watchpoints."""
- self.buildDsym()
- self.step_over_watchpoint()
-
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446")
- def test_with_dwarf(self):
- """Test stepping over watchpoints."""
- self.buildDwarf()
- self.step_over_watchpoint()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def step_inst_for_watchpoint(self, wp_id):
- watchpoint_hit = False
- current_line = self.frame().GetLineEntry().GetLine()
- while self.frame().GetLineEntry().GetLine() == current_line:
- self.thread().StepInstruction(False) # step_over=False
- stop_reason = self.thread().GetStopReason()
- if stop_reason == lldb.eStopReasonWatchpoint:
- self.assertFalse(watchpoint_hit, "Watchpoint already hit.")
- expected_stop_desc = "watchpoint %d" % wp_id
- actual_stop_desc = self.thread().GetStopDescription(20)
- self.assertTrue(actual_stop_desc == expected_stop_desc,
- "Watchpoint ID didn't match.")
- watchpoint_hit = True
- else:
- self.assertTrue(stop_reason == lldb.eStopReasonPlanComplete,
- STOPPED_DUE_TO_STEP_IN)
- self.assertTrue(watchpoint_hit, "Watchpoint never hit.")
-
- def step_over_watchpoint(self):
+ def test(self):
"""Test stepping over watchpoints."""
+ self.build()
exe = os.path.join(os.getcwd(), 'a.out')
target = self.dbg.CreateTarget(exe)
@@ -119,6 +86,24 @@ class TestStepOverWatchpoint(TestBase):
self.step_inst_for_watchpoint(2)
+ def step_inst_for_watchpoint(self, wp_id):
+ watchpoint_hit = False
+ current_line = self.frame().GetLineEntry().GetLine()
+ while self.frame().GetLineEntry().GetLine() == current_line:
+ self.thread().StepInstruction(False) # step_over=False
+ stop_reason = self.thread().GetStopReason()
+ if stop_reason == lldb.eStopReasonWatchpoint:
+ self.assertFalse(watchpoint_hit, "Watchpoint already hit.")
+ expected_stop_desc = "watchpoint %d" % wp_id
+ actual_stop_desc = self.thread().GetStopDescription(20)
+ self.assertTrue(actual_stop_desc == expected_stop_desc,
+ "Watchpoint ID didn't match.")
+ watchpoint_hit = True
+ else:
+ self.assertTrue(stop_reason == lldb.eStopReasonPlanComplete,
+ STOPPED_DUE_TO_STEP_IN)
+ self.assertTrue(watchpoint_hit, "Watchpoint never hit.")
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py b/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py
index 5f9a7f1e136..2c4b3e1142e 100644
--- a/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py
+++ b/lldb/test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py
@@ -20,22 +20,6 @@ class WatchedVariableHitWhenInScopeTestCase(TestBase):
# clearer API to express this.
#
- @dsym_test
- @unittest2.expectedFailure("rdar://problem/18685649")
- def test_watched_var_should_only_hit_when_in_scope_with_dsym(self):
- """Test that a variable watchpoint should only hit when in scope."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watched_var()
-
- @unittest2.expectedFailure("rdar://problem/18685649")
- @dwarf_test
- def test_watched_var_should_only_hit_when_in_scope_with_dwarf(self):
- """Test that a variable watchpoint should only hit when in scope."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watched_var()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -44,8 +28,12 @@ class WatchedVariableHitWhenInScopeTestCase(TestBase):
self.exe_name = self.testMethodName
self.d = {'C_SOURCES': self.source, 'EXE': self.exe_name}
- def watched_var(self):
- """Test a simple sequence of watchpoint creation and watchpoint hit."""
+ @unittest2.expectedFailure("rdar://problem/18685649")
+ def test_watched_var_should_only_hit_when_in_scope(self):
+ """Test that a variable watchpoint should only hit when in scope."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
index 11583a501b5..cc0523085e2 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py
@@ -26,93 +26,13 @@ class WatchpointCommandsTestCase(TestBase):
self.exe_name = self.testMethodName
self.d = {'C_SOURCES': self.source, 'EXE': self.exe_name}
- @skipUnlessDarwin
- @dsym_test
- def test_rw_watchpoint_with_dsym(self):
- """Test read_write watchpoint and expect to stop two times."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.normal_read_write_watchpoint()
-
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_rw_watchpoint_with_dwarf(self):
+ def test_rw_watchpoint(self):
"""Test read_write watchpoint and expect to stop two times."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.normal_read_write_watchpoint()
-
- @skipUnlessDarwin
- @dsym_test
- def test_rw_watchpoint_delete_with_dsym(self):
- """Test delete watchpoint and expect not to stop for watchpoint."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.delete_read_write_watchpoint()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_rw_watchpoint_delete_with_dwarf(self):
- """Test delete watchpoint and expect not to stop for watchpoint."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.delete_read_write_watchpoint()
-
- @skipUnlessDarwin
- @dsym_test
- def test_rw_watchpoint_set_ignore_count_with_dsym(self):
- """Test watchpoint ignore count and expect to not to stop at all."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.ignore_read_write_watchpoint()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_rw_watchpoint_set_ignore_count_with_dwarf(self):
- """Test watchpoint ignore count and expect to not to stop at all."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.ignore_read_write_watchpoint()
-
- @skipUnlessDarwin
- @dsym_test
- def test_rw_disable_after_first_stop_with_dsym(self):
- """Test read_write watchpoint but disable it after the first stop."""
- self.buildDsym(dictionary=self.d)
+ self.build(dictionary=self.d)
self.setTearDownCleanup(dictionary=self.d)
- self.read_write_watchpoint_disable_after_first_stop()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_rw_disable_after_first_stop__with_dwarf(self):
- """Test read_write watchpoint but disable it after the first stop."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.read_write_watchpoint_disable_after_first_stop()
-
- @skipUnlessDarwin
- @dsym_test
- def test_rw_disable_then_enable_with_dsym(self):
- """Test read_write watchpoint, disable initially, then enable it."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.read_write_watchpoint_disable_then_enable()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_rw_disable_then_enable_with_dwarf(self):
- """Test read_write watchpoint, disable initially, then enable it."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.read_write_watchpoint_disable_then_enable()
-
- def normal_read_write_watchpoint(self):
- """Do read_write watchpoint and expect to stop two times."""
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -166,147 +86,13 @@ class WatchpointCommandsTestCase(TestBase):
self.expect("watchpoint list -v",
substrs = ['hit_count = 2'])
- def delete_read_write_watchpoint(self):
- """Do delete watchpoint immediately and expect not to stop for watchpoint."""
- exe = os.path.join(os.getcwd(), self.exe_name)
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Add a breakpoint to set a watchpoint when stopped on the breakpoint.
- lldbutil.run_break_set_by_file_and_line (self, None, self.line, num_expected_locations=1)
-
- # Run the program.
- self.runCmd("run", RUN_SUCCEEDED)
-
- # We should be stopped again due to the breakpoint.
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
-
- # Now let's set a read_write-type watchpoint for 'global'.
- # There should be two watchpoint hits (see main.c).
- self.expect("watchpoint set variable -w read_write global", WATCHPOINT_CREATED,
- substrs = ['Watchpoint created', 'size = 4', 'type = rw',
- '%s:%d' % (self.source, self.decl)])
-
- # Delete the watchpoint immediately, but set auto-confirm to true first.
- self.runCmd("settings set auto-confirm true")
- self.expect("watchpoint delete",
- substrs = ['All watchpoints removed.'])
- # Restore the original setting of auto-confirm.
- self.runCmd("settings clear auto-confirm")
-
- # Use the '-v' option to do verbose listing of the watchpoint.
- self.runCmd("watchpoint list -v")
-
- self.runCmd("process continue")
-
- # There should be no more watchpoint hit and the process status should
- # be 'exited'.
- self.expect("process status",
- substrs = ['exited'])
-
- def ignore_read_write_watchpoint(self):
- """Test watchpoint ignore count and expect to not to stop at all."""
- exe = os.path.join(os.getcwd(), self.exe_name)
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Add a breakpoint to set a watchpoint when stopped on the breakpoint.
- lldbutil.run_break_set_by_file_and_line (self, None, self.line, num_expected_locations=1)
-
- # Run the program.
- self.runCmd("run", RUN_SUCCEEDED)
-
- # We should be stopped again due to the breakpoint.
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
-
- # Now let's set a read_write-type watchpoint for 'global'.
- # There should be two watchpoint hits (see main.c).
- self.expect("watchpoint set variable -w read_write global", WATCHPOINT_CREATED,
- substrs = ['Watchpoint created', 'size = 4', 'type = rw',
- '%s:%d' % (self.source, self.decl)])
-
- # Set the ignore count of the watchpoint immediately.
- self.expect("watchpoint ignore -i 2",
- substrs = ['All watchpoints ignored.'])
-
- # Use the '-v' option to do verbose listing of the watchpoint.
- # Expect to find an ignore_count of 2.
- self.expect("watchpoint list -v",
- substrs = ['hit_count = 0', 'ignore_count = 2'])
-
- self.runCmd("process continue")
-
- # There should be no more watchpoint hit and the process status should
- # be 'exited'.
- self.expect("process status",
- substrs = ['exited'])
-
- # Use the '-v' option to do verbose listing of the watchpoint.
- # Expect to find a hit_count of 2 as well.
- self.expect("watchpoint list -v",
- substrs = ['hit_count = 2', 'ignore_count = 2'])
-
- def read_write_watchpoint_disable_after_first_stop(self):
- """Do read_write watchpoint but disable it after the first stop."""
- exe = os.path.join(os.getcwd(), self.exe_name)
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Add a breakpoint to set a watchpoint when stopped on the breakpoint.
- lldbutil.run_break_set_by_file_and_line (self, "main.m")
-
- # Run the program.
- self.runCmd("run", RUN_SUCCEEDED)
-
- # We should be stopped again due to the breakpoint.
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
-
- # Now let's set a read_write-type watchpoint for 'global'.
- # There should be two watchpoint hits (see main.c).
- self.expect("watchpoint set variable -w read_write global", WATCHPOINT_CREATED,
- substrs = ['Watchpoint created', 'size = 4', 'type = rw',
- '%s:%d' % (self.source, self.decl)])
-
- # Use the '-v' option to do verbose listing of the watchpoint.
- # The hit count should be 0 initially.
- self.expect("watchpoint list -v",
- substrs = ['Number of supported hardware watchpoints:',
- 'hit_count = 0'])
-
- self.runCmd("process continue")
-
- # We should be stopped again due to the watchpoint (read_write type).
- # The stop reason of the thread should be watchpoint.
- self.expect("thread backtrace", STOPPED_DUE_TO_WATCHPOINT,
- substrs = ['stop reason = watchpoint'])
-
- self.runCmd("process continue")
-
- # We should be stopped again due to the watchpoint (read_write type).
- # The stop reason of the thread should be watchpoint.
- self.expect("thread backtrace", STOPPED_DUE_TO_WATCHPOINT,
- substrs = ['stop reason = watchpoint'])
-
- self.runCmd("process continue")
-
- # There should be no more watchpoint hit and the process status should
- # be 'exited'.
- self.expect("process status",
- substrs = ['exited'])
-
- # Use the '-v' option to do verbose listing of the watchpoint.
- # The hit count should now be 2.
- self.expect("watchpoint list -v",
- substrs = ['hit_count = 2'])
-
- def delete_read_write_watchpoint(self):
- """Do delete watchpoint immediately and expect not to stop for watchpoint."""
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_rw_watchpoint_delete(self):
+ """Test delete watchpoint and expect not to stop for watchpoint."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -345,8 +131,13 @@ class WatchpointCommandsTestCase(TestBase):
self.expect("process status",
substrs = ['exited'])
- def ignore_read_write_watchpoint(self):
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_rw_watchpoint_set_ignore_count(self):
"""Test watchpoint ignore count and expect to not to stop at all."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -389,8 +180,13 @@ class WatchpointCommandsTestCase(TestBase):
self.expect("watchpoint list -v",
substrs = ['hit_count = 2', 'ignore_count = 2'])
- def read_write_watchpoint_disable_after_first_stop(self):
- """Do read_write watchpoint but disable it after the first stop."""
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_rw_disable_after_first_stop(self):
+ """Test read_write watchpoint but disable it after the first stop."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -443,8 +239,13 @@ class WatchpointCommandsTestCase(TestBase):
self.expect("watchpoint list -v",
substrs = ['hit_count = 1'])
- def read_write_watchpoint_disable_then_enable(self):
- """Do read_write watchpoint, disable initially, then enable it."""
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_rw_disable_then_enable(self):
+ """Test read_write watchpoint, disable initially, then enable it."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
index cf1df78f255..2d269fd4d36 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py
@@ -25,42 +25,13 @@ class WatchpointLLDBCommandTestCase(TestBase):
self.exe_name = 'a%d.out' % self.test_number
self.d = {'CXX_SOURCES': self.source, 'EXE': self.exe_name}
- @skipUnlessDarwin
- @dsym_test
- def test_watchpoint_command_with_dsym(self):
- """Test 'watchpoint command'."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_command()
-
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watchpoint_command_with_dwarf(self):
+ def test_watchpoint_command(self):
"""Test 'watchpoint command'."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_command()
-
- @skipUnlessDarwin
- @dsym_test
- def test_watchpoint_command_can_disable_a_watchpoint_with_dsym(self):
- """Test that 'watchpoint command' action can disable a watchpoint after it is triggered."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_command_can_disable_a_watchpoint()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watchpoint_command_can_disable_a_watchpoint_with_dwarf(self):
- """Test that 'watchpoint command' action can disable a watchpoint after it is triggered."""
- self.buildDwarf(dictionary=self.d)
+ self.build(dictionary=self.d)
self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_command_can_disable_a_watchpoint()
-
- def watchpoint_command(self):
- """Do 'watchpoint command add'."""
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -108,8 +79,13 @@ class WatchpointLLDBCommandTestCase(TestBase):
self.expect("frame variable --show-globals cookie",
substrs = ['(int32_t)', 'cookie = 777'])
- def watchpoint_command_can_disable_a_watchpoint(self):
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_watchpoint_command_can_disable_a_watchpoint(self):
"""Test that 'watchpoint command' action can disable a watchpoint after it is triggered."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
+
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
index 98da3b97bea..79566fbd9e9 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py
@@ -25,26 +25,14 @@ class WatchpointPythonCommandTestCase(TestBase):
self.exe_name = self.testMethodName
self.d = {'CXX_SOURCES': self.source, 'EXE': self.exe_name}
- @skipUnlessDarwin
- @dsym_test
- def test_watchpoint_command_with_dsym(self):
- """Test 'watchpoint command'."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_command()
-
- @dwarf_test
@skipIfFreeBSD # timing out on buildbot
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- def test_watchpoint_command_with_dwarf(self):
+ def test_watchpoint_command(self):
"""Test 'watchpoint command'."""
- self.buildDwarf(dictionary=self.d)
+ self.build(dictionary=self.d)
self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_command()
- def watchpoint_command(self):
- """Do 'watchpoint command add'."""
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py b/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
index 929e66a3b21..726b80f1ed4 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py
@@ -25,25 +25,13 @@ class WatchpointConditionCmdTestCase(TestBase):
self.exe_name = self.testMethodName
self.d = {'CXX_SOURCES': self.source, 'EXE': self.exe_name}
- @skipUnlessDarwin
- @dsym_test
- def test_watchpoint_cond_with_dsym(self):
- """Test watchpoint condition."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_condition()
-
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watchpoint_cond_with_dwarf(self):
+ def test_watchpoint_cond(self):
"""Test watchpoint condition."""
- self.buildDwarf(dictionary=self.d)
+ self.build(dictionary=self.d)
self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_condition()
- def watchpoint_condition(self):
- """Do watchpoint condition 'global==5'."""
exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py b/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
index 92a3c1ba3c2..307be3a50f1 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py
@@ -10,46 +10,19 @@ class TestWatchpointEvents (TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test that adding, deleting and modifying watchpoints sends the appropriate events."""
- self.buildDsym()
- self.step_over_stepping()
-
- @python_api_test
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_with_dwarf_and_python_api(self):
- """Test that adding, deleting and modifying watchpoints sends the appropriate events."""
- self.buildDwarf()
- self.step_over_stepping()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers that we will step to in main:
self.main_source = "main.c"
- def GetWatchpointEvent (self, event_type):
- # We added a watchpoint so we should get a watchpoint added event.
- event = lldb.SBEvent()
- success = self.listener.WaitForEvent (1, event)
- self.assertTrue(success == True, "Successfully got watchpoint event")
- self.assertTrue (lldb.SBWatchpoint.EventIsWatchpointEvent(event), "Event is a watchpoint event.")
- found_type = lldb.SBWatchpoint.GetWatchpointEventTypeFromEvent (event)
- self.assertTrue (found_type == event_type, "Event is not correct type, expected: %d, found: %d"%(event_type, found_type))
- # There shouldn't be another event waiting around:
- found_event = self.listener.PeekAtNextEventForBroadcasterWithType (self.target_bcast, lldb.SBTarget.eBroadcastBitBreakpointChanged, event)
- if found_event:
- print "Found an event I didn't expect: ", event
-
- self.assertTrue (not found_event, "Only one event per change.")
-
- def step_over_stepping(self):
- """Use Python APIs to test stepping over and hitting breakpoints."""
+ @python_api_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_with_python_api(self):
+ """Test that adding, deleting and modifying watchpoints sends the appropriate events."""
+ self.build()
+
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -97,6 +70,21 @@ class TestWatchpointEvents (TestBase):
local_watch.SetCondition ("1 == 2")
self.GetWatchpointEvent (lldb.eWatchpointEventTypeConditionChanged)
+ def GetWatchpointEvent (self, event_type):
+ # We added a watchpoint so we should get a watchpoint added event.
+ event = lldb.SBEvent()
+ success = self.listener.WaitForEvent (1, event)
+ self.assertTrue(success == True, "Successfully got watchpoint event")
+ self.assertTrue (lldb.SBWatchpoint.EventIsWatchpointEvent(event), "Event is a watchpoint event.")
+ found_type = lldb.SBWatchpoint.GetWatchpointEventTypeFromEvent (event)
+ self.assertTrue (found_type == event_type, "Event is not correct type, expected: %d, found: %d"%(event_type, found_type))
+ # There shouldn't be another event waiting around:
+ found_event = self.listener.PeekAtNextEventForBroadcasterWithType (self.target_bcast, lldb.SBTarget.eBroadcastBitBreakpointChanged, event)
+ if found_event:
+ print "Found an event I didn't expect: ", event
+
+ self.assertTrue (not found_event, "Only one event per change.")
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
index 2d3d1be22ff..eaa05e83390 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py
@@ -12,23 +12,6 @@ class WatchLocationUsingWatchpointSetTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_watchlocation_with_dsym_using_watchpoint_set(self):
- """Test watching a location with 'watchpoint set expression -w write -s size' option."""
- self.buildDsym()
- self.setTearDownCleanup()
- self.watchlocation_using_watchpoint_set()
-
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watchlocation_with_dwarf_using_watchpoint_set(self):
- """Test watching a location with 'watchpoint set expression -w write -s size' option."""
- self.buildDwarf()
- self.setTearDownCleanup()
- self.watchlocation_using_watchpoint_set()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -40,8 +23,13 @@ class WatchLocationUsingWatchpointSetTestCase(TestBase):
self.violating_func = "do_bad_thing_with_location";
# Build dictionary to have unique executable names for each test method.
- def watchlocation_using_watchpoint_set(self):
- """Test watching a location with '-s size' option."""
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ @expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
+ def test_watchlocation_using_watchpoint_set(self):
+ """Test watching a location with 'watchpoint set expression -w write -s size' option."""
+ self.build()
+ self.setTearDownCleanup()
+
exe = os.path.join(os.getcwd(), 'a.out')
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py
index cf6be163d68..9683c88fce9 100644
--- a/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py
+++ b/lldb/test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py
@@ -12,12 +12,6 @@ class WatchpointSetErrorTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def test_error_cases_with_watchpoint_set(self):
- """Test error cases with the 'watchpoint set' command."""
- self.buildDwarf()
- self.setTearDownCleanup()
- self.error_cases_with_watchpoint_set()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -27,8 +21,11 @@ class WatchpointSetErrorTestCase(TestBase):
self.line = line_number(self.source, '// Set break point at this line.')
# Build dictionary to have unique executable names for each test method.
- def error_cases_with_watchpoint_set(self):
+ def test_error_cases_with_watchpoint_set(self):
"""Test error cases with the 'watchpoint set' command."""
+ self.build()
+ self.setTearDownCleanup()
+
exe = os.path.join(os.getcwd(), 'a.out')
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/help/TestHelp.py b/lldb/test/help/TestHelp.py
index 00589e4ce56..b30c143aa7d 100644
--- a/lldb/test/help/TestHelp.py
+++ b/lldb/test/help/TestHelp.py
@@ -13,6 +13,7 @@ class HelpCommandTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
+ @no_debug_info_test
def test_simplehelp(self):
"""A simple test of 'help' command and its output."""
self.expect("help",
@@ -24,12 +25,14 @@ class HelpCommandTestCase(TestBase):
self.expect("help", matching=True,
substrs = ['next'])
+ @no_debug_info_test
def test_help_on_help(self):
"""Testing the help on the help facility."""
self.expect("help help", matching=True,
substrs = ['--hide-aliases',
'--hide-user-commands'])
+ @no_debug_info_test
def version_number_string(self):
"""Helper function to find the version number string of lldb."""
plist = os.path.join(os.environ["LLDB_SRC"], "resources", "LLDB-Info.plist")
@@ -64,12 +67,13 @@ class HelpCommandTestCase(TestBase):
# Use None to signify that we are not able to grok the version number.
return None
-
+ @no_debug_info_test
def test_help_arch(self):
"""Test 'help arch' which should list of supported architectures."""
self.expect("help arch",
substrs = ['arm', 'x86_64', 'i386'])
+ @no_debug_info_test
def test_help_version(self):
"""Test 'help version' and 'version' commands."""
self.expect("help version",
@@ -85,11 +89,13 @@ class HelpCommandTestCase(TestBase):
self.expect("version",
patterns = search_regexp)
+ @no_debug_info_test
def test_help_should_not_crash_lldb(self):
"""Command 'help disasm' should not crash lldb."""
self.runCmd("help disasm", check=False)
self.runCmd("help unsigned-integer")
+ @no_debug_info_test
def test_help_should_not_hang_emacsshell(self):
"""Command 'settings set term-width 0' should not hang the help command."""
self.expect("settings set term-width 0",
@@ -99,12 +105,14 @@ class HelpCommandTestCase(TestBase):
self.expect("help",
startstr = 'Debugger commands:')
+ @no_debug_info_test
def test_help_breakpoint_set(self):
"""Test that 'help breakpoint set' does not print out redundant lines of:
'breakpoint set [-s <shlib-name>] ...'."""
self.expect("help breakpoint set", matching=False,
substrs = ['breakpoint set [-s <shlib-name>]'])
+ @no_debug_info_test
def test_help_image_dump_symtab_should_not_crash(self):
"""Command 'help image dump symtab' should not crash lldb."""
# 'image' is an alias for 'target modules'.
@@ -112,6 +120,7 @@ class HelpCommandTestCase(TestBase):
substrs = ['dump symtab',
'sort-order'])
+ @no_debug_info_test
def test_help_image_du_sym_is_ambiguous(self):
"""Command 'help image du sym' is ambiguous and spits out the list of candidates."""
self.expect("help image du sym",
@@ -120,17 +129,20 @@ class HelpCommandTestCase(TestBase):
'symfile',
'symtab'])
+ @no_debug_info_test
def test_help_image_du_line_should_work(self):
"""Command 'help image du line' is not ambiguous and should work."""
# 'image' is an alias for 'target modules'.
self.expect("help image du line",
substrs = ['Dump the line table for one or more compilation units'])
+ @no_debug_info_test
def test_help_target_variable_syntax(self):
"""Command 'help target variable' should display <variable-name> ..."""
self.expect("help target variable",
substrs = ['<variable-name> [<variable-name> [...]]'])
+ @no_debug_info_test
def test_help_watchpoint_and_its_args(self):
"""Command 'help watchpoint', 'help watchpt-id', and 'help watchpt-id-list' should work."""
self.expect("help watchpoint",
@@ -140,6 +152,7 @@ class HelpCommandTestCase(TestBase):
self.expect("help watchpt-id-list",
substrs = ['<watchpt-id-list>'])
+ @no_debug_info_test
def test_help_watchpoint_set(self):
"""Test that 'help watchpoint set' prints out 'expression' and 'variable'
as the possible subcommands."""
diff --git a/lldb/test/lang/c/anonymous/TestAnonymous.py b/lldb/test/lang/c/anonymous/TestAnonymous.py
index 6637909d5fc..da0ef5b9f11 100644
--- a/lldb/test/lang/c/anonymous/TestAnonymous.py
+++ b/lldb/test/lang/c/anonymous/TestAnonymous.py
@@ -10,105 +10,9 @@ class AnonymousTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_expr_nest_with_dsym(self):
- self.buildDsym()
- self.expr_nest()
-
- @dsym_test
- def test_expr_child_with_dsym(self):
- self.buildDsym()
- self.expr_child()
-
- @dsym_test
- def test_expr_grandchild_with_dsym(self):
- self.buildDsym()
- self.expr_grandchild()
-
- @dsym_test
- def test_expr_parent_with_dsym(self):
- self.buildDsym()
- self.expr_parent()
-
- @dsym_test
- def test_expr_null_with_dsym(self):
- self.buildDsym()
- self.expr_null()
-
- @dsym_test
- def test_child_by_name_with_dsym(self):
- self.buildDsym()
- self.child_by_name()
-
@skipIfIcc # llvm.org/pr15036: LLDB generates an incorrect AST layout for an anonymous struct when DWARF is generated by ICC
- @dwarf_test
- def test_expr_nest_with_dwarf(self):
- self.buildDwarf()
- self.expr_nest()
-
- @dwarf_test
- def test_expr_child_with_dwarf(self):
- self.buildDwarf()
- self.expr_child()
-
- @skipIfIcc # llvm.org/pr15036: This particular regression was introduced by r181498
- @dwarf_test
- def test_expr_grandchild_with_dwarf(self):
- self.buildDwarf()
- self.expr_grandchild()
-
- @dwarf_test
- def test_expr_parent_with_dwarf(self):
- self.buildDwarf()
- self.expr_parent()
-
- @expectedFailureWindows('llvm.org/pr21550')
- @dwarf_test
- def test_expr_null_with_dwarf(self):
- self.buildDwarf()
- self.expr_null()
-
- @dwarf_test
- def test_child_by_name_with_dwarf(self):
- self.buildDwarf()
- self.child_by_name()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line numbers to break in main.c.
- self.source = 'main.c'
- self.line0 = line_number(self.source, '// Set breakpoint 0 here.')
- self.line1 = line_number(self.source, '// Set breakpoint 1 here.')
- self.line2 = line_number(self.source, '// Set breakpoint 2 here.')
-
- def common_setup(self, line):
-
- # Set debugger into synchronous mode
- self.dbg.SetAsync(False)
-
- # Create a target
- exe = os.path.join(os.getcwd(), "a.out")
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target, VALID_TARGET)
-
- # Set breakpoints inside and outside methods that take pointers to the containing struct.
- lldbutil.run_break_set_by_file_and_line (self, self.source, line, num_expected_locations=1, loc_exact=True)
-
- # Now launch the process, and do not stop at entry point.
- process = target.LaunchSimple (None, None, self.get_process_working_directory())
- self.assertTrue(process, PROCESS_IS_VALID)
-
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
-
- # The breakpoint should have a hit count of 1.
- self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
- substrs = [' resolved, hit count = 1'])
-
- def expr_nest(self):
+ def test_expr_nest(self):
+ self.build()
self.common_setup(self.line0)
# These should display correctly.
@@ -118,7 +22,8 @@ class AnonymousTestCase(TestBase):
self.expect("expression n->b", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["= 2"])
- def expr_child(self):
+ def test_expr_child(self):
+ self.build()
self.common_setup(self.line1)
# These should display correctly.
@@ -128,7 +33,9 @@ class AnonymousTestCase(TestBase):
self.expect("expression c->grandchild.b", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["= 2"])
- def expr_grandchild(self):
+ @skipIfIcc # llvm.org/pr15036: This particular regression was introduced by r181498
+ def test_expr_grandchild(self):
+ self.build()
self.common_setup(self.line2)
# These should display correctly.
@@ -138,7 +45,8 @@ class AnonymousTestCase(TestBase):
self.expect("expression g.child.b", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["= 2"])
- def expr_parent(self):
+ def test_expr_parent(self):
+ self.build()
if "clang" in self.getCompiler() and "3.4" in self.getCompilerVersion():
self.skipTest("llvm.org/pr16214 -- clang emits partial DWARF for structures referenced via typedef")
self.common_setup(self.line2)
@@ -150,7 +58,9 @@ class AnonymousTestCase(TestBase):
self.expect("expression z.y", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["(type_y) $", "dummy = 2"])
- def expr_null(self):
+ @expectedFailureWindows('llvm.org/pr21550')
+ def test_expr_null(self):
+ self.build()
self.common_setup(self.line2)
# This should fail because pz is 0, but it succeeds on OS/X.
@@ -158,7 +68,8 @@ class AnonymousTestCase(TestBase):
# Note that this can also trigger llvm.org/pr15036 when run interactively at the lldb command prompt.
self.expect("expression *(type_z *)pz", error = True)
- def child_by_name(self):
+ def test_child_by_name(self):
+ self.build()
# Set debugger into synchronous mode
self.dbg.SetAsync(False)
@@ -197,6 +108,41 @@ class AnonymousTestCase(TestBase):
if not error.Success() or value != 0:
self.fail ("failed to get the correct value for element a in n")
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line numbers to break in main.c.
+ self.source = 'main.c'
+ self.line0 = line_number(self.source, '// Set breakpoint 0 here.')
+ self.line1 = line_number(self.source, '// Set breakpoint 1 here.')
+ self.line2 = line_number(self.source, '// Set breakpoint 2 here.')
+
+ def common_setup(self, line):
+
+ # Set debugger into synchronous mode
+ self.dbg.SetAsync(False)
+
+ # Create a target
+ exe = os.path.join(os.getcwd(), "a.out")
+ target = self.dbg.CreateTarget(exe)
+ self.assertTrue(target, VALID_TARGET)
+
+ # Set breakpoints inside and outside methods that take pointers to the containing struct.
+ lldbutil.run_break_set_by_file_and_line (self, self.source, line, num_expected_locations=1, loc_exact=True)
+
+ # Now launch the process, and do not stop at entry point.
+ process = target.LaunchSimple (None, None, self.get_process_working_directory())
+ self.assertTrue(process, PROCESS_IS_VALID)
+
+ # The stop reason of the thread should be breakpoint.
+ self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
+ substrs = ['stopped',
+ 'stop reason = breakpoint'])
+
+ # The breakpoint should have a hit count of 1.
+ self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
+ substrs = [' resolved, hit count = 1'])
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/c/array_types/TestArrayTypes.py b/lldb/test/lang/c/array_types/TestArrayTypes.py
index 6a5455524f1..e159efc4382 100644
--- a/lldb/test/lang/c/array_types/TestArrayTypes.py
+++ b/lldb/test/lang/c/array_types/TestArrayTypes.py
@@ -10,42 +10,15 @@ class ArrayTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test 'frame variable var_name' on some variables with array types."""
- self.buildDsym()
- self.array_types()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Use Python APIs to inspect variables with array types."""
- self.buildDsym()
- self.array_types_python()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test 'frame variable var_name' on some variables with array types."""
- self.buildDwarf()
- self.array_types()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Use Python APIs to inspect variables with array types."""
- self.buildDwarf()
- self.array_types_python()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.c', '// Set break point at this line.')
- def array_types(self):
+ def test_and_run_command(self):
"""Test 'frame variable var_name' on some variables with array types."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -92,8 +65,10 @@ class ArrayTypesTestCase(TestBase):
self.expect("frame variable --show-types long_6", VARIABLES_DISPLAYED_CORRECTLY,
startstr = '(long [6])')
- def array_types_python(self):
+ @python_api_test
+ def test_and_python_api(self):
"""Use Python APIs to inspect variables with array types."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/c/bitfields/TestBitfields.py b/lldb/test/lang/c/bitfields/TestBitfields.py
index 1ae77fc959e..090b31950e8 100644
--- a/lldb/test/lang/c/bitfields/TestBitfields.py
+++ b/lldb/test/lang/c/bitfields/TestBitfields.py
@@ -9,45 +9,17 @@ import lldbutil
class BitfieldsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test 'frame variable ...' on a variable with bitfields."""
- self.buildDsym()
- self.bitfields_variable()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Use Python APIs to inspect a bitfields variable."""
- self.buildDsym()
- self.bitfields_variable_python()
-
- @dwarf_test
- @skipIfWindows # BitFields exhibit crashes in record layout on Windows (http://llvm.org/pr21800)
- def test_with_dwarf_and_run_command(self):
- """Test 'frame variable ...' on a variable with bitfields."""
- self.buildDwarf()
- self.bitfields_variable()
-
- @python_api_test
- @dwarf_test
- @skipIfWindows # BitFields exhibit crashes in record layout on Windows (http://llvm.org/pr21800)
- def test_with_dwarf_and_python_api(self):
- """Use Python APIs to inspect a bitfields variable."""
- self.buildDwarf()
- self.bitfields_variable_python()
-
+
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.c', '// Set break point at this line.')
- def bitfields_variable(self):
+ @skipIfWindows # BitFields exhibit crashes in record layout on Windows (http://llvm.org/pr21800)
+ def test_and_run_command(self):
"""Test 'frame variable ...' on a variable with bitfields."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -120,8 +92,11 @@ class BitfieldsTestCase(TestBase):
self.expect("expr (more_bits.d)", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ['uint8_t', '\\0'])
- def bitfields_variable_python(self):
+ @python_api_test
+ @skipIfWindows # BitFields exhibit crashes in record layout on Windows (http://llvm.org/pr21800)
+ def test_and_python_api(self):
"""Use Python APIs to inspect a bitfields variable."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/c/blocks/TestBlocks.py b/lldb/test/lang/c/blocks/TestBlocks.py
index 1a247e90451..6dd4bec46e4 100644
--- a/lldb/test/lang/c/blocks/TestBlocks.py
+++ b/lldb/test/lang/c/blocks/TestBlocks.py
@@ -11,50 +11,25 @@ class BlocksTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
lines = []
- @dsym_test
- @unittest2.expectedFailure("rdar://problem/10413887 - Call blocks in expressions")
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @unittest2.expectedFailure("rdar://problem/10413887 - Call blocks in expressions")
- @dwarf_test
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers to break at.
self.lines.append(line_number('main.c', '// Set breakpoint 0 here.'))
self.lines.append(line_number('main.c', '// Set breakpoint 1 here.'))
-
- def common_setup(self):
+
+ @unittest2.expectedFailure("rdar://problem/10413887 - Call blocks in expressions")
+ def test_expr(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
- self.is_started = False
+ self.is_started = False
# Break inside the foo function which takes a bar_ptr argument.
- for line in self.lines:
+ for line in self.lines:
lldbutil.run_break_set_by_file_and_line (self, "main.c", line, num_expected_locations=1, loc_exact=True)
- def wait_for_breakpoint(self):
- if self.is_started == False:
- self.is_started = True
- self.runCmd("process launch", RUN_SUCCEEDED)
- else:
- self.runCmd("process continue", RUN_SUCCEEDED)
-
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
-
- def expr(self):
- self.common_setup()
-
self.wait_for_breakpoint()
self.expect("expression a + b", VARIABLES_DISPLAYED_CORRECTLY,
@@ -68,6 +43,18 @@ class BlocksTestCase(TestBase):
# This should display correctly.
self.expect("expression (int)neg (-12)", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["= 12"])
+
+ def wait_for_breakpoint(self):
+ if self.is_started == False:
+ self.is_started = True
+ self.runCmd("process launch", RUN_SUCCEEDED)
+ else:
+ self.runCmd("process continue", RUN_SUCCEEDED)
+
+ # The stop reason of the thread should be breakpoint.
+ self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
+ substrs = ['stopped',
+ 'stop reason = breakpoint'])
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/c/const_variables/TestConstVariables.py b/lldb/test/lang/c/const_variables/TestConstVariables.py
index ba2182bd085..8954e49a189 100644
--- a/lldb/test/lang/c/const_variables/TestConstVariables.py
+++ b/lldb/test/lang/c/const_variables/TestConstVariables.py
@@ -10,12 +10,6 @@ class ConstVariableTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test interpreted and JITted expressions on constant values."""
- self.buildDsym()
- self.const_variable()
-
@expectedFailureAll(
oslist=["freebsd", "linux"],
compiler="clang", compiler_version=["<", "3.5"])
@@ -28,18 +22,9 @@ class ConstVariableTestCase(TestBase):
@expectedFailureAll(oslist=["freebsd", "linux"], compiler="icc")
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
@expectedFailureWindows("llvm.org/pr24490: We shouldn't be using platform-specific names like `getpid` in tests")
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test interpreted and JITted expressions on constant values."""
- self.buildDwarf()
- self.const_variable()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def const_variable(self):
+ def test_and_run_command(self):
"""Test interpreted and JITted expressions on constant values."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/c/enum_types/TestEnumTypes.py b/lldb/test/lang/c/enum_types/TestEnumTypes.py
index 7ca36e1c236..96d290739a8 100644
--- a/lldb/test/lang/c/enum_types/TestEnumTypes.py
+++ b/lldb/test/lang/c/enum_types/TestEnumTypes.py
@@ -10,29 +10,15 @@ class EnumTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test 'image lookup -t days' and check for correct display and enum value printing."""
- self.buildDsym()
- self.image_lookup_for_enum_type()
-
- # rdar://problem/8394746
- # 'image lookup -t days' returns nothing with dwarf debug format.
- @dwarf_test
- def test_with_dwarf(self):
- """Test 'image lookup -t days' and check for correct display and enum value printing."""
- self.buildDwarf()
- self.image_lookup_for_enum_type()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.c', '// Set break point at this line.')
- def image_lookup_for_enum_type(self):
- """Test 'image lookup -t days' and check for correct display."""
+ def test(self):
+ """Test 'image lookup -t days' and check for correct display and enum value printing."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -80,6 +66,7 @@ class EnumTypesTestCase(TestBase):
self.expect("frame variable day", 'check for valid enumeration value',
substrs = [enum_value])
lldbutil.continue_to_breakpoint (self.process(), bkpt)
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/c/forward/TestForwardDeclaration.py b/lldb/test/lang/c/forward/TestForwardDeclaration.py
index 6fb0eb9645a..9eb8ae6d245 100644
--- a/lldb/test/lang/c/forward/TestForwardDeclaration.py
+++ b/lldb/test/lang/c/forward/TestForwardDeclaration.py
@@ -10,25 +10,9 @@ class ForwardDeclarationTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Display *bar_ptr when stopped on a function with forward declaration of struct bar."""
- self.buildDsym()
- self.forward_declaration()
-
- # rdar://problem/8648070
- # 'expression *bar_ptr' seg faults
- # rdar://problem/8546815
- # './dotest.py -v -t forward' fails for test_with_dwarf_and_run_command
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Display *bar_ptr when stopped on a function with forward declaration of struct bar."""
- self.buildDwarf()
- self.forward_declaration()
-
- def forward_declaration(self):
+ def test_and_run_command(self):
"""Display *bar_ptr when stopped on a function with forward declaration of struct bar."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/c/function_types/TestFunctionTypes.py b/lldb/test/lang/c/function_types/TestFunctionTypes.py
index 3426ae24ef8..f8ac8a68207 100644
--- a/lldb/test/lang/c/function_types/TestFunctionTypes.py
+++ b/lldb/test/lang/c/function_types/TestFunctionTypes.py
@@ -10,60 +10,15 @@ class FunctionTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test 'callback' has function ptr type, then break on the function."""
- self.buildDsym()
- self.function_types()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test 'callback' has function ptr type, then break on the function."""
- self.buildDwarf()
- self.function_types()
-
- @skipUnlessDarwin
- @dsym_test
- def test_pointers_with_dsym(self):
- """Test that a function pointer to 'printf' works and can be called."""
- self.buildDsym()
- self.function_pointers()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr21765")
- def test_pointers_with_dwarf(self):
- """Test that a function pointer to 'printf' works and can be called."""
- self.buildDwarf()
- self.function_pointers()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.c', '// Set break point at this line.')
- def runToBreakpoint(self):
- exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Break inside the main.
- lldbutil.run_break_set_by_file_and_line (self, "main.c", self.line, num_expected_locations=1, loc_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
-
- # The breakpoint should have a hit count of 1.
- self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
- substrs = [' resolved, hit count = 1'])
-
- def function_types(self):
+ def test(self):
"""Test 'callback' has function ptr type, then break on the function."""
-
+ self.build()
self.runToBreakpoint()
# Check that the 'callback' variable display properly.
@@ -78,10 +33,11 @@ class FunctionTypesTestCase(TestBase):
self.expect("process status", STOPPED_DUE_TO_BREAKPOINT,
substrs = ['a.out`string_not_empty',
'stop reason = breakpoint'])
-
- def function_pointers(self):
+
+ @expectedFailureWindows("llvm.org/pr21765")
+ def test_pointers(self):
"""Test that a function pointer to 'printf' works and can be called."""
-
+ self.build()
self.runToBreakpoint()
self.expect("expr string_not_empty",
@@ -98,6 +54,24 @@ class FunctionTypesTestCase(TestBase):
self.expect("expr $1(\"Hello world\\n\")",
startstr = '(int) $2 = 12')
+ def runToBreakpoint(self):
+ exe = os.path.join(os.getcwd(), "a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ # Break inside the main.
+ lldbutil.run_break_set_by_file_and_line (self, "main.c", self.line, num_expected_locations=1, loc_exact=True)
+
+ self.runCmd("run", RUN_SUCCEEDED)
+
+ # The stop reason of the thread should be breakpoint.
+ self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
+ substrs = ['stopped',
+ 'stop reason = breakpoint'])
+
+ # The breakpoint should have a hit count of 1.
+ self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
+ substrs = [' resolved, hit count = 1'])
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/c/global_variables/TestGlobalVariables.py b/lldb/test/lang/c/global_variables/TestGlobalVariables.py
index 6a4478c04d4..23005095f43 100644
--- a/lldb/test/lang/c/global_variables/TestGlobalVariables.py
+++ b/lldb/test/lang/c/global_variables/TestGlobalVariables.py
@@ -10,20 +10,6 @@ class GlobalVariablesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test 'frame variable --scope --no-args' which omits args and shows scopes."""
- self.buildDsym()
- self.global_variables()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24764")
- def test_with_dwarf(self):
- """Test 'frame variable --scope --no-args' which omits args and shows scopes."""
- self.buildDwarf()
- self.global_variables()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -32,8 +18,11 @@ class GlobalVariablesTestCase(TestBase):
self.line = line_number(self.source, '// Set break point at this line.')
self.shlib_names = ["a"]
- def global_variables(self):
+ @expectedFailureWindows("llvm.org/pr24764")
+ def test(self):
"""Test 'frame variable --scope --no-args' which omits args and shows scopes."""
+ self.build()
+
# Create a target by the debugger.
target = self.dbg.CreateTarget("a.out")
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/lang/c/modules/TestCModules.py b/lldb/test/lang/c/modules/TestCModules.py
index df47202421d..1ac8484a5f5 100644
--- a/lldb/test/lang/c/modules/TestCModules.py
+++ b/lldb/test/lang/c/modules/TestCModules.py
@@ -14,35 +14,15 @@ class CModulesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @expectedFailureDarwin('http://llvm.org/pr24302')
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @dwarf_test
@skipIfFreeBSD
@expectedFailureDarwin('http://llvm.org/pr24302')
@expectedFailureLinux('http://llvm.org/pr23456') # 'fopen' has unknown return type
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line number to break inside main().
- self.line = line_number('main.c', '// Set breakpoint 0 here.')
-
- def applies(self):
+ def test_expr(self):
if platform.system() == "Darwin" and platform.release() < StrictVersion('12.0.0'):
- return False
+ self.skipTest()
- return True
-
- def common_setup(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -60,12 +40,6 @@ class CModulesTestCase(TestBase):
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
- def expr(self):
- if not self.applies():
- return
-
- self.common_setup()
-
self.expect("expr @import Darwin; 3", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["int", "3"])
@@ -80,6 +54,12 @@ class CModulesTestCase(TestBase):
self.expect("expr stdin", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["(FILE *)", "0x"])
+
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line number to break inside main().
+ self.line = line_number('main.c', '// Set breakpoint 0 here.')
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/c/register_variables/TestRegisterVariables.py b/lldb/test/lang/c/register_variables/TestRegisterVariables.py
index 3891fd9aa44..9274524c87a 100644
--- a/lldb/test/lang/c/register_variables/TestRegisterVariables.py
+++ b/lldb/test/lang/c/register_variables/TestRegisterVariables.py
@@ -10,28 +10,12 @@ class RegisterVariableTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- @expectedFailureAll(
- oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0'])
- def test_with_dsym_and_run_command(self):
- """Test expressions on register values."""
- self.buildDsym()
- self.const_variable()
-
- @dwarf_test
+ @expectedFailureAll(oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0'], debug_info="dsym")
@expectedFailureClang(None, ['<', '3.5'])
@expectedFailureGcc(None, ['is', '4.8.2'])
- def test_with_dwarf_and_run_command(self):
- """Test expressions on register values."""
- self.buildDwarf()
- self.const_variable()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def const_variable(self):
+ def test_and_run_command(self):
"""Test expressions on register values."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/c/set_values/TestSetValues.py b/lldb/test/lang/c/set_values/TestSetValues.py
index 1f103b25cca..4e64a4100ca 100644
--- a/lldb/test/lang/c/set_values/TestSetValues.py
+++ b/lldb/test/lang/c/set_values/TestSetValues.py
@@ -10,20 +10,6 @@ class SetValuesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test settings and readings of program variables."""
- self.buildDsym()
- self.set_values()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr21765")
- def test_with_dwarf(self):
- """Test settings and readings of program variables."""
- self.buildDwarf()
- self.set_values()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -34,8 +20,10 @@ class SetValuesTestCase(TestBase):
self.line4 = line_number('main.c', '// Set break point #4.')
self.line5 = line_number('main.c', '// Set break point #5.')
- def set_values(self):
+ @expectedFailureWindows("llvm.org/pr21765")
+ def test(self):
"""Test settings and readings of program variables."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/c/shared_lib/TestSharedLib.py b/lldb/test/lang/c/shared_lib/TestSharedLib.py
index ddc86438371..f2a84af0161 100644
--- a/lldb/test/lang/c/shared_lib/TestSharedLib.py
+++ b/lldb/test/lang/c/shared_lib/TestSharedLib.py
@@ -9,29 +9,27 @@ class SharedLibTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_expr_with_dsym(self):
+ def test_expr(self):
"""Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDsym()
- self.expr()
+ if "clang" in self.getCompiler() and "3.4" in self.getCompilerVersion():
+ self.skipTest("llvm.org/pr16214 -- clang emits partial DWARF for structures referenced via typedef")
- @dwarf_test
- def test_expr_with_dwarf(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDwarf()
- self.expr()
+ self.build()
+ self.common_setup()
- @dsym_test
- def test_frame_variable_with_dsym(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDsym()
- self.frame_var()
+ # This should display correctly.
+ self.expect("expression --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
+ substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
- @dwarf_test
- def test_frame_variable_with_dwarf(self):
+ @unittest2.expectedFailure("rdar://problem/10704639")
+ def test_frame_variable(self):
"""Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDwarf()
- self.frame_var()
+ self.build()
+ self.common_setup()
+
+ # This should display correctly.
+ self.expect("frame variable --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
+ substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
def setUp(self):
# Call super's setUp().
@@ -67,27 +65,6 @@ class SharedLibTestCase(TestBase):
# The breakpoint should have a hit count of 1.
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
-
- def expr(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
-
- if "clang" in self.getCompiler() and "3.4" in self.getCompilerVersion():
- self.skipTest("llvm.org/pr16214 -- clang emits partial DWARF for structures referenced via typedef")
-
- self.common_setup()
-
- # This should display correctly.
- self.expect("expression --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
-
- @unittest2.expectedFailure("rdar://problem/10704639")
- def frame_var(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.common_setup()
-
- # This should display correctly.
- self.expect("frame variable --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py b/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py
index 2d921e8f9ac..c6cd427788c 100644
--- a/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py
+++ b/lldb/test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py
@@ -9,31 +9,29 @@ class SharedLibStrippedTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_expr_with_dsym(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDsym()
- self.expr()
-
- @dwarf_test
@expectedFailureWindows # Test crashes
- def test_expr_with_dwarf(self):
+ def test_expr(self):
"""Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDwarf()
- self.expr()
+ if "clang" in self.getCompiler() and "3.4" in self.getCompilerVersion():
+ self.skipTest("llvm.org/pr16214 -- clang emits partial DWARF for structures referenced via typedef")
- @dsym_test
- def test_frame_variable_with_dsym(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDsym()
- self.frame_var()
+ self.build()
+ self.common_setup()
+
+ # This should display correctly.
+ self.expect("expression --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
+ substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
- @dwarf_test
@expectedFailureWindows # Test crashes
- def test_frame_variable_with_dwarf(self):
+ @unittest2.expectedFailure("rdar://problem/10381325")
+ def test_frame_variable(self):
"""Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.buildDwarf()
- self.frame_var()
+ self.build()
+ self.common_setup()
+
+ # This should display correctly.
+ self.expect("frame variable --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
+ substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
def setUp(self):
# Call super's setUp().
@@ -69,28 +67,6 @@ class SharedLibStrippedTestCase(TestBase):
# The breakpoint should have a hit count of 1.
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
-
- def expr(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
-
- if "clang" in self.getCompiler() and "3.4" in self.getCompilerVersion():
- self.skipTest("llvm.org/pr16214 -- clang emits partial DWARF for structures referenced via typedef")
-
- self.common_setup()
-
- # This should display correctly.
- self.expect("expression --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
-
- @unittest2.expectedFailure
- # rdar://problem/10381325
- def frame_var(self):
- """Test that types work when defined in a shared library and forward-declared in the main executable"""
- self.common_setup()
-
- # This should display correctly.
- self.expect("frame variable --show-types -- *my_foo_ptr", VARIABLES_DISPLAYED_CORRECTLY,
- substrs = ["(foo)", "(sub_foo)", "other_element = 3"])
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py b/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py
index 4915f0e649b..11d639a8902 100644
--- a/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py
+++ b/lldb/test/lang/c/stepping/TestStepAndBreakpoints.py
@@ -13,32 +13,19 @@ class TestCStepping(TestBase):
def getCategories(self):
return ['basic_process']
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test stepping over vrs. hitting breakpoints & subsequent stepping in various forms."""
- self.buildDsym()
- self.step_over_stepping()
-
- @expectedFailureFreeBSD('llvm.org/pr17932')
- @expectedFailureLinux # llvm.org/pr14437
- @expectedFailureWindows("llvm.org/pr24777")
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test stepping over vrs. hitting breakpoints & subsequent stepping in various forms."""
- self.buildDwarf()
- self.step_over_stepping()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers that we will step to in main:
self.main_source = "main.c"
- def step_over_stepping(self):
- """Use Python APIs to test stepping over and hitting breakpoints."""
+ @expectedFailureFreeBSD('llvm.org/pr17932')
+ @expectedFailureLinux # llvm.org/pr14437
+ @expectedFailureWindows("llvm.org/pr24777")
+ @python_api_test
+ def test_and_python_api(self):
+ """Test stepping over vrs. hitting breakpoints & subsequent stepping in various forms."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/c/stepping/TestThreadStepping.py b/lldb/test/lang/c/stepping/TestThreadStepping.py
index 13c8ce88ddc..50322b8287c 100644
--- a/lldb/test/lang/c/stepping/TestThreadStepping.py
+++ b/lldb/test/lang/c/stepping/TestThreadStepping.py
@@ -13,19 +13,6 @@ class ThreadSteppingTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_step_out_with_dsym_and_run_command(self):
- """Exercise thread step-out and frame select followed by thread step-out."""
- self.buildDwarf()
- self.thread_step_out()
-
- @dwarf_test
- def test_step_out_with_dwarf_and_run_command(self):
- """Exercise thread step-out and frame select followed by thread step-out."""
- self.buildDwarf()
- self.thread_step_out()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -35,8 +22,9 @@ class ThreadSteppingTestCase(TestBase):
self.line3 = line_number('main.c', '// thread step-out while stopped at "c(2)"')
self.line4 = line_number('main.c', '// frame select 1, thread step-out while stopped at "c(3)"')
- def thread_step_out(self):
+ def test_step_out_with_run_command(self):
"""Exercise thread step-out and frame select followed by thread step-out."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/c/strings/TestCStrings.py b/lldb/test/lang/c/strings/TestCStrings.py
index 794be62aba6..a2752df7976 100644
--- a/lldb/test/lang/c/strings/TestCStrings.py
+++ b/lldb/test/lang/c/strings/TestCStrings.py
@@ -9,31 +9,14 @@ class CStringsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Tests that C strings work as expected in expressions"""
- self.buildDsym()
- self.static_method_commands()
-
- @dwarf_test
@expectedFailureWindows("llvm.org/pr21765")
- def test_with_dwarf_and_run_command(self):
- """Tests that C strings work as expected in expressions"""
- self.buildDwarf()
- self.static_method_commands()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def set_breakpoint(self, line):
- lldbutil.run_break_set_by_file_and_line (self, "main.c", line, num_expected_locations=1, loc_exact=True)
-
- def static_method_commands(self):
+ def test_with_run_command(self):
"""Tests that C strings work as expected in expressions"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
- self.set_breakpoint(line_number('main.c', '// breakpoint 1'))
+ line = line_number('main.c', '// breakpoint 1')
+ lldbutil.run_break_set_by_file_and_line (self, "main.c", line, num_expected_locations=1, loc_exact=True)
self.runCmd("process launch", RUN_SUCCEEDED)
diff --git a/lldb/test/lang/c/tls_globals/TestTlsGlobals.py b/lldb/test/lang/c/tls_globals/TestTlsGlobals.py
index fd90900ca1f..564f069f1b9 100644
--- a/lldb/test/lang/c/tls_globals/TestTlsGlobals.py
+++ b/lldb/test/lang/c/tls_globals/TestTlsGlobals.py
@@ -10,22 +10,6 @@ class TlsGlobalTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @unittest2.expectedFailure("rdar://7796742")
- def test_with_dsym(self):
- """Test thread-local storage."""
- self.buildDsym()
- self.tls_globals()
-
- @dwarf_test
- @unittest2.expectedFailure("rdar://7796742")
- @skipIfWindows # TLS works differently on Windows, this would need to be implemented separately.
- def test_with_dwarf(self):
- """Test thread-local storage."""
- self.buildDwarf()
- self.tls_globals()
-
def setUp(self):
TestBase.setUp(self)
@@ -37,9 +21,11 @@ class TlsGlobalTestCase(TestBase):
self.runCmd("settings set target.env-vars " + self.dylibPath + "=" + os.getcwd())
self.addTearDownHook(lambda: self.runCmd("settings remove target.env-vars " + self.dylibPath))
- def tls_globals(self):
+ @unittest2.expectedFailure("rdar://7796742")
+ @skipIfWindows # TLS works differently on Windows, this would need to be implemented separately.
+ def test(self):
"""Test thread-local storage."""
-
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/cpp/bool/TestCPPBool.py b/lldb/test/lang/cpp/bool/TestCPPBool.py
index fc1c57416e9..913821733c1 100644
--- a/lldb/test/lang/cpp/bool/TestCPPBool.py
+++ b/lldb/test/lang/cpp/bool/TestCPPBool.py
@@ -9,32 +9,13 @@ class CPPBoolTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that bool types work in the expression parser"""
- self.buildDsym()
- self.static_method_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that bool types work in the expression parser"""
- self.buildDwarf()
- self.static_method_commands()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def set_breakpoint(self, line):
- # Some compilers (for example GCC 4.4.7 and 4.6.1) emit multiple locations for the statement with the ternary
- # operator in the test program, while others emit only 1.
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=-1, loc_exact=False)
-
- def static_method_commands(self):
+ def test_with_run_command(self):
"""Test that bool types work in the expression parser"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
- self.set_breakpoint(line_number('main.cpp', '// breakpoint 1'))
+ line = line_number('main.cpp', '// breakpoint 1')
+ lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=-1, loc_exact=False)
self.runCmd("process launch", RUN_SUCCEEDED)
diff --git a/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py b/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py
index e38bd463c15..851b3430e48 100644
--- a/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py
+++ b/lldb/test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py
@@ -11,25 +11,9 @@ class CPPBreakpointCommandsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test a sequence of breakpoint command add, list, and delete."""
- self.buildDsym()
- self.cpp_breakpoints()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test a sequence of breakpoint command add, list, and delete."""
- self.buildDwarf()
- self.cpp_breakpoints()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def cpp_breakpoints (self):
+ def test(self):
"""Test a sequence of breakpoint command add, list, and delete."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
diff --git a/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py b/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py
index 2db9e694280..6adbcd6f790 100644
--- a/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py
+++ b/lldb/test/lang/cpp/call-function/TestCallCPPFunction.py
@@ -10,26 +10,14 @@ class CallCPPFunctionTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test calling a function by basename"""
- self.buildDsym()
- self.call_cpp_function()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- def test_with_dwarf_and_run_command(self):
- """Test calling a function by basename"""
- self.buildDwarf()
- self.call_cpp_function()
-
def setUp(self):
TestBase.setUp(self)
self.line = line_number('main.cpp', '// breakpoint')
- def call_cpp_function(self):
+ @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
+ def test_with_run_command(self):
"""Test calling a function by basename"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py b/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py
index 5a85c416128..a6cf56cd6f6 100644
--- a/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py
+++ b/lldb/test/lang/cpp/chained-calls/TestCppChainedCalls.py
@@ -6,22 +6,10 @@ class TestCppChainedCalls(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- self.buildDsym()
- self.check()
-
- @dwarf_test
@expectedFailureWindows("llvm.org/pr21765")
- def test_with_dwarf_and_run_command(self):
- self.buildDwarf()
- self.check()
-
- def setUp(self):
- TestBase.setUp(self)
+ def test_with_run_command(self):
+ self.build()
- def check(self):
# Get main source file
src_file = "main.cpp"
src_file_spec = lldb.SBFileSpec(src_file)
diff --git a/lldb/test/lang/cpp/char1632_t/TestChar1632T.py b/lldb/test/lang/cpp/char1632_t/TestChar1632T.py
index e415d837e12..f604c34516d 100644
--- a/lldb/test/lang/cpp/char1632_t/TestChar1632T.py
+++ b/lldb/test/lang/cpp/char1632_t/TestChar1632T.py
@@ -13,21 +13,6 @@ class Char1632TestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test that the C++11 support for char16_t and char32_t works correctly."""
- self.buildDsym()
- self.char1632()
-
- @expectedFailureIcc # ICC (13.1) does not emit the DW_TAG_base_type for char16_t and char32_t.
- @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- @dwarf_test
- def test_with_dwarf(self):
- """Test that the C++11 support for char16_t and char32_t works correctly."""
- self.buildDwarf()
- self.char1632()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -35,8 +20,12 @@ class Char1632TestCase(TestBase):
self.source = 'main.cpp'
self.lines = [ line_number(self.source, '// breakpoint1'),
line_number(self.source, '// breakpoint2') ]
- def char1632(self):
+
+ @expectedFailureIcc # ICC (13.1) does not emit the DW_TAG_base_type for char16_t and char32_t.
+ @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
+ def test(self):
"""Test that the C++11 support for char16_t and char32_t works correctly."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/lang/cpp/class_static/TestStaticVariables.py b/lldb/test/lang/cpp/class_static/TestStaticVariables.py
index 25bf9d8232f..88aeb72a799 100644
--- a/lldb/test/lang/cpp/class_static/TestStaticVariables.py
+++ b/lldb/test/lang/cpp/class_static/TestStaticVariables.py
@@ -11,42 +11,6 @@ import lldbutil
class StaticVariableTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- failing_compilers = ['clang', 'gcc']
-
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that file and class static variables display correctly."""
- self.buildDsym()
- self.static_variable_commands()
-
- @expectedFailureWindows("llvm.org/pr24764")
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that file and class static variables display correctly."""
- self.buildDwarf()
- self.static_variable_commands()
-
- @skipUnlessDarwin
- @expectedFailureClang(9980907)
- @expectedFailureGcc(9980907)
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test Python APIs on file and class static variables."""
- self.buildDsym()
- self.static_variable_python()
-
- @expectedFailureDarwin(9980907)
- @expectedFailureClang('Clang emits incomplete debug info.')
- @expectedFailureFreeBSD('llvm.org/pr20550 failing on FreeBSD-11')
- @expectedFailureGcc('GCC emits incomplete debug info.')
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test Python APIs on file and class static variables."""
- self.buildDwarf()
- self.static_variable_python()
def setUp(self):
# Call super's setUp().
@@ -54,8 +18,10 @@ class StaticVariableTestCase(TestBase):
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def static_variable_commands(self):
- """Test that that file and class static variables display correctly."""
+ @expectedFailureWindows("llvm.org/pr24764")
+ def test_with_run_command(self):
+ """Test that file and class static variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
@@ -79,8 +45,14 @@ class StaticVariableTestCase(TestBase):
self.expect("target variable A::g_points[1].x", VARIABLES_DISPLAYED_CORRECTLY,
startstr = "(int) A::g_points[1].x = 11")
- def static_variable_python(self):
+ @expectedFailureDarwin(9980907)
+ @expectedFailureClang('Clang emits incomplete debug info.')
+ @expectedFailureFreeBSD('llvm.org/pr20550 failing on FreeBSD-11')
+ @expectedFailureGcc('GCC emits incomplete debug info.')
+ @python_api_test
+ def test_with_python_api(self):
"""Test Python APIs on file and class static variables."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/cpp/class_types/TestClassTypes.py b/lldb/test/lang/cpp/class_types/TestClassTypes.py
index c0b8a249684..2e9353b5b65 100644
--- a/lldb/test/lang/cpp/class_types/TestClassTypes.py
+++ b/lldb/test/lang/cpp/class_types/TestClassTypes.py
@@ -11,79 +11,15 @@ class ClassTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test 'frame variable this' when stopped on a class constructor."""
- self.buildDsym()
- self.class_types()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Use Python APIs to create a breakpoint by (filespec, line)."""
- self.buildDsym()
- self.breakpoint_creation_by_filespec_python()
-
- # rdar://problem/8378863
- # "frame variable this" returns
- # error: unable to find any variables named 'this'
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test 'frame variable this' when stopped on a class constructor."""
- self.buildDwarf()
- self.class_types()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Use Python APIs to create a breakpoint by (filespec, line)."""
- self.buildDwarf()
- self.breakpoint_creation_by_filespec_python()
-
- @skipUnlessDarwin
- # rdar://problem/8557478
- # test/class_types test failures: runCmd: expr this->m_c_int
- @dsym_test
- def test_with_dsym_and_expr_parser(self):
- """Test 'frame variable this' and 'expr this' when stopped inside a constructor."""
- self.buildDsym()
- self.class_types_expr_parser()
-
- # rdar://problem/8557478
- # test/class_types test failures: runCmd: expr this->m_c_int
- @dwarf_test
- def test_with_dwarf_and_expr_parser(self):
- """Test 'frame variable this' and 'expr this' when stopped inside a constructor."""
- self.buildDwarf()
- self.class_types_expr_parser()
-
- @skipUnlessDarwin
- # rdar://problem/8557478
- # test/class_types test failures: runCmd: expr this->m_c_int
- @dsym_test
- def test_with_dsym_and_constructor_name(self):
- """Test 'frame variable this' and 'expr this' when stopped inside a constructor."""
- self.buildDsym()
- self.class_types_constructor_name()
-
- # rdar://problem/8557478
- # test/class_types test failures: runCmd: expr this->m_c_int
- @dwarf_test
- def test_with_dwarf_and_constructor_name (self):
- """Test 'frame variable this' and 'expr this' when stopped inside a constructor."""
- self.buildDwarf()
- self.class_types_constructor_name()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break for main.cpp.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def class_types(self):
+ def test_with_run_command(self):
"""Test 'frame variable this' when stopped on a class constructor."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -113,8 +49,10 @@ class ClassTypesTestCase(TestBase):
substrs = ['C *',
' this = '])
- def breakpoint_creation_by_filespec_python(self):
+ @python_api_test
+ def test_with_python_api(self):
"""Use Python APIs to create a breakpoint by (filespec, line)."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -171,8 +109,9 @@ class ClassTypesTestCase(TestBase):
process.Continue()
- def class_types_expr_parser(self):
+ def test_with_expr_parser(self):
"""Test 'frame variable this' and 'expr this' when stopped inside a constructor."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -222,9 +161,9 @@ class ClassTypesTestCase(TestBase):
self.expect("expression this->m_c_int", VARIABLES_DISPLAYED_CORRECTLY,
patterns = ['\(int\) \$[0-9]+ = 66'])
-
- def class_types_constructor_name (self):
- """Check whether the constructor name has the class name prepended."""
+ def test_with_constructor_name (self):
+ """Test 'frame variable this' and 'expr this' when stopped inside a constructor."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py b/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py
index 2e401147591..866b100cbf5 100644
--- a/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py
+++ b/lldb/test/lang/cpp/class_types/TestClassTypesDisassembly.py
@@ -11,66 +11,10 @@ import lldbutil
class IterateFrameAndDisassembleTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- failing_compilers = ['clang', 'gcc']
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Disassemble each call frame when stopped on C's constructor."""
- self.buildDsym()
- self.disassemble_call_stack()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Disassemble each call frame when stopped on C's constructor."""
- self.buildDwarf()
- self.disassemble_call_stack()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Disassemble each call frame when stopped on C's constructor."""
- self.buildDsym()
- self.disassemble_call_stack_python()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Disassemble each call frame when stopped on C's constructor."""
- self.buildDwarf()
- self.disassemble_call_stack_python()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line number to break for main.cpp.
- self.line = line_number('main.cpp', '// Set break point at this line.')
-
- def breakOnCtor(self):
- """Setup/run the program so it stops on C's constructor."""
- exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Break on the ctor function of class C.
- bpno = lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=-1)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint %d.'%(bpno)])
-
- # This test was failing because we fail to put the C:: in front of constructore.
- # We should maybe make another testcase to cover that specifically, but we shouldn't
- # fail this whole testcase for an inessential issue.
- # We should be stopped on the ctor function of class C.
- # self.expect("thread backtrace", BACKTRACE_DISPLAYED_CORRECTLY,
- # substrs = ['C::C'])
-
- def disassemble_call_stack(self):
+ def test_and_run_command(self):
"""Disassemble each call frame when stopped on C's constructor."""
+ self.build()
self.breakOnCtor()
raw_output = self.res.GetOutput()
@@ -89,8 +33,10 @@ class IterateFrameAndDisassembleTestCase(TestBase):
#print "function:", function
self.runCmd("disassemble -n '%s'" % function)
- def disassemble_call_stack_python(self):
+ @python_api_test
+ def test_and_python_api(self):
"""Disassemble each call frame when stopped on C's constructor."""
+ self.build()
self.breakOnCtor()
# Now use the Python API to get at each function on the call stack and
@@ -116,6 +62,33 @@ class IterateFrameAndDisassembleTestCase(TestBase):
if self.TraceOn():
print disasm
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line number to break for main.cpp.
+ self.line = line_number('main.cpp', '// Set break point at this line.')
+
+ def breakOnCtor(self):
+ """Setup/run the program so it stops on C's constructor."""
+ exe = os.path.join(os.getcwd(), "a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ # Break on the ctor function of class C.
+ bpno = lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=-1)
+
+ self.runCmd("run", RUN_SUCCEEDED)
+
+ # The stop reason of the thread should be breakpoint.
+ self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
+ substrs = ['stopped',
+ 'stop reason = breakpoint %d.'%(bpno)])
+
+ # This test was failing because we fail to put the C:: in front of constructore.
+ # We should maybe make another testcase to cover that specifically, but we shouldn't
+ # fail this whole testcase for an inessential issue.
+ # We should be stopped on the ctor function of class C.
+ # self.expect("thread backtrace", BACKTRACE_DISPLAYED_CORRECTLY,
+ # substrs = ['C::C'])
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/cpp/diamond/TestDiamond.py b/lldb/test/lang/cpp/diamond/TestDiamond.py
index b1c838c2556..308fb13accf 100644
--- a/lldb/test/lang/cpp/diamond/TestDiamond.py
+++ b/lldb/test/lang/cpp/diamond/TestDiamond.py
@@ -9,31 +9,10 @@ class CPPTestDiamondInheritance(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that virtual base classes work in when SBValue objects are used to explore the variable value"""
- self.buildDsym()
- self.diamong_inheritace()
-
- @dwarf_test
@expectedFailureWindows("llvm.org/pr24764")
- def test_with_dwarf_and_run_command(self):
- """Test that virtual base classes work in when SBValue objects are used to explore the variable value"""
- self.buildDwarf()
- self.diamong_inheritace()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def set_breakpoint(self, line):
- # Some compilers (for example GCC 4.4.7 and 4.6.1) emit multiple locations for the statement with the ternary
- # operator in the test program, while others emit only 1.
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=-1, loc_exact=False)
-
- def diamong_inheritace(self):
+ def test_with_run_command(self):
"""Test that virtual base classes work in when SBValue objects are used to explore the variable value"""
-
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -56,6 +35,11 @@ class CPPTestDiamondInheritance(TestBase):
self.assertTrue(frame.FindVariable("d").GetChildAtIndex(0).GetChildAtIndex(0).GetValueAsUnsigned(0) == 12345, "ensure Derived2 from j1 is correct");
thread.StepOver()
self.assertTrue(frame.FindVariable("d").GetChildAtIndex(0).GetChildAtIndex(0).GetValueAsUnsigned(0) == 12346, "ensure Derived2 from j2 is correct");
+
+ def set_breakpoint(self, line):
+ # Some compilers (for example GCC 4.4.7 and 4.6.1) emit multiple locations for the statement with the ternary
+ # operator in the test program, while others emit only 1.
+ lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=-1, loc_exact=False)
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py b/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py
index 23a9fc503b8..431f19f7ae4 100644
--- a/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py
+++ b/lldb/test/lang/cpp/dynamic-value/TestCppValueCast.py
@@ -13,38 +13,17 @@ class CppValueCastTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@unittest2.expectedFailure("rdar://problem/10808472 SBValue::Cast test case is failing (virtual inheritance)")
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_value_cast_with_dsym_and_virtual_inheritance(self):
+ def test_value_cast_with_virtual_inheritance(self):
"""Test SBValue::Cast(SBType) API for C++ types with virtual inheritance."""
- self.buildDsym(dictionary=self.d_virtual)
+ self.build(dictionary=self.d_virtual)
self.setTearDownCleanup(dictionary=self.d_virtual)
self.do_sbvalue_cast(self.exe_name)
- @unittest2.expectedFailure("rdar://problem/10808472 SBValue::Cast test case is failing (virtual inheritance)")
- @python_api_test
- @dwarf_test
- def test_value_cast_with_dwarf_and_virtual_inheritance(self):
- """Test SBValue::Cast(SBType) API for C++ types with virtual inheritance."""
- self.buildDwarf(dictionary=self.d_virtual)
- self.setTearDownCleanup(dictionary=self.d_virtual)
- self.do_sbvalue_cast(self.exe_name)
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_value_cast_with_dsym_and_regular_inheritance(self):
- """Test SBValue::Cast(SBType) API for C++ types with regular inheritance."""
- self.buildDsym(dictionary=self.d_regular)
- self.setTearDownCleanup(dictionary=self.d_regular)
- self.do_sbvalue_cast(self.exe_name)
-
@python_api_test
- @dwarf_test
- def test_value_cast_with_dwarf_and_regular_inheritance(self):
+ def test_value_cast_with_regular_inheritance(self):
"""Test SBValue::Cast(SBType) API for C++ types with regular inheritance."""
- self.buildDwarf(dictionary=self.d_regular)
+ self.build(dictionary=self.d_regular)
self.setTearDownCleanup(dictionary=self.d_regular)
self.do_sbvalue_cast(self.exe_name)
diff --git a/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py b/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py
index 838c7df439d..f7f9e67a014 100644
--- a/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py
+++ b/lldb/test/lang/cpp/dynamic-value/TestDynamicValue.py
@@ -12,23 +12,6 @@ class DynamicValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_get_dynamic_vals_with_dsym(self):
- """Test fetching C++ dynamic values from pointers & references."""
- self.buildDsym(dictionary=self.getBuildFlags())
- self.do_get_dynamic_vals()
-
- @expectedFailureFreeBSD # FIXME: This needs to be root-caused.
- @expectedFailureWindows("llvm.org/pr24663")
- @python_api_test
- @dwarf_test
- def test_get_dynamic_vals_with_dwarf(self):
- """Test fetching C++ dynamic values from pointers & references."""
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.do_get_dynamic_vals()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -41,66 +24,12 @@ class DynamicValueTestCase(TestBase):
self.main_second_call_line = line_number('pass-to-base.cpp',
'// Break here and get real address of reallyA.')
-
- def examine_value_object_of_this_ptr (self, this_static, this_dynamic, dynamic_location):
-
- # Get "this" as its static value
-
- self.assertTrue (this_static)
- this_static_loc = int (this_static.GetValue(), 16)
-
- # Get "this" as its dynamic value
-
- self.assertTrue (this_dynamic)
- this_dynamic_typename = this_dynamic.GetTypeName()
- self.assertTrue (this_dynamic_typename.find('B') != -1)
- this_dynamic_loc = int (this_dynamic.GetValue(), 16)
-
- # Make sure we got the right address for "this"
-
- self.assertTrue (this_dynamic_loc == dynamic_location)
-
- # And that the static address is greater than the dynamic one
-
- self.assertTrue (this_static_loc > this_dynamic_loc)
-
- # Now read m_b_value which is only in the dynamic value:
-
- use_dynamic = lldb.eDynamicCanRunTarget
- no_dynamic = lldb.eNoDynamicValues
-
- this_dynamic_m_b_value = this_dynamic.GetChildMemberWithName('m_b_value', use_dynamic)
- self.assertTrue (this_dynamic_m_b_value)
-
- m_b_value = int (this_dynamic_m_b_value.GetValue(), 0)
- self.assertTrue (m_b_value == 10)
-
- # Make sure it is not in the static version
-
- this_static_m_b_value = this_static.GetChildMemberWithName('m_b_value', no_dynamic)
- self.assertFalse (this_static_m_b_value)
-
- # Okay, now let's make sure that we can get the dynamic type of a child element:
-
- contained_auto_ptr = this_dynamic.GetChildMemberWithName ('m_client_A', use_dynamic)
- self.assertTrue (contained_auto_ptr)
- contained_b = contained_auto_ptr.GetChildMemberWithName ('_M_ptr', use_dynamic)
- if not contained_b:
- contained_b = contained_auto_ptr.GetChildMemberWithName ('__ptr_', use_dynamic)
- self.assertTrue (contained_b)
-
- contained_b_static = contained_auto_ptr.GetChildMemberWithName ('_M_ptr', no_dynamic)
- if not contained_b_static:
- contained_b_static = contained_auto_ptr.GetChildMemberWithName ('__ptr_', no_dynamic)
- self.assertTrue (contained_b_static)
-
- contained_b_addr = int (contained_b.GetValue(), 16)
- contained_b_static_addr = int (contained_b_static.GetValue(), 16)
-
- self.assertTrue (contained_b_addr < contained_b_static_addr)
-
- def do_get_dynamic_vals(self):
- """Get argument vals for the call stack when stopped on a breakpoint."""
+ @expectedFailureFreeBSD # FIXME: This needs to be root-caused.
+ @expectedFailureWindows("llvm.org/pr24663")
+ @python_api_test
+ def test_get_dynamic_vals(self):
+ """Test fetching C++ dynamic values from pointers & references."""
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
@@ -234,6 +163,62 @@ class DynamicValueTestCase(TestBase):
self.assertTrue (anotherA_loc == reallyA_loc)
self.assertTrue (anotherA_value.GetTypeName().find ('B') == -1)
+ def examine_value_object_of_this_ptr (self, this_static, this_dynamic, dynamic_location):
+ # Get "this" as its static value
+ self.assertTrue (this_static)
+ this_static_loc = int (this_static.GetValue(), 16)
+
+ # Get "this" as its dynamic value
+
+ self.assertTrue (this_dynamic)
+ this_dynamic_typename = this_dynamic.GetTypeName()
+ self.assertTrue (this_dynamic_typename.find('B') != -1)
+ this_dynamic_loc = int (this_dynamic.GetValue(), 16)
+
+ # Make sure we got the right address for "this"
+
+ self.assertTrue (this_dynamic_loc == dynamic_location)
+
+ # And that the static address is greater than the dynamic one
+
+ self.assertTrue (this_static_loc > this_dynamic_loc)
+
+ # Now read m_b_value which is only in the dynamic value:
+
+ use_dynamic = lldb.eDynamicCanRunTarget
+ no_dynamic = lldb.eNoDynamicValues
+
+ this_dynamic_m_b_value = this_dynamic.GetChildMemberWithName('m_b_value', use_dynamic)
+ self.assertTrue (this_dynamic_m_b_value)
+
+ m_b_value = int (this_dynamic_m_b_value.GetValue(), 0)
+ self.assertTrue (m_b_value == 10)
+
+ # Make sure it is not in the static version
+
+ this_static_m_b_value = this_static.GetChildMemberWithName('m_b_value', no_dynamic)
+ self.assertFalse (this_static_m_b_value)
+
+ # Okay, now let's make sure that we can get the dynamic type of a child element:
+
+ contained_auto_ptr = this_dynamic.GetChildMemberWithName ('m_client_A', use_dynamic)
+ self.assertTrue (contained_auto_ptr)
+ contained_b = contained_auto_ptr.GetChildMemberWithName ('_M_ptr', use_dynamic)
+ if not contained_b:
+ contained_b = contained_auto_ptr.GetChildMemberWithName ('__ptr_', use_dynamic)
+ self.assertTrue (contained_b)
+
+ contained_b_static = contained_auto_ptr.GetChildMemberWithName ('_M_ptr', no_dynamic)
+ if not contained_b_static:
+ contained_b_static = contained_auto_ptr.GetChildMemberWithName ('__ptr_', no_dynamic)
+ self.assertTrue (contained_b_static)
+
+ contained_b_addr = int (contained_b.GetValue(), 16)
+ contained_b_static_addr = int (contained_b_static.GetValue(), 16)
+
+ self.assertTrue (contained_b_addr < contained_b_static_addr)
+
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py b/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py
index 014a441625d..e8072efa8b2 100644
--- a/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py
+++ b/lldb/test/lang/cpp/enum_types/TestCPP11EnumTypes.py
@@ -10,108 +10,44 @@ class CPP11EnumTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_int8_t(self):
+ def test_int8_t(self):
"""Test C++11 enumeration class types as int8_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int8_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int8_t"'})
self.image_lookup_for_enum_type()
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_int16_t(self):
+ def test_int16_t(self):
"""Test C++11 enumeration class types as int16_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int16_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int16_t"'})
self.image_lookup_for_enum_type()
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_int32_t(self):
+ def test_int32_t(self):
"""Test C++11 enumeration class types as int32_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int32_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int32_t"'})
self.image_lookup_for_enum_type()
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_int64_t(self):
+ def test_int64_t(self):
"""Test C++11 enumeration class types as int64_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int64_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int64_t"'})
self.image_lookup_for_enum_type()
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_uint8_t(self):
+ def test_uint8_t(self):
"""Test C++11 enumeration class types as uint8_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint8_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint8_t"'})
self.image_lookup_for_enum_type()
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_uint16_t(self):
+ def test_uint16_t(self):
"""Test C++11 enumeration class types as uint16_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint16_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint16_t"'})
self.image_lookup_for_enum_type()
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_uint32_t(self):
+ def test_uint32_t(self):
"""Test C++11 enumeration class types as uint32_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint32_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint32_t"'})
self.image_lookup_for_enum_type()
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_uint64_t(self):
+ def test_uint64_t(self):
"""Test C++11 enumeration class types as uint64_t types."""
- self.buildDsym(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint64_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_int8_t(self):
- """Test C++11 enumeration class types as int8_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int8_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_int16_t(self):
- """Test C++11 enumeration class types as int16_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int16_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_int32_t(self):
- """Test C++11 enumeration class types as int32_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int32_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_int64_t(self):
- """Test C++11 enumeration class types as int64_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=int64_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_uint8_t(self):
- """Test C++11 enumeration class types as uint8_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint8_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_uint16_t(self):
- """Test C++11 enumeration class types as uint16_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint16_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_uint32_t(self):
- """Test C++11 enumeration class types as uint32_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint32_t"'})
- self.image_lookup_for_enum_type()
-
- @dwarf_test
- def test_with_dwarf_uint64_t(self):
- """Test C++11 enumeration class types as uint64_t types."""
- self.buildDwarf(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint64_t"'})
+ self.build(dictionary={'CFLAGS_EXTRAS': '"-DTEST_BLOCK_CAPTURED_VARS=uint64_t"'})
self.image_lookup_for_enum_type()
def setUp(self):
diff --git a/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py b/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
index c7af66062eb..cc6805e8dc1 100644
--- a/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
+++ b/lldb/test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py
@@ -12,28 +12,16 @@ class CPPBreakpointTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test lldb exception breakpoint command for CPP."""
- self.buildDsym()
- self.cpp_exceptions()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24538") # clang-cl does not support throw or catch
- def test_with_dwarf(self):
- """Test lldb exception breakpoint command for CPP."""
- self.buildDwarf()
- self.cpp_exceptions()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
self.source = 'exceptions.cpp'
self.catch_line = line_number(self.source, '// This is the line you should stop at for catch')
- def cpp_exceptions (self):
+ @expectedFailureWindows("llvm.org/pr24538") # clang-cl does not support throw or catch
+ def test(self):
"""Test lldb exception breakpoint command for CPP."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
@@ -73,8 +61,7 @@ class CPPBreakpointTestCase(TestBase):
self.assertTrue (frame_functions.count ("intervening_function(int)") == 0, "At catch our intervening function is off the stack")
self.assertTrue (frame_functions.count ("catches_exception(int)") == 1, "At catch our catch function is on the stack")
-
-
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py b/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py
index 9ea49d6133e..6299116d19a 100644
--- a/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py
+++ b/lldb/test/lang/cpp/global_operators/TestCppGlobalOperators.py
@@ -9,22 +9,10 @@ class TestCppGlobalOperators(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- self.buildDsym()
- self.check()
-
- @dwarf_test
@expectedFailureWindows("llvm.org/pr21765")
- def test_with_dwarf_and_run_command(self):
- self.buildDwarf()
- self.check()
-
- def setUp(self):
- TestBase.setUp(self)
+ def test_with_run_command(self):
+ self.build()
- def check(self):
# Get main source file
src_file = "main.cpp"
src_file_spec = lldb.SBFileSpec(src_file)
diff --git a/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py b/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py
index 090709242e8..3ea22f0b279 100644
--- a/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py
+++ b/lldb/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py
@@ -6,10 +6,9 @@ class TestCppIncompleteTypes(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dwarf_test
@skipIfGcc
- def test_with_dwarf_limit_debug_info(self):
- self.buildDwarf()
+ def test_limit_debug_info(self):
+ self.build()
frame = self.get_test_frame('limit')
value_f = frame.EvaluateExpression("f")
@@ -20,10 +19,9 @@ class TestCppIncompleteTypes(TestBase):
self.assertTrue(value_a.IsValid(), "'expr a' results in a valid SBValue object")
self.assertFalse(value_a.GetError().Success(), "'expr a' results in an error, but LLDB does not crash")
- @dwarf_test
@skipIfGcc
- def test_with_dwarf_partial_limit_debug_info(self):
- self.buildDwarf()
+ def test_partial_limit_debug_info(self):
+ self.build()
frame = self.get_test_frame('nolimit')
value_f = frame.EvaluateExpression("f")
@@ -34,9 +32,6 @@ class TestCppIncompleteTypes(TestBase):
self.assertTrue(value_a.IsValid(), "'expr a' results in a valid SBValue object")
self.assertTrue(value_a.GetError().Success(), "'expr a' is successful")
- def setUp(self):
- TestBase.setUp(self)
-
def get_test_frame(self, exe):
# Get main source file
src_file = "main.cpp"
diff --git a/lldb/test/lang/cpp/namespace/TestNamespace.py b/lldb/test/lang/cpp/namespace/TestNamespace.py
index 5a71398c739..fd598813e83 100644
--- a/lldb/test/lang/cpp/namespace/TestNamespace.py
+++ b/lldb/test/lang/cpp/namespace/TestNamespace.py
@@ -12,22 +12,6 @@ class NamespaceTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- # rdar://problem/8668674
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that anonymous and named namespace variables display correctly."""
- self.buildDsym()
- self.namespace_variable_commands()
-
- # rdar://problem/8668674
- @expectedFailureWindows("llvm.org/pr24764")
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that anonymous and named namespace variables display correctly."""
- self.buildDwarf()
- self.namespace_variable_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -40,8 +24,11 @@ class NamespaceTestCase(TestBase):
self.line_break = line_number('main.cpp',
'// Set break point at this line.')
- def namespace_variable_commands(self):
+ # rdar://problem/8668674
+ @expectedFailureWindows("llvm.org/pr24764")
+ def test_with_run_command(self):
"""Test that anonymous and named namespace variables display correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line_break, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/cpp/nsimport/TestCppNsImport.py b/lldb/test/lang/cpp/nsimport/TestCppNsImport.py
index 64a1b103451..076356dd162 100644
--- a/lldb/test/lang/cpp/nsimport/TestCppNsImport.py
+++ b/lldb/test/lang/cpp/nsimport/TestCppNsImport.py
@@ -9,25 +9,10 @@ class TestCppNsImport(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Tests imported namespaces in C++."""
- self.buildDsym()
- self.check()
-
- @dwarf_test
@expectedFailureGcc(None, ['>=', '4.9'])
- def test_with_dwarf_and_run_command(self):
- """Tests imported namespaces in C++."""
- self.buildDwarf()
- self.check()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def check(self):
+ def test_with_run_command(self):
"""Tests imported namespaces in C++."""
+ self.build()
# Get main source file
src_file = "main.cpp"
diff --git a/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py b/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
index af5a016bd84..38cec0f472e 100644
--- a/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
+++ b/lldb/test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py
@@ -10,26 +10,14 @@ class CPPStaticMethodsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that functions with the same name are resolved correctly"""
- self.buildDsym()
- self.static_method_commands()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- def test_with_dwarf_and_run_command(self):
- """Test that functions with the same name are resolved correctly"""
- self.buildDwarf()
- self.static_method_commands()
-
def setUp(self):
TestBase.setUp(self)
self.line = line_number('main.cpp', '// breakpoint')
-
- def static_method_commands(self):
- """Test that static methods are properly distinguished from regular methods"""
+
+ @expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
+ def test_with_run_command(self):
+ """Test that functions with the same name are resolved correctly"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py b/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py
index dc80a9d1662..23bf8a122c6 100644
--- a/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py
+++ b/lldb/test/lang/cpp/rdar12991846/TestRdar12991846.py
@@ -27,51 +27,24 @@ class Rdar12991846TestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@unittest2.expectedFailure("rdar://18684408")
- @skipUnlessDarwin
- @dsym_test
- def test_expr1_with_dsym(self):
- """Test that the expression parser returns proper Unicode strings."""
- self.buildDsym()
- self.rdar12991846(expr=1)
-
- @unittest2.expectedFailure("rdar://18684408")
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- @dwarf_test
- def test_expr1_with_dwarf(self):
+ def test_expr1(self):
"""Test that the expression parser returns proper Unicode strings."""
- self.buildDwarf()
+ self.build()
self.rdar12991846(expr=1)
@unittest2.expectedFailure("rdar://18684408")
- @skipUnlessDarwin
- @dsym_test
- def test_expr2_with_dsym(self):
- """Test that the expression parser returns proper Unicode strings."""
- self.buildDsym()
- self.rdar12991846(expr=2)
-
- @unittest2.expectedFailure("rdar://18684408")
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- @dwarf_test
- def test_expr2_with_dwarf(self):
+ def test_expr2(self):
"""Test that the expression parser returns proper Unicode strings."""
- self.buildDwarf()
+ self.build()
self.rdar12991846(expr=2)
@unittest2.expectedFailure("rdar://18684408")
- @skipUnlessDarwin
- @dsym_test
- def test_expr3_with_dsym(self):
- """Test that the expression parser returns proper Unicode strings."""
- self.buildDsym()
- self.rdar12991846(expr=3)
-
- @unittest2.expectedFailure("rdar://18684408")
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- @dwarf_test
- def test_expr3_with_dwarf(self):
+ def test_expr3(self):
"""Test that the expression parser returns proper Unicode strings."""
- self.buildDwarf()
+ self.build()
self.rdar12991846(expr=3)
def setUp(self):
diff --git a/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py b/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py
index 7fcb599a7dd..ea9d135a224 100644
--- a/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py
+++ b/lldb/test/lang/cpp/rvalue-references/TestRvalueReferences.py
@@ -10,30 +10,12 @@ class RvalueReferencesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that rvalues are supported in the C++ expression parser"""
- self.buildDsym()
- self.static_method_commands()
-
#rdar://problem/11479676
@expectedFailureIcc("ICC (13.1, 14-beta) do not emit DW_TAG_rvalue_reference_type.")
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that rvalues are supported in the C++ expression parser"""
- self.buildDwarf()
- self.static_method_commands()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def set_breakpoint(self, line):
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=True)
-
- def static_method_commands(self):
+ def test_with_run_command(self):
"""Test that rvalues are supported in the C++ expression parser"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
self.set_breakpoint(line_number('main.cpp', '// breakpoint 1'))
@@ -62,6 +44,9 @@ class RvalueReferencesTestCase(TestBase):
self.expect("expression -- int &&k = 6; k",
startstr = "(int) $1 = 6")
+
+ def set_breakpoint(self, line):
+ lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=True)
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/cpp/scope/TestCppScope.py b/lldb/test/lang/cpp/scope/TestCppScope.py
index 104d53f0954..4d5ea8bf62b 100644
--- a/lldb/test/lang/cpp/scope/TestCppScope.py
+++ b/lldb/test/lang/cpp/scope/TestCppScope.py
@@ -10,23 +10,10 @@ class TestCppScopes(TestBase):
mydir = TestBase.compute_mydir(__file__)
@expectedFailureDarwin
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- self.buildDsym()
- self.check()
-
- @expectedFailureDarwin
@expectedFailureWindows("llvm.org/pr24764")
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- self.buildDwarf()
- self.check()
-
- def setUp(self):
- TestBase.setUp(self)
+ def test_with_run_command(self):
+ self.build()
- def check(self):
# Get main source file
src_file = "main.cpp"
src_file_spec = lldb.SBFileSpec(src_file)
diff --git a/lldb/test/lang/cpp/signed_types/TestSignedTypes.py b/lldb/test/lang/cpp/signed_types/TestSignedTypes.py
index 36c2b6d414e..9c1f6838efd 100644
--- a/lldb/test/lang/cpp/signed_types/TestSignedTypes.py
+++ b/lldb/test/lang/cpp/signed_types/TestSignedTypes.py
@@ -13,19 +13,6 @@ class UnsignedTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test that variables with signed types display correctly."""
- self.buildDsym()
- self.signed_types()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test that variables with signed types display correctly."""
- self.buildDwarf()
- self.signed_types()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -33,7 +20,10 @@ class UnsignedTypesTestCase(TestBase):
self.source = 'main.cpp'
self.line = line_number(self.source, '// Set break point at this line.')
- def signed_types(self):
+ def test(self):
+ """Test that variables with signed types display correctly."""
+ self.build()
+
# Run in synchronous mode
self.dbg.SetAsync(False)
diff --git a/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py b/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py
index 412234a5757..de85a574899 100644
--- a/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py
+++ b/lldb/test/lang/cpp/static_members/TestCPPStaticMembers.py
@@ -9,30 +9,11 @@ class CPPStaticMembersTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @unittest2.expectedFailure # llvm.org/pr15401
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that member variables have the correct layout, scope and qualifiers when stopped inside and outside C++ methods"""
- self.buildDsym()
- self.static_member_commands()
-
@unittest2.expectedFailure # llvm.org/pr15401
@expectedFailureWindows("llvm.org/pr21765")
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that member variables have the correct layout, scope and qualifiers when stopped inside and outside C++ methods"""
- self.buildDwarf()
- self.static_member_commands()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def set_breakpoint(self, line):
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=False)
-
- def static_member_commands(self):
+ def test_with_run_command(self):
"""Test that member variables have the correct layout, scope and qualifiers when stopped inside and outside C++ methods"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
self.set_breakpoint(line_number('main.cpp', '// breakpoint 1'))
@@ -67,7 +48,10 @@ class CPPStaticMembersTestCase(TestBase):
startstr = "(long) $6 = 2")
self.runCmd("process continue")
-
+
+ def set_breakpoint(self, line):
+ lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=False)
+
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py b/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py
index d5852724ec9..c44af758c72 100644
--- a/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py
+++ b/lldb/test/lang/cpp/static_methods/TestCPPStaticMethods.py
@@ -10,26 +10,14 @@ class CPPStaticMethodsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that static methods are properly distinguished from regular methods"""
- self.buildDsym()
- self.static_method_commands()
-
- @dwarf_test
- @expectedFailureWindows
- def test_with_dwarf_and_run_command(self):
- """Test that static methods are properly distinguished from regular methods"""
- self.buildDwarf()
- self.static_method_commands()
-
def setUp(self):
TestBase.setUp(self)
self.line = line_number('main.cpp', '// Break at this line')
-
- def static_method_commands(self):
+
+ @expectedFailureWindows
+ def test_with_run_command(self):
"""Test that static methods are properly distinguished from regular methods"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/cpp/stl/TestSTL.py b/lldb/test/lang/cpp/stl/TestSTL.py
index 4a1b2e0eb2f..b74009fbefd 100644
--- a/lldb/test/lang/cpp/stl/TestSTL.py
+++ b/lldb/test/lang/cpp/stl/TestSTL.py
@@ -12,39 +12,6 @@ class STLTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- # rdar://problem/10400981
- @unittest2.expectedFailure
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test some expressions involving STL data types."""
- self.buildDsym()
- self.step_stl_exprs()
-
- # rdar://problem/10400981
- @unittest2.expectedFailure
- @dwarf_test
- def test_with_dwarf(self):
- """Test some expressions involving STL data types."""
- self.buildDwarf()
- self.step_stl_exprs()
-
- @python_api_test
- @dsym_test
- @skipUnlessDarwin
- def test_SBType_template_aspects_with_dsym(self):
- """Test APIs for getting template arguments from an SBType."""
- self.buildDsym()
- self.sbtype_template_apis()
-
- @expectedFailureIcc # icc 13.1 and 14-beta do not emit DW_TAG_template_type_parameter
- @python_api_test
- @dwarf_test
- def test_SBType_template_aspects_with_dwarf(self):
- """Test APIs for getting template arguments from an SBType."""
- self.buildDwarf()
- self.sbtype_template_apis()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -52,8 +19,11 @@ class STLTestCase(TestBase):
self.source = 'main.cpp'
self.line = line_number(self.source, '// Set break point at this line.')
- def step_stl_exprs(self):
+ # rdar://problem/10400981
+ @unittest2.expectedFailure
+ def test(self):
"""Test some expressions involving STL data types."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# The following two lines, if uncommented, will enable loggings.
@@ -93,8 +63,11 @@ class STLTestCase(TestBase):
self.expect('expr associative_array["hello"]',
substrs = [' = 2'])
- def sbtype_template_apis(self):
+ @expectedFailureIcc # icc 13.1 and 14-beta do not emit DW_TAG_template_type_parameter
+ @python_api_test
+ def test_SBType_template_aspects(self):
"""Test APIs for getting template arguments from an SBType."""
+ self.build()
exe = os.path.join(os.getcwd(), 'a.out')
# Create a target by the debugger.
diff --git a/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py b/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py
index eca9182cbc3..abcc3004a4a 100644
--- a/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py
+++ b/lldb/test/lang/cpp/stl/TestStdCXXDisassembly.py
@@ -23,7 +23,7 @@ class StdCXXDisassembleTestCase(TestBase):
@unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
def test_stdcxx_disasm(self):
"""Do 'disassemble' on each and every 'Code' symbol entry from the std c++ lib."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/cpp/this/TestCPPThis.py b/lldb/test/lang/cpp/this/TestCPPThis.py
index 901202c908a..e4b5d615121 100644
--- a/lldb/test/lang/cpp/this/TestCPPThis.py
+++ b/lldb/test/lang/cpp/this/TestCPPThis.py
@@ -9,35 +9,15 @@ class CPPThisTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- #rdar://problem/9962849
- #@expectedFailureClang
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that the appropriate member variables are available when stopped in C++ static, inline, and const methods"""
- self.buildDsym()
- self.static_method_commands()
-
#rdar://problem/9962849
@expectedFailureGcc # llvm.org/pr15439 The 'this' pointer isn't available during expression evaluation when stopped in an inlined member function.
@expectedFailureIcc # ICC doesn't emit correct DWARF inline debug info for inlined member functions
@expectedFailureWindows("llvm.org/pr24489: Name lookup not working correctly on Windows")
@expectedFailureWindows("llvm.org/pr24490: We shouldn't be using platform-specific names like `getpid` in tests")
- @dwarf_test
@expectedFlakeyClang(bugnumber='llvm.org/pr23012', compiler_version=['>=','3.6']) # failed with totclang - clang3.7
- def test_with_dwarf_and_run_command(self):
- """Test that the appropriate member variables are available when stopped in C++ static, inline, and const methods"""
- self.buildDwarf()
- self.static_method_commands()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def set_breakpoint(self, line):
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=False)
-
- def static_method_commands(self):
+ def test_with_run_command(self):
"""Test that the appropriate member variables are available when stopped in C++ static, inline, and const methods"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
self.set_breakpoint(line_number('main.cpp', '// breakpoint 1'))
@@ -68,6 +48,9 @@ class CPPThisTestCase(TestBase):
self.expect("expression -- m_a",
startstr = "(int) $4 = 2")
+
+ def set_breakpoint(self, line):
+ lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=1, loc_exact=False)
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py b/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py
index 799e2fdf23b..c251563228a 100644
--- a/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py
+++ b/lldb/test/lang/cpp/unique-types/TestUniqueTypes.py
@@ -11,19 +11,6 @@ class UniqueTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test for unique types of std::vector<long> and std::vector<short>."""
- self.buildDsym()
- self.unique_types()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test for unique types of std::vector<long> and std::vector<short>."""
- self.buildDwarf()
- self.unique_types()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -31,8 +18,9 @@ class UniqueTypesTestCase(TestBase):
self.line = line_number("main.cpp",
"// Set breakpoint here to verify that std::vector 'longs' and 'shorts' have unique types.")
- def unique_types(self):
+ def test(self):
"""Test for unique types of std::vector<long> and std::vector<short>."""
+ self.build()
compiler = self.getCompiler()
compiler_basename = os.path.basename(compiler)
diff --git a/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py b/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py
index 5959d863500..d49d3b8f4df 100644
--- a/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py
+++ b/lldb/test/lang/cpp/unsigned_types/TestUnsignedTypes.py
@@ -13,27 +13,15 @@ class UnsignedTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test that variables with unsigned types display correctly."""
- self.buildDsym()
- self.unsigned_types()
-
- @dwarf_test
- def test_with_dwarf(self):
- """Test that variables with unsigned types display correctly."""
- self.buildDwarf()
- self.unsigned_types()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.cpp', '// Set break point at this line.')
- def unsigned_types(self):
+ def test(self):
"""Test that variables with unsigned types display correctly."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/cpp/virtual/TestVirtual.py b/lldb/test/lang/cpp/virtual/TestVirtual.py
index 797afaf8c60..0904cfc0c83 100644
--- a/lldb/test/lang/cpp/virtual/TestVirtual.py
+++ b/lldb/test/lang/cpp/virtual/TestVirtual.py
@@ -22,19 +22,6 @@ class CppVirtualMadness(TestBase):
# Assert message.
PRINTF_OUTPUT_GROKKED = "The printf output from compiled code is parsed correctly"
- @skipIfWindows # Process::GetSTDOUT unsupported on Windows. This test should be re-written to use stdout re-direction
- @skipUnlessDarwin
- def test_virtual_madness_dsym(self):
- """Test that expression works correctly with virtual inheritance as well as virtual function."""
- self.buildDsym()
- self.virtual_madness_test()
-
- @expectedFailureIcc('llvm.org/pr16808') # lldb does not call the correct virtual function with icc
- def test_virtual_madness_dwarf(self):
- """Test that expression works correctly with virtual inheritance as well as virtual function."""
- self.buildDwarf()
- self.virtual_madness_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -42,8 +29,10 @@ class CppVirtualMadness(TestBase):
self.source = 'main.cpp'
self.line = line_number(self.source, '// Set first breakpoint here.')
- def virtual_madness_test(self):
- """Test that variable expressions with basic types are evaluated correctly."""
+ @expectedFailureIcc('llvm.org/pr16808') # lldb does not call the correct virtual function with icc
+ def test_virtual_madness(self):
+ """Test that expression works correctly with virtual inheritance as well as virtual function."""
+ self.build()
# Bring the program to the point where we can issue a series of
# 'expression' command to compare against the golden output.
diff --git a/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py b/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py
index 21b2c838e77..232cda7a5a1 100644
--- a/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py
+++ b/lldb/test/lang/cpp/wchar_t/TestCxxWCharT.py
@@ -13,20 +13,6 @@ class CxxWCharTTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test that C++ supports wchar_t correctly."""
- self.buildDsym()
- self.wchar_t()
-
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24764")
- def test_with_dwarf(self):
- """Test that C++ supports wchar_t correctly."""
- self.buildDwarf()
- self.wchar_t()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -34,8 +20,10 @@ class CxxWCharTTestCase(TestBase):
self.source = 'main.cpp'
self.line = line_number(self.source, '// Set break point at this line.')
- def wchar_t(self):
+ @expectedFailureWindows("llvm.org/pr24764")
+ def test(self):
"""Test that C++ supports wchar_t correctly."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/lang/go/goroutines/TestGoroutines.py b/lldb/test/lang/go/goroutines/TestGoroutines.py
index 055570b2504..05f6aa8f0b0 100644
--- a/lldb/test/lang/go/goroutines/TestGoroutines.py
+++ b/lldb/test/lang/go/goroutines/TestGoroutines.py
@@ -13,6 +13,7 @@ class TestGoASTContext(TestBase):
@python_api_test
@skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure
@skipIfRemote # Not remote test suite ready
+ @no_debug_info_test
@skipUnlessGoInstalled
def test_goroutine_plugin(self):
"""Test goroutine as threads support."""
diff --git a/lldb/test/lang/go/types/TestGoASTContext.py b/lldb/test/lang/go/types/TestGoASTContext.py
index 3265ee907e1..ccfca85a130 100644
--- a/lldb/test/lang/go/types/TestGoASTContext.py
+++ b/lldb/test/lang/go/types/TestGoASTContext.py
@@ -13,6 +13,7 @@ class TestGoASTContext(TestBase):
@python_api_test
@skipIfFreeBSD # llvm.org/pr24895 triggers assertion failure
@skipIfRemote # Not remote test suit ready
+ @no_debug_info_test
@skipUnlessGoInstalled
def test_with_dsym_and_python_api(self):
"""Test GoASTContext dwarf parsing."""
diff --git a/lldb/test/lang/mixed/TestMixedLanguages.py b/lldb/test/lang/mixed/TestMixedLanguages.py
index 2f89fb298be..5d4e284d4fd 100644
--- a/lldb/test/lang/mixed/TestMixedLanguages.py
+++ b/lldb/test/lang/mixed/TestMixedLanguages.py
@@ -11,7 +11,7 @@ class MixedLanguagesTestCase(TestBase):
def test_language_of_frame(self):
"""Test that the language defaults to the language of the current frame."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py b/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
index 844f9811906..281c15505db 100644
--- a/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
+++ b/lldb/test/lang/objc/blocks/TestObjCIvarsInBlocks.py
@@ -10,26 +10,6 @@ class TestObjCIvarsInBlocks(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- # This test requires the 2.0 runtime, so it will fail on i386.
- @expectedFailurei386
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test printing the ivars of the self when captured in blocks"""
- self.buildDsym()
- self.ivars_in_blocks()
-
- @skipUnlessDarwin
- @python_api_test
- # This test requires the 2.0 runtime, so it will fail on i386.
- @expectedFailurei386
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test printing the ivars of the self when captured in blocks"""
- self.buildDwarf()
- self.ivars_in_blocks()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -38,8 +18,12 @@ class TestObjCIvarsInBlocks(TestBase):
self.class_source = "ivars-in-blocks.m"
self.class_source_file_spec = lldb.SBFileSpec(self.class_source)
- def ivars_in_blocks (self):
+ @skipUnlessDarwin
+ @python_api_test
+ @expectedFailurei386 # This test requires the 2.0 runtime, so it will fail on i386.
+ def test_with_python_api(self):
"""Test printing the ivars of the self when captured in blocks"""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/forward-decl/TestForwardDecl.py b/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
index 89ee9741f7f..4b21e35e22d 100644
--- a/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
+++ b/lldb/test/lang/objc/forward-decl/TestForwardDecl.py
@@ -10,18 +10,6 @@ class ForwardDeclTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -30,7 +18,10 @@ class ForwardDeclTestCase(TestBase):
self.line = line_number(self.source, '// Set breakpoint 0 here.')
self.shlib_names = ["Container"]
- def common_setup(self):
+ @skipUnlessDarwin
+ def test_expr(self):
+ self.build()
+
# Create a target by the debugger.
target = self.dbg.CreateTarget("a.out")
self.assertTrue(target, VALID_TARGET)
@@ -55,9 +46,6 @@ class ForwardDeclTestCase(TestBase):
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
- def expr(self):
- self.common_setup()
-
# This should display correctly.
self.expect("expression [j getMember]", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["= 0x"])
diff --git a/lldb/test/lang/objc/foundation/TestConstStrings.py b/lldb/test/lang/objc/foundation/TestConstStrings.py
index ca644ba5455..a3780e09a75 100644
--- a/lldb/test/lang/objc/foundation/TestConstStrings.py
+++ b/lldb/test/lang/objc/foundation/TestConstStrings.py
@@ -9,26 +9,11 @@ import lldb
from lldbtest import *
import lldbutil
-@skipUnlessDarwin
class ConstStringTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
d = {'OBJC_SOURCES': 'const-strings.m'}
- @dsym_test
- def test_break_with_dsym(self):
- """Test constant string generation amd comparison by the expression parser."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(self.d)
- self.objc_const_strings()
-
- @dwarf_test
- def test_break_with_dwarf(self):
- """Test constant string generation amd comparison by the expression parser."""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(self.d)
- self.objc_const_strings()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -36,8 +21,12 @@ class ConstStringTestCase(TestBase):
self.main_source = "const-strings.m"
self.line = line_number(self.main_source, '// Set breakpoint here.')
- def objc_const_strings(self):
+ @skipUnlessDarwin
+ def test_break(self):
"""Test constant string generation amd comparison by the expression parser."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(self.d)
+
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py b/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
index 4fa78d86cbd..3fb67924f7d 100644
--- a/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
+++ b/lldb/test/lang/objc/foundation/TestFoundationDisassembly.py
@@ -18,7 +18,7 @@ class FoundationDisassembleTestCase(TestBase):
@unittest2.skipIf(TestBase.skipLongRunningTest(), "Skip this long running test")
def test_foundation_disasm(self):
"""Do 'disassemble -n func' on each and every 'Code' symbol entry from the Foundation.framework."""
- self.buildDefault()
+ self.build()
# Enable synchronous mode
self.dbg.SetAsync(False)
@@ -61,21 +61,10 @@ class FoundationDisassembleTestCase(TestBase):
self.runCmd('disassemble -n "%s"' % func)
- @dsym_test
- def test_simple_disasm_with_dsym(self):
+ def test_simple_disasm(self):
"""Test the lldb 'disassemble' command"""
- self.buildDsym()
- self.do_simple_disasm()
+ self.build()
- @dwarf_test
- def test_simple_disasm_with_dwarf(self):
- """Test the lldb 'disassemble' command"""
- self.buildDwarf()
- self.do_simple_disasm()
-
- def do_simple_disasm(self):
- """Do a bunch of simple disassemble commands."""
-
# Create a target by the debugger.
target = self.dbg.CreateTarget("a.out")
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/lang/objc/foundation/TestObjCMethods.py b/lldb/test/lang/objc/foundation/TestObjCMethods.py
index 44aefdcf838..5be2e3c441a 100644
--- a/lldb/test/lang/objc/foundation/TestObjCMethods.py
+++ b/lldb/test/lang/objc/foundation/TestObjCMethods.py
@@ -16,50 +16,16 @@ class FoundationTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_break_with_dsym(self):
- """Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
- self.buildDsym()
- self.break_on_objc_methods()
-
- @dwarf_test
- def test_break_with_dwarf(self):
- """Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
- self.buildDwarf()
- self.break_on_objc_methods()
-
- #@unittest2.expectedFailure
- # rdar://problem/8542091
- # rdar://problem/8492646
- @dsym_test
- def test_data_type_and_expr_with_dsym(self):
- """Lookup objective-c data types and evaluate expressions."""
- self.buildDsym()
- self.data_type_and_expr_objc()
-
- #@unittest2.expectedFailure
- # rdar://problem/8542091
- # rdar://problem/8492646
- @dwarf_test
- def test_data_type_and_expr_with_dwarf(self):
- """Lookup objective-c data types and evaluate expressions."""
- self.buildDwarf()
- self.data_type_and_expr_objc()
-
- @python_api_test
- @dsym_test
- def test_print_ivars_correctly_with_dsym (self):
- self.buildDsym()
- self.print_ivars_correctly()
-
- @python_api_test
- @dwarf_test
- def test_print_ivars_correctly_with_dwarf (self):
- self.buildDwarf()
- self.print_ivars_correctly()
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line number to break inside main().
+ self.main_source = "main.m"
+ self.line = line_number(self.main_source, '// Set break point at this line.')
- def break_on_objc_methods(self):
+ def test_break(self):
"""Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -113,64 +79,12 @@ class FoundationTestCase(TestBase):
self.expect("thread backtrace", "Stop at -[NSAutoreleasePool release]",
substrs = ["Foundation`-[NSAutoreleasePool release]"])
- @dsym_test
- def test_expression_lookups_objc_dsym(self):
- """Test running an expression detect spurious debug info lookups (dSYM)."""
- self.buildDsym()
- self.expression_lookups_objc()
-
- @dwarf_test
- def test_expression_lookups_objc_dwarf(self):
- """Test running an expression detect spurious debug info lookups (DWARF)."""
- self.buildDwarf()
- self.expression_lookups_objc()
-
- def expression_lookups_objc (self):
- """Test running an expression and make sure we don't search all dwarf files for any internal names (anything that contains '__lldb')."""
- exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Stop at -[MyString initWithNSString:].
- lldbutil.run_break_set_by_symbol (self, '-[MyString initWithNSString:]', num_expected_locations=1, sym_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- global file_index
- # Log any DWARF lookups
- ++file_index
- logfile = os.path.join(os.getcwd(), "dwarf-lookups-" + self.getArchitecture() + "-" + str(file_index) + ".txt")
- self.runCmd("log enable -f %s dwarf lookups" % (logfile))
- self.runCmd("expr self")
- self.runCmd("log disable dwarf lookups")
-
- def cleanup():
- if os.path.exists (logfile):
- os.unlink (logfile)
-
- self.addTearDownHook(cleanup)
-
- if os.path.exists (logfile):
- f = open(logfile)
- lines = f.readlines()
- num_errors = 0
- for line in lines:
- if string.find(line, "$__lldb") != -1:
- if num_errors == 0:
- print "error: found spurious name lookups when evaluating an expression:"
- num_errors += 1
- print line,
- self.assertTrue(num_errors == 0, "Spurious lookups detected")
- f.close()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line number to break inside main().
- self.main_source = "main.m"
- self.line = line_number(self.main_source, '// Set break point at this line.')
-
- def data_type_and_expr_objc(self):
+ #@unittest2.expectedFailure
+ # rdar://problem/8542091
+ # rdar://problem/8492646
+ def test_data_type_and_expr(self):
"""Lookup objective-c data types and evaluate expressions."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -258,9 +172,11 @@ class FoundationTestCase(TestBase):
self.expect("expression --object-description -- my", "Object description displayed correctly",
patterns = ["Hello from.*a.out.*with timestamp: "])
- # See: <rdar://problem/8717050> lldb needs to use the ObjC runtime symbols for ivar offsets
- # Only fails for the ObjC 2.0 runtime.
- def print_ivars_correctly(self) :
+ @python_api_test
+ def test_print_ivars_correctly (self):
+ self.build()
+ # See: <rdar://problem/8717050> lldb needs to use the ObjC runtime symbols for ivar offsets
+ # Only fails for the ObjC 2.0 runtime.
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -304,7 +220,45 @@ class FoundationTestCase(TestBase):
my_str_value = int(my_str_var.GetValue(), 0)
self.assertTrue(str_value == my_str_value, "Got the correct value for my->str")
+
+ def test_expression_lookups_objc(self):
+ """Test running an expression detect spurious debug info lookups (DWARF)."""
+ self.build()
+ exe = os.path.join(os.getcwd(), "a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ # Stop at -[MyString initWithNSString:].
+ lldbutil.run_break_set_by_symbol (self, '-[MyString initWithNSString:]', num_expected_locations=1, sym_exact=True)
+
+ self.runCmd("run", RUN_SUCCEEDED)
+
+ global file_index
+ # Log any DWARF lookups
+ ++file_index
+ logfile = os.path.join(os.getcwd(), "dwarf-lookups-" + self.getArchitecture() + "-" + str(file_index) + ".txt")
+ self.runCmd("log enable -f %s dwarf lookups" % (logfile))
+ self.runCmd("expr self")
+ self.runCmd("log disable dwarf lookups")
+
+ def cleanup():
+ if os.path.exists (logfile):
+ os.unlink (logfile)
+
+ self.addTearDownHook(cleanup)
+ if os.path.exists (logfile):
+ f = open(logfile)
+ lines = f.readlines()
+ num_errors = 0
+ for line in lines:
+ if string.find(line, "$__lldb") != -1:
+ if num_errors == 0:
+ print "error: found spurious name lookups when evaluating an expression:"
+ num_errors += 1
+ print line,
+ self.assertTrue(num_errors == 0, "Spurious lookups detected")
+ f.close()
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/objc/foundation/TestObjCMethods2.py b/lldb/test/lang/objc/foundation/TestObjCMethods2.py
index 88fcfc137f5..59eb9955c3c 100644
--- a/lldb/test/lang/objc/foundation/TestObjCMethods2.py
+++ b/lldb/test/lang/objc/foundation/TestObjCMethods2.py
@@ -12,81 +12,7 @@ import lldbutil
class FoundationTestCase2(TestBase):
mydir = TestBase.compute_mydir(__file__)
-
- @dsym_test
- def test_more_expr_commands_with_dsym(self):
- """More expression commands for objective-c."""
- self.buildDsym()
- self.more_expr_objc()
-
- @dwarf_test
- def test_more_expr_commands_with_dwarf(self):
- """More expression commands for objective-c."""
- self.buildDwarf()
- self.more_expr_objc()
-
- @dsym_test
- def test_NSArray_expr_commands_with_dsym(self):
- """Test expression commands for NSArray."""
- self.buildDsym()
- self.NSArray_expr()
-
- @dwarf_test
- def test_NSArray_expr_commands_with_dwarf(self):
- """Test expression commands for NSArray."""
- self.buildDwarf()
- self.NSArray_expr()
-
- @dsym_test
- def test_NSString_expr_commands_with_dsym(self):
- """Test expression commands for NSString."""
- self.buildDsym()
- self.NSString_expr()
-
- @dwarf_test
- def test_NSString_expr_commands_with_dwarf(self):
- """Test expression commands for NSString."""
- self.buildDwarf()
- self.NSString_expr()
-
- @dsym_test
- def test_MyString_dump_with_dsym(self):
- """Test dump of a known Objective-C object by dereferencing it."""
- self.buildDsym()
- self.MyString_dump()
-
- @dwarf_test
- def test_MyString_dump_with_dwarf(self):
- """Test dump of a known Objective-C object by dereferencing it."""
- self.buildDwarf()
- self.MyString_dump()
-
- @expectedFailurei386
- @dsym_test
- def test_NSError_po_with_dsym(self):
- """Test that po of the result of an unknown method doesn't require a cast."""
- self.buildDsym()
- self.NSError_po()
-
- @expectedFailurei386
- @dwarf_test
- def test_NSError_po_with_dwarf(self):
- """Test that po of the result of an unknown method doesn't require a cast."""
- self.buildDsym()
- self.NSError_po()
-
- @dsym_test
- def test_NSError_p_with_dsym(self):
- """Test that p of the result of an unknown method does require a cast."""
- self.buildDsym()
- self.NSError_p()
-
- @dwarf_test
- def test_NSError_p_with_dwarf(self):
- """Test that p of the result of an unknown method does require a cast."""
- self.buildDsym()
- self.NSError_p()
-
+
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -97,9 +23,10 @@ class FoundationTestCase2(TestBase):
self.lines.append(line_number('main.m', '// Break here for NSString tests'))
self.lines.append(line_number('main.m', '// Break here for description test'))
self.lines.append(line_number('main.m', '// Set break point at this line'))
-
- def more_expr_objc(self):
+
+ def test_more_expr_commands(self):
"""More expression commands for objective-c."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -133,8 +60,9 @@ class FoundationTestCase2(TestBase):
self.runCmd("process continue")
- def NSArray_expr(self):
+ def test_NSArray_expr_commands(self):
"""Test expression commands for NSArray."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -158,8 +86,9 @@ class FoundationTestCase2(TestBase):
patterns = ["\(int\) \$.* = 3"])
self.runCmd("process continue")
- def NSString_expr(self):
+ def test_NSString_expr_commands(self):
"""Test expression commands for NSString."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -186,8 +115,9 @@ class FoundationTestCase2(TestBase):
self.expect('expression str = [NSString stringWithCString: "new"]')
self.runCmd("process continue")
- def MyString_dump(self):
+ def test_MyString_dump(self):
"""Test dump of a known Objective-C object by dereferencing it."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -201,8 +131,10 @@ class FoundationTestCase2(TestBase):
patterns = ["\(MyString\) \$.* = ", "\(MyBase\)", "\(NSObject\)", "\(Class\)"])
self.runCmd("process continue")
- def NSError_po(self):
+ @expectedFailurei386
+ def test_NSError_po(self):
"""Test that po of the result of an unknown method doesn't require a cast."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -215,9 +147,10 @@ class FoundationTestCase2(TestBase):
self.expect('po [NSError errorWithDomain:@"Hello" code:35 userInfo:@{@"NSDescription" : @"be completed."}]',
substrs = ["Error Domain=Hello", "Code=35", "be completed."])
self.runCmd("process continue")
-
- def NSError_p(self):
+
+ def test_NSError_p(self):
"""Test that p of the result of an unknown method does require a cast."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py b/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
index 39d69b8bffb..08310329096 100644
--- a/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
+++ b/lldb/test/lang/objc/foundation/TestObjectDescriptionAPI.py
@@ -12,28 +12,6 @@ class ObjectDescriptionAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- # rdar://problem/10857337
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_find_global_variables_then_object_description_with_dsym(self):
- """Exercise SBTaget.FindGlobalVariables() API."""
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.find_global_variables_then_object_description('a.out')
-
- # rdar://problem/10857337
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_find_global_variables_then_object_description_with_dwarf(self):
- """Exercise SBTarget.FindGlobalVariables() API."""
- d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.find_global_variables_then_object_description('b.out')
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -41,9 +19,15 @@ class ObjectDescriptionAPITestCase(TestBase):
self.source = 'main.m'
self.line = line_number(self.source, '// Set break point at this line.')
- def find_global_variables_then_object_description(self, exe_name):
- """Exercise SBTaget.FindGlobalVariables() followed by SBValue.GetObjectDescription()."""
- exe = os.path.join(os.getcwd(), exe_name)
+ # rdar://problem/10857337
+ @skipUnlessDarwin
+ @python_api_test
+ def test_find_global_variables_then_object_description(self):
+ """Exercise SBTarget.FindGlobalVariables() API."""
+ d = {'EXE': 'b.out'}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ exe = os.path.join(os.getcwd(), 'b.out')
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/foundation/TestRuntimeTypes.py b/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
index 20e38a62479..55e9713462f 100644
--- a/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
+++ b/lldb/test/lang/objc/foundation/TestRuntimeTypes.py
@@ -13,23 +13,12 @@ class RuntimeTypesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_break_with_dsym(self):
+ def test_break(self):
"""Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
- # This only applies to the v2 runtime
- if self.getArchitecture() == 'x86_64':
- self.buildDsym()
- self.runtime_types()
+ if self.getArchitecture() != 'x86_64':
+ self.skipTest("This only applies to the v2 runtime")
- @dwarf_test
- def test_break_with_dwarf(self):
- """Test setting objc breakpoints using '_regexp-break' and 'breakpoint set'."""
- # This only applies to the v2 runtime
- if self.getArchitecture() == 'x86_64':
- self.buildDwarf()
- self.runtime_types()
-
- def runtime_types(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/objc/foundation/TestSymbolTable.py b/lldb/test/lang/objc/foundation/TestSymbolTable.py
index 70ca088d294..0d238160214 100644
--- a/lldb/test/lang/objc/foundation/TestSymbolTable.py
+++ b/lldb/test/lang/objc/foundation/TestSymbolTable.py
@@ -25,21 +25,9 @@ class FoundationSymtabTestCase(TestBase):
]
@python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test symbol table access with Python APIs."""
- self.buildDsym()
- self.symtab_access_python()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test symbol table access with Python APIs."""
- self.buildDwarf()
- self.symtab_access_python()
-
- def symtab_access_python(self):
+ def test_with_python_api(self):
"""Test symbol table access with Python APIs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
index a7d52b0a298..405aa311019 100644
--- a/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ b/lldb/test/lang/objc/hidden-ivars/TestHiddenIvars.py
@@ -11,89 +11,57 @@ class HiddenIvarsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_expr_with_dsym(self):
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- else:
- self.buildDsym()
- self.expr(False)
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line number to break inside main().
+ self.source = 'main.m'
+ self.line = line_number(self.source, '// breakpoint1')
+ # The makefile names of the shared libraries as they appear in DYLIB_NAME.
+ # The names should have no loading "lib" or extension as they will be localized
+ self.shlib_names = ["InternalDefiner"]
@skipUnlessDarwin
- @dsym_test
- def test_expr_stripped_with_dsym(self):
+ def test_expr_stripped(self):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
else:
- self.buildDsym()
+ self.build()
self.expr(True)
@skipUnlessDarwin
- @dwarf_test
- def test_expr_with_dwarf(self):
+ def test_expr(self):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
else:
- self.buildDwarf()
+ self.build()
self.expr(False)
@skipUnlessDarwin
- @dsym_test
- def test_frame_variable_with_dsym(self):
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- else:
- self.buildDsym()
- self.frame_var(False)
-
- @skipUnlessDarwin
- @dsym_test
- def test_frame_variable_stripped_with_dsym(self):
+ def test_frame_variable_stripped(self):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
else:
- self.buildDsym()
+ self.build()
self.frame_var(True)
@skipUnlessDarwin
- @dwarf_test
- def test_frame_variable_with_dwarf(self):
+ def test_frame_variable(self):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
else:
- self.buildDwarf()
+ self.build()
self.frame_var(False)
@unittest2.expectedFailure("rdar://18683637")
@skipUnlessDarwin
- @dsym_test
- def test_frame_variable_across_modules_with_dsym(self):
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- else:
- self.buildDsym()
- self.frame_var_type_access_across_module()
-
- @unittest2.expectedFailure("rdar://18683637")
- @skipUnlessDarwin
- @dwarf_test
- def test_frame_variable_across_modules_with_dwarf(self):
+ def test_frame_variable_across_modules(self):
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
else:
- self.buildDwarf()
- self.frame_var_type_access_across_module()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line number to break inside main().
- self.source = 'main.m'
- self.line = line_number(self.source, '// breakpoint1')
- # The makefile names of the shared libraries as they appear in DYLIB_NAME.
- # The names should have no loading "lib" or extension as they will be localized
- self.shlib_names = ["InternalDefiner"]
+ self.build()
+ self.common_setup(False)
+ self.expect("frame variable k->bar", VARIABLES_DISPLAYED_CORRECTLY, substrs = ["= 3"])
def common_setup(self, strip):
@@ -196,11 +164,6 @@ class HiddenIvarsTestCase(TestBase):
else:
self.expect("frame variable *k", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["foo = 2", "bar = 3", '_filteredDataSource = 0x', '"2 objects"'])
-
- def frame_var_type_access_across_module(self):
- self.common_setup(False)
-
- self.expect("frame variable k->bar", VARIABLES_DISPLAYED_CORRECTLY, substrs = ["= 3"])
if __name__ == '__main__':
diff --git a/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py b/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
index d9084491e20..b614d753b13 100644
--- a/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
+++ b/lldb/test/lang/objc/ivar-IMP/TestObjCiVarIMP.py
@@ -22,23 +22,14 @@ class ObjCiVarIMPTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
+ @no_debug_info_test
def test_imp_ivar_type(self):
"""Test that dynamically discovered ivars of type IMP do not crash LLDB"""
if self.getArchitecture() == 'i386':
# rdar://problem/9946499
self.skipTest("Dynamic types for ObjC V1 runtime not implemented")
- self.buildReproCase()
- self.runTheTest()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def buildReproCase (self):
+
execute_command("make repro")
-
- def runTheTest(self):
- """MakeTest that dynamically discovered ivars of type IMP do not crash LLDB"""
def cleanup():
execute_command("make cleanup")
self.addTearDownHook(cleanup)
@@ -46,7 +37,6 @@ class ObjCiVarIMPTestCase(TestBase):
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
-
target = self.dbg.CreateTarget (exe)
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py b/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
index b875dfc7860..8a11c24e401 100644
--- a/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
+++ b/lldb/test/lang/objc/modules-auto-import/TestModulesAutoImport.py
@@ -14,37 +14,18 @@ class ObjCModulesAutoImportTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @unittest2.expectedFailure("rdar://problem/19991953")
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @dwarf_test
- @skipIfFreeBSD
- @skipIfLinux
- @skipIfWindows
- @expectedFailureDarwin # clang: error: unknown argument: '-gmodules'
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.m', '// Set breakpoint 0 here.')
- def applies(self):
- if platform.system() != "Darwin":
- return False
- if StrictVersion('12.0.0') > platform.release():
- return False
-
- return True
-
- def common_setup(self):
+ @skipUnlessDarwin
+ @unittest2.expectedFailure("rdar://problem/19991953")
+ @expectedFailureDarwin # clang: error: unknown argument: '-gmodules'
+ @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ def test_expr(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -62,12 +43,6 @@ class ObjCModulesAutoImportTestCase(TestBase):
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
- def expr(self):
- if not self.applies():
- return
-
- self.common_setup()
-
self.runCmd("settings set target.auto-import-clang-modules true")
self.expect("p getpid()", VARIABLES_DISPLAYED_CORRECTLY,
diff --git a/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py b/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py
index b552fd566a9..60bb82da2c6 100644
--- a/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py
+++ b/lldb/test/lang/objc/modules-incomplete/TestIncompleteModules.py
@@ -14,36 +14,17 @@ class IncompleteModulesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @unittest2.expectedFailure("rdar://20416388")
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @dwarf_test
- @skipIfFreeBSD
- @skipIfLinux
- @unittest2.expectedFailure("rdar://20416388")
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.m', '// Set breakpoint 0 here.')
- def applies(self):
- if platform.system() != "Darwin":
- return False
- if StrictVersion('12.0.0') > platform.release():
- return False
-
- return True
-
- def common_setup(self):
+ @skipUnlessDarwin
+ @unittest2.expectedFailure("rdar://20416388")
+ @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ def test_expr(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -61,12 +42,6 @@ class IncompleteModulesTestCase(TestBase):
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
- def expr(self):
- if not self.applies():
- return
-
- self.common_setup()
-
self.runCmd("settings set target.clang-module-search-paths \"" + os.getcwd() + "\"")
self.expect("expr @import myModule; 3", VARIABLES_DISPLAYED_CORRECTLY,
diff --git a/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py b/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
index e74cd82a651..02ac9d79514 100644
--- a/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
+++ b/lldb/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
@@ -14,35 +14,16 @@ class ModulesInlineFunctionsTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @dwarf_test
- @skipIfFreeBSD
- @skipIfLinux
- @skipIfWindows
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.m', '// Set breakpoint here.')
- def applies(self):
- if platform.system() != "Darwin":
- return False
- if StrictVersion('12.0.0') > platform.release():
- return False
-
- return True
-
- def common_setup(self):
+ @skipUnlessDarwin
+ @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ def test_expr(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -60,12 +41,6 @@ class ModulesInlineFunctionsTestCase(TestBase):
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
- def expr(self):
- if not self.applies():
- return
-
- self.common_setup()
-
self.runCmd("settings set target.clang-module-search-paths \"" + os.getcwd() + "\"")
self.expect("expr @import myModule; 3", VARIABLES_DISPLAYED_CORRECTLY,
diff --git a/lldb/test/lang/objc/modules/TestObjCModules.py b/lldb/test/lang/objc/modules/TestObjCModules.py
index 09a5bfa7b1c..b3a5d1395ae 100644
--- a/lldb/test/lang/objc/modules/TestObjCModules.py
+++ b/lldb/test/lang/objc/modules/TestObjCModules.py
@@ -14,35 +14,20 @@ class ObjCModulesTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @unittest2.expectedFailure("rdar://20416388")
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @dwarf_test
- @skipUnlessDarwin
- @unittest2.expectedFailure("rdar://20416388")
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.m', '// Set breakpoint 0 here.')
- def applies(self):
- if platform.system() != "Darwin":
- return False
- if StrictVersion('12.0.0') > platform.release():
- return False
-
- return True
+ @skipUnlessDarwin
+ @unittest2.expectedFailure("rdar://20416388")
+ @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ def test_expr(self):
+ if not self.applies():
+ return
- def common_setup(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -60,12 +45,6 @@ class ObjCModulesTestCase(TestBase):
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
- def expr(self):
- if not self.applies():
- return
-
- self.common_setup()
-
self.expect("expr @import Darwin; 3", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["int", "3"])
@@ -86,7 +65,7 @@ class ObjCModulesTestCase(TestBase):
self.expect("p [NSURL URLWithString:@\"http://lldb.llvm.org\"].scheme", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["http"])
-
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/objc/objc++/TestObjCXX.py b/lldb/test/lang/objc/objc++/TestObjCXX.py
index eeb2bc8bf02..1ae73bd463c 100644
--- a/lldb/test/lang/objc/objc++/TestObjCXX.py
+++ b/lldb/test/lang/objc/objc++/TestObjCXX.py
@@ -12,25 +12,13 @@ class ObjCXXTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_break_with_dsym(self):
- """Test ivars of Objective-C++ classes"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires Objective-C 2.0 runtime")
- self.buildDsym()
- self.do_testObjCXXClasses()
-
@skipUnlessDarwin
- @dwarf_test
- def test_break_with_dwarf(self):
+ def test_break(self):
"""Test ivars of Objective-C++ classes"""
if self.getArchitecture() == 'i386':
self.skipTest("requires Objective-C 2.0 runtime")
- self.buildDwarf()
- self.do_testObjCXXClasses()
- def do_testObjCXXClasses(self):
- """Test ivars of Objective-C++ classes"""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py b/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
index d732f677388..f7d8d5b6d24 100644
--- a/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
+++ b/lldb/test/lang/objc/objc-baseclass-sbtype/TestObjCBaseClassSBType.py
@@ -12,36 +12,21 @@ class ObjCDynamicValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_get_baseclass_with_dsym(self):
- """Test fetching ObjC base class info."""
- if self.getArchitecture() == 'i386':
- # rdar://problem/9946499
- self.skipTest("Dynamic types for ObjC V1 runtime not implemented")
- self.buildDsym()
- self.do_get_baseclass_info()
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+
+ self.line = line_number('main.m', '// Set breakpoint here.')
@skipUnlessDarwin
@python_api_test
- @dwarf_test
- def test_get_baseclass_with_dwarf(self):
+ def test_get_baseclass(self):
"""Test fetching ObjC dynamic values."""
if self.getArchitecture() == 'i386':
# rdar://problem/9946499
self.skipTest("Dynamic types for ObjC V1 runtime not implemented")
- self.buildDwarf()
- self.do_get_baseclass_info()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- self.line = line_number('main.m', '// Set breakpoint here.')
- def do_get_baseclass_info(self):
- """Make sure we get dynamic values correctly both for compiled in classes and dynamic ones"""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
diff --git a/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py b/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
index ad48156384a..f07adb6ae3e 100644
--- a/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
+++ b/lldb/test/lang/objc/objc-builtin-types/TestObjCBuiltinTypes.py
@@ -10,22 +10,6 @@ class TestObjCBuiltinTypes(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
-
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test expression parser respect for ObjC built-in types."""
- self.buildDsym()
- self.objc_builtin_types()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test expression parser respect for ObjC built-in types."""
- self.buildDwarf()
- self.objc_builtin_types()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -33,9 +17,12 @@ class TestObjCBuiltinTypes(TestBase):
self.main_source = "main.cpp"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ @skipUnlessDarwin
+ @python_api_test
#<rdar://problem/10591460> [regression] Can't print ivar value: error: reference to 'id' is ambiguous
- def objc_builtin_types(self):
+ def test_with_python_api(self):
"""Test expression parser respect for ObjC built-in types."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py b/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
index 550ce0e50dd..8f816c516f1 100644
--- a/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
+++ b/lldb/test/lang/objc/objc-checker/TestObjCCheckers.py
@@ -12,36 +12,21 @@ class ObjCCheckerTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_objc_checker_with_dsym(self):
- """Test that checkers catch unrecognized selectors"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires Objective-C 2.0 runtime")
- self.buildDsym()
- self.do_test_checkers()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_objc_checker_with_dwarf(self):
- """Test that checkers catch unrecognized selectors"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires Objective-C 2.0 runtime")
- self.buildDwarf()
- self.do_test_checkers()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break for main.c.
-
self.source_name = 'main.m'
- def do_test_checkers (self):
- """Make sure the dynamic checkers catch messages to unrecognized selectors"""
+ @skipUnlessDarwin
+ @python_api_test
+ def test_objc_checker(self):
+ """Test that checkers catch unrecognized selectors"""
+ if self.getArchitecture() == 'i386':
+ self.skipTest("requires Objective-C 2.0 runtime")
+
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
diff --git a/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py b/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
index b3929b97a5e..27b091563f1 100644
--- a/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
+++ b/lldb/test/lang/objc/objc-class-method/TestObjCClassMethod.py
@@ -10,25 +10,6 @@ class TestObjCClassMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
-
- @expectedFailurei386
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test calling functions in class methods."""
- self.buildDsym()
- self.objc_class_method()
-
- @skipUnlessDarwin
- @expectedFailurei386
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test calling functions in class methods."""
- self.buildDwarf()
- self.objc_class_method()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -36,9 +17,13 @@ class TestObjCClassMethod(TestBase):
self.main_source = "class.m"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ @skipUnlessDarwin
+ @expectedFailurei386
+ @python_api_test
#rdar://problem/9745789 "expression" can't call functions in class methods
- def objc_class_method(self):
- """Test calling class methods."""
+ def test_with_python_api(self):
+ """Test calling functions in class methods."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -65,7 +50,7 @@ class TestObjCClassMethod(TestBase):
cmd_value = frame.EvaluateExpression ("(int)[Foo doSomethingWithString:@\"Hello\"]")
self.assertTrue (cmd_value.IsValid())
- self.assertTrue (cmd_value.GetValueAsUnsigned() == 5)
+ self.assertTrue (cmd_value.GetValueAsUnsigned() == 5)
if __name__ == '__main__':
import atexit
diff --git a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
index fd3ae8455e8..27f6da1bf9f 100644
--- a/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
+++ b/lldb/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
@@ -13,24 +13,6 @@ class ObjCDynamicSBTypeTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- @skipIfi386
- def test_dyn_with_dsym(self):
- """Test that we are able to properly report a usable dynamic type."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.dyn(self.exe_name)
-
- @dwarf_test
- @skipIfi386
- def test_dyn_with_dwarf(self):
- """Test that we are able to properly report a usable dynamic type."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.dyn(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -40,9 +22,14 @@ class ObjCDynamicSBTypeTestCase(TestBase):
self.main_source = "main.m"
self.line = line_number(self.main_source, '// Set breakpoint here.')
- def dyn(self, exe_name):
+ @skipIfi386
+ def test_dyn(self):
"""Test that we are able to properly report a usable dynamic type."""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+
+ exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py b/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
index 61a69cbc993..37a7b078cad 100644
--- a/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
+++ b/lldb/test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
@@ -12,30 +12,6 @@ class ObjCDynamicValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- @expectedFailureDarwin("llvm.org/pr20271 rdar://18684107")
- def test_get_dynamic_objc_vals_with_dsym(self):
- """Test fetching ObjC dynamic values."""
- if self.getArchitecture() == 'i386':
- # rdar://problem/9946499
- self.skipTest("Dynamic types for ObjC V1 runtime not implemented")
- self.buildDsym()
- self.do_get_dynamic_vals()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- @expectedFailureDarwin("llvm.org/pr20271 rdar://18684107")
- def test_get_objc_dynamic_vals_with_dwarf(self):
- """Test fetching ObjC dynamic values."""
- if self.getArchitecture() == 'i386':
- # rdar://problem/9946499
- self.skipTest("Dynamic types for ObjC V1 runtime not implemented")
- self.buildDwarf()
- self.do_get_dynamic_vals()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -49,15 +25,16 @@ class ObjCDynamicValueTestCase(TestBase):
self.main_before_setProperty_line = line_number(self.source_name,
'// Break here to see if we can step into real method.')
- def examine_SourceDerived_ptr (self, object):
- self.assertTrue (object)
- self.assertTrue (object.GetTypeName().find ('SourceDerived') != -1)
- derivedValue = object.GetChildMemberWithName ('_derivedValue')
- self.assertTrue (derivedValue)
- self.assertTrue (int (derivedValue.GetValue(), 0) == 30)
+ @skipUnlessDarwin
+ @python_api_test
+ @expectedFailureDarwin("llvm.org/pr20271 rdar://18684107")
+ def test_get_objc_dynamic_vals(self):
+ """Test fetching ObjC dynamic values."""
+ if self.getArchitecture() == 'i386':
+ # rdar://problem/9946499
+ self.skipTest("Dynamic types for ObjC V1 runtime not implemented")
- def do_get_dynamic_vals(self):
- """Make sure we get dynamic values correctly both for compiled in classes and dynamic ones"""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
@@ -188,6 +165,13 @@ class ObjCDynamicValueTestCase(TestBase):
self.examine_SourceDerived_ptr (object_dynamic)
+ def examine_SourceDerived_ptr (self, object):
+ self.assertTrue (object)
+ self.assertTrue (object.GetTypeName().find ('SourceDerived') != -1)
+ derivedValue = object.GetChildMemberWithName ('_derivedValue')
+ self.assertTrue (derivedValue)
+ self.assertTrue (int (derivedValue.GetValue(), 0) == 30)
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py b/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
index d03176bfc6a..98d6aa5a1a0 100644
--- a/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
+++ b/lldb/test/lang/objc/objc-ivar-offsets/TestObjCIvarOffsets.py
@@ -10,22 +10,6 @@ class TestObjCIvarOffsets(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test printing ObjC objects that use unbacked properties"""
- self.buildDsym()
- self.objc_ivar_offsets()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test printing ObjC objects that use unbacked properties"""
- self.buildDwarf()
- self.objc_ivar_offsets()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -33,8 +17,11 @@ class TestObjCIvarOffsets(TestBase):
self.main_source = "main.m"
self.stop_line = line_number(self.main_source, '// Set breakpoint here.')
- def objc_ivar_offsets(self):
- """Use Python APIs to test stepping into ObjC methods."""
+ @skipUnlessDarwin
+ @python_api_test
+ def test_with_python_api(self):
+ """Test printing ObjC objects that use unbacked properties"""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py b/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
index 56d9eb97d72..324744f2b5a 100644
--- a/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
+++ b/lldb/test/lang/objc/objc-ivar-stripped/TestObjCIvarStripped.py
@@ -10,14 +10,6 @@ class TestObjCIvarStripped(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test that we can find stripped Objective-C ivars in the runtime"""
- self.buildDsym()
- self.objc_ivar_offsets()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -25,8 +17,11 @@ class TestObjCIvarStripped(TestBase):
self.main_source = "main.m"
self.stop_line = line_number(self.main_source, '// Set breakpoint here.')
- def objc_ivar_offsets(self):
+ @skipUnlessDarwin
+ @python_api_test
+ def test_with_python_api(self):
"""Test that we can find stripped Objective-C ivars in the runtime"""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out.stripped")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py b/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
index 29e86fa8de0..97d8f92b33b 100644
--- a/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
+++ b/lldb/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py
@@ -14,39 +14,17 @@ class ObjCNewSyntaxTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- @expectedFailureAll(
- oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0'])
- def test_expr_with_dsym(self):
- self.buildDsym()
- self.expr()
-
- @dwarf_test
- @skipIfFreeBSD
- @skipIfLinux
- @skipIfWindows
- @expectedFailureAll(
- oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0'])
- def test_expr_with_dwarf(self):
- self.buildDwarf()
- self.expr()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number('main.m', '// Set breakpoint 0 here.')
- def applies(self):
- if platform.system() != "Darwin":
- return False
- if StrictVersion('12.0.0') > platform.release():
- return False
-
- return True
-
- def common_setup(self):
+ @skipUnlessDarwin
+ @expectedFailureAll(oslist=['macosx'], compiler='clang', compiler_version=['<', '7.0.0'])
+ @unittest2.skipIf(platform.system() != "Darwin" or StrictVersion('12.0.0') > platform.release(), "Only supported on Darwin 12.0.0+")
+ def test_expr(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -64,12 +42,6 @@ class ObjCNewSyntaxTestCase(TestBase):
self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE,
substrs = [' resolved, hit count = 1'])
- def expr(self):
- if not self.applies():
- return
-
- self.common_setup()
-
self.expect("expr --object-description -- immutable_array[0]", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["foo"])
@@ -126,7 +98,6 @@ class ObjCNewSyntaxTestCase(TestBase):
self.expect("expr -- @((char*)\"Hello world\" + 6)", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["NSString", "world"])
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py b/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
index 507e29e6773..e6a5958d2c1 100644
--- a/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
+++ b/lldb/test/lang/objc/objc-optimized/TestObjcOptimized.py
@@ -24,20 +24,9 @@ class ObjcOptimizedTestCase(TestBase):
mymethod = "description"
method_spec = "-[%s %s]" % (myclass, mymethod)
- @dsym_test
- def test_break_with_dsym(self):
- """Test 'expr member' continues to work for optimized build."""
- self.buildDsym()
- self.objc_optimized()
-
- @dwarf_test
- def test_break_with_dwarf(self):
- """Test 'expr member' continues to work for optimized build."""
- self.buildDwarf()
- self.objc_optimized()
-
- def objc_optimized(self):
+ def test_break(self):
"""Test 'expr member' continues to work for optimized build."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/lang/objc/objc-property/TestObjCProperty.py b/lldb/test/lang/objc/objc-property/TestObjCProperty.py
index 842ada1c2d7..0ed08363163 100644
--- a/lldb/test/lang/objc/objc-property/TestObjCProperty.py
+++ b/lldb/test/lang/objc/objc-property/TestObjCProperty.py
@@ -12,36 +12,21 @@ class ObjCPropertyTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_objc_properties_with_dsym(self):
- """Test that expr uses the correct property getters and setters"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- self.buildDsym()
- self.do_test_properties()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_objc_properties_with_dwarf(self):
- """Test that expr uses the correct property getters and setters"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- self.buildDwarf()
- self.do_test_properties()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break for main.c.
-
self.source_name = 'main.m'
- def run_to_main (self):
+ @skipUnlessDarwin
+ @python_api_test
+ def test_objc_properties(self):
"""Test that expr uses the correct property getters and setters"""
+ if self.getArchitecture() == 'i386':
+ self.skipTest("requires modern objc runtime")
+
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target from the debugger.
@@ -65,12 +50,6 @@ class ObjCPropertyTestCase(TestBase):
threads = lldbutil.get_threads_stopped_at_breakpoint (process, main_bkpt)
self.assertTrue (len(threads) == 1)
thread = threads[0]
- return thread
-
- def do_test_properties (self):
-
- thread = self.run_to_main()
-
frame = thread.GetFrameAtIndex(0)
mine = frame.FindVariable ("mine")
diff --git a/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py b/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
index 894fa2278e1..664494ea5aa 100644
--- a/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
+++ b/lldb/test/lang/objc/objc-static-method-stripped/TestObjCStaticMethodStripped.py
@@ -10,17 +10,6 @@ class TestObjCStaticMethodStripped(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- #<rdar://problem/12042992>
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test calling functions in static methods with a stripped binary."""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- self.buildDsym()
- self.objc_static_method_stripped()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -28,9 +17,14 @@ class TestObjCStaticMethodStripped(TestBase):
self.main_source = "static.m"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
+ @skipUnlessDarwin
+ @python_api_test
#<rdar://problem/12042992>
- def objc_static_method_stripped(self):
+ def test_with_python_api(self):
"""Test calling functions in static methods with a stripped binary."""
+ if self.getArchitecture() == 'i386':
+ self.skipTest("requires modern objc runtime")
+ self.build()
exe = os.path.join(os.getcwd(), "a.out.stripped")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py b/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
index 84f5210336f..c54d23b6105 100644
--- a/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
+++ b/lldb/test/lang/objc/objc-static-method/TestObjCStaticMethod.py
@@ -10,24 +10,6 @@ class TestObjCStaticMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- #<rdar://problem/9745789> "expression" can't call functions in class methods
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test calling functions in static methods."""
- self.buildDsym()
- self.objc_static_method()
-
- @skipUnlessDarwin
- @python_api_test
- #<rdar://problem/9745789> "expression" can't call functions in class methods
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test calling functions in static methods."""
- self.buildDwarf()
- self.objc_static_method()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -35,9 +17,12 @@ class TestObjCStaticMethod(TestBase):
self.main_source = "static.m"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
- #rdar://problem/9745789 "expression" can't call functions in class methods
- def objc_static_method(self):
+ @skipUnlessDarwin
+ @python_api_test
+ #<rdar://problem/9745789> "expression" can't call functions in class methods
+ def test_with_python_api(self):
"""Test calling functions in static methods."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py b/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
index d93bae682f2..0fb8bcebe91 100644
--- a/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
+++ b/lldb/test/lang/objc/objc-stepping/TestObjCStepping.py
@@ -13,22 +13,6 @@ class TestObjCStepping(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test stepping through ObjC method dispatch in various forms."""
- self.buildDsym()
- self.objc_stepping()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test stepping through ObjC method dispatch in various forms."""
- self.buildDwarf()
- self.objc_stepping()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -40,8 +24,11 @@ class TestObjCStepping(TestBase):
self.sourceBase_returnsStruct_start_line = line_number (self.main_source, '// SourceBase returnsStruct start line.')
self.stepped_past_nil_line = line_number (self.main_source, '// Step over nil should stop here.')
- def objc_stepping(self):
- """Use Python APIs to test stepping into ObjC methods."""
+ @skipUnlessDarwin
+ @python_api_test
+ def test_with_python_api(self):
+ """Test stepping through ObjC method dispatch in various forms."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py b/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
index 5e4106e56b6..47d1ea432b4 100644
--- a/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
+++ b/lldb/test/lang/objc/objc-struct-argument/TestObjCStructArgument.py
@@ -10,22 +10,6 @@ class TestObjCStructArgument(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test passing structs to Objective-C methods."""
- self.buildDsym()
- self.objc_class_method()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test passing structs to Objective-C methods."""
- self.buildDwarf()
- self.objc_class_method()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -33,8 +17,11 @@ class TestObjCStructArgument(TestBase):
self.main_source = "test.m"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
- def objc_class_method(self):
+ @skipUnlessDarwin
+ @python_api_test
+ def test_with_python_api(self):
"""Test passing structs to Objective-C methods."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py b/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
index c884fe9486b..27a3c3e509e 100644
--- a/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
+++ b/lldb/test/lang/objc/objc-struct-return/TestObjCStructReturn.py
@@ -10,22 +10,6 @@ class TestObjCClassMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test calling functions in class methods."""
- self.buildDsym()
- self.objc_class_method()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test calling functions in class methods."""
- self.buildDwarf()
- self.objc_class_method()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -33,8 +17,11 @@ class TestObjCClassMethod(TestBase):
self.main_source = "test.m"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
- def objc_class_method(self):
- """Test calling class methods."""
+ @skipUnlessDarwin
+ @python_api_test
+ def test_with_python_api(self):
+ """Test calling functions in class methods."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/objc-super/TestObjCSuper.py b/lldb/test/lang/objc/objc-super/TestObjCSuper.py
index faa97c200b1..1d1f43be37f 100644
--- a/lldb/test/lang/objc/objc-super/TestObjCSuper.py
+++ b/lldb/test/lang/objc/objc-super/TestObjCSuper.py
@@ -10,24 +10,6 @@ class TestObjCSuperMethod(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @expectedFailurei386
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test calling methods on super."""
- self.buildDsym()
- self.objc_super()
-
- @skipUnlessDarwin
- @expectedFailurei386
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test calling methods on super."""
- self.buildDwarf()
- self.objc_super()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -35,8 +17,12 @@ class TestObjCSuperMethod(TestBase):
self.main_source = "class.m"
self.break_line = line_number(self.main_source, '// Set breakpoint here.')
- def objc_super(self):
+ @skipUnlessDarwin
+ @expectedFailurei386
+ @python_api_test
+ def test_with_python_api(self):
"""Test calling methods on super."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/lang/objc/print-obj/TestPrintObj.py b/lldb/test/lang/objc/print-obj/TestPrintObj.py
index c3386bf930d..f6143b04e8d 100644
--- a/lldb/test/lang/objc/print-obj/TestPrintObj.py
+++ b/lldb/test/lang/objc/print-obj/TestPrintObj.py
@@ -12,22 +12,6 @@ class PrintObjTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_print_obj_with_dsym(self):
- """Test "print object" where another thread blocks the print object from making progress."""
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.print_obj('a.out')
-
- @dwarf_test
- def test_print_obj_with_dwarf(self):
- """Test "print object" where another thread blocks the print object from making progress."""
- d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.print_obj('b.out')
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -36,7 +20,7 @@ class PrintObjTestCase(TestBase):
# Find the line numbers to break at.
self.line = line_number(self.source, '// Set a breakpoint here.')
- def print_obj(self, exe_name):
+ def test_print_obj(self):
"""
Test "print object" where another thread blocks the print object from making progress.
@@ -45,7 +29,10 @@ class PrintObjTestCase(TestBase):
try to get the lock already gotten by my_pthread_routime thread, it will
have to switch to running all threads, and that should then succeed.
"""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': 'b.out'}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ exe = os.path.join(os.getcwd(), 'b.out')
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py b/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
index ff860e1ef3e..b33741b4f46 100644
--- a/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
+++ b/lldb/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
@@ -13,22 +13,6 @@ class MethodReturningBOOLTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_method_ret_BOOL_with_dsym(self):
- """Test that objective-c method returning BOOL works correctly."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.objc_method_ret_BOOL(self.exe_name)
-
- @dwarf_test
- def test_method_ret_BOOL_with_dwarf(self):
- """Test that objective-c method returning BOOL works correctly."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.objc_method_ret_BOOL(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -38,9 +22,13 @@ class MethodReturningBOOLTestCase(TestBase):
self.main_source = "main.m"
self.line = line_number(self.main_source, '// Set breakpoint here.')
- def objc_method_ret_BOOL(self, exe_name):
+ def test_method_ret_BOOL(self):
"""Test that objective-c method returning BOOL works correctly."""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+
+ exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.m", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py b/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
index c8f4c1fd2ca..17d1015701a 100644
--- a/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
+++ b/lldb/test/lang/objc/rdar-10967107/TestRdar10967107.py
@@ -13,22 +13,6 @@ class Rdar10967107TestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_cfrange_diff_cfgregoriandate_with_dsym(self):
- """Test that CoreFoundation classes CFGregorianDate and CFRange are not improperly uniqued."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.cfrange_diff_cfgregoriandate(self.exe_name)
-
- @dwarf_test
- def test_cfrange_diff_cfgregoriandate_with_dwarf(self):
- """Test that CoreFoundation classes CFGregorianDate and CFRange are not improperly uniqued."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.cfrange_diff_cfgregoriandate(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -38,9 +22,13 @@ class Rdar10967107TestCase(TestBase):
self.main_source = "main.m"
self.line = line_number(self.main_source, '// Set breakpoint here.')
- def cfrange_diff_cfgregoriandate(self, exe_name):
+ def test_cfrange_diff_cfgregoriandate(self):
"""Test that CoreFoundation classes CFGregorianDate and CFRange are not improperly uniqued."""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+
+ exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py b/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
index 0cbb7388711..14f85c42b82 100644
--- a/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
+++ b/lldb/test/lang/objc/rdar-11355592/TestRdar11355592.py
@@ -13,22 +13,6 @@ class Rdar10967107TestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_charstar_dyntype_with_dsym(self):
- """Test that we do not attempt to make a dynamic type for a 'const char*'"""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.charstar_dyntype(self.exe_name)
-
- @dwarf_test
- def test_charstar_dyntype_with_dwarf(self):
- """Test that we do not attempt to make a dynamic type for a 'const char*'"""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.charstar_dyntype(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -38,9 +22,13 @@ class Rdar10967107TestCase(TestBase):
self.main_source = "main.m"
self.line = line_number(self.main_source, '// Set breakpoint here.')
- def charstar_dyntype(self, exe_name):
+ def test_charstar_dyntype(self):
"""Test that we do not attempt to make a dynamic type for a 'const char*'"""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+
+ exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py b/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
index ddc94efca53..d1d2292ac2e 100644
--- a/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
+++ b/lldb/test/lang/objc/rdar-12408181/TestRdar12408181.py
@@ -13,22 +13,6 @@ class Rdar12408181TestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @dsym_test
- def test_nswindow_count_with_dsym(self):
- """Test that we are able to find out how many children NSWindow has."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.nswindow_count(self.exe_name)
-
- @dwarf_test
- def test_nswindow_count_with_dwarf(self):
- """Test that we are able to find out how many children NSWindow has."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.nswindow_count(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -38,9 +22,13 @@ class Rdar12408181TestCase(TestBase):
self.main_source = "main.m"
self.line = line_number(self.main_source, '// Set breakpoint here.')
- def nswindow_count(self, exe_name):
+ def test_nswindow_count(self):
"""Test that we are able to find out how many children NSWindow has."""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+
+ exe = os.path.join(os.getcwd(), self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, self.main_source, self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/lang/objc/real-definition/TestRealDefinition.py b/lldb/test/lang/objc/real-definition/TestRealDefinition.py
index 41f0b27db1d..8557423324d 100644
--- a/lldb/test/lang/objc/real-definition/TestRealDefinition.py
+++ b/lldb/test/lang/objc/real-definition/TestRealDefinition.py
@@ -11,55 +11,11 @@ class TestRealDefinition(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
- @dsym_test
- def test_frame_var_after_stop_at_interface_with_dsym(self):
+ def test_frame_var_after_stop_at_interface(self):
"""Test that we can find the implementation for an objective C type"""
if self.getArchitecture() == 'i386':
self.skipTest("requires modern objc runtime")
- self.buildDsym()
- self.stop_at_interface()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_frame_var_after_stop_at_interface_with_dwarf(self):
- """Test that we can find the implementation for an objective C type"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- self.buildDwarf()
- self.stop_at_interface()
-
- @skipUnlessDarwin
- @dsym_test
- def test_frame_var_after_stop_at_implementation_with_dsym(self):
- """Test that we can find the implementation for an objective C type"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- self.buildDsym()
- self.stop_at_implementation()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_frame_var_after_stop_at_implementation_with_dwarf(self):
- """Test that we can find the implementation for an objective C type"""
- if self.getArchitecture() == 'i386':
- self.skipTest("requires modern objc runtime")
- self.buildDwarf()
- self.stop_at_implementation()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def common_setup(self):
- exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- # Break inside the foo function which takes a bar_ptr argument.
- line = line_number('main.m', '// Set breakpoint in main')
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
- def stop_at_interface(self):
- """Test that we can find the implementation for an objective C type when we stop in the interface"""
+ self.build()
self.common_setup()
line = line_number('Foo.m', '// Set breakpoint where Bar is an interface')
@@ -86,8 +42,12 @@ class TestRealDefinition(TestBase):
self.expect("frame variable foo->_bar->_hidden_ivar", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["(NSString *)", "foo->_bar->_hidden_ivar = 0x"])
- def stop_at_implementation(self):
- """Test that we can find the implementation for an objective C type when we stop in the implementation"""
+ @skipUnlessDarwin
+ def test_frame_var_after_stop_at_implementation(self):
+ """Test that we can find the implementation for an objective C type"""
+ if self.getArchitecture() == 'i386':
+ self.skipTest("requires modern objc runtime")
+ self.build()
self.common_setup()
line = line_number('Bar.m', '// Set breakpoint where Bar is an implementation')
@@ -114,7 +74,14 @@ class TestRealDefinition(TestBase):
self.expect("frame variable foo->_bar->_hidden_ivar", VARIABLES_DISPLAYED_CORRECTLY,
substrs = ["(NSString *)", "foo->_bar->_hidden_ivar = 0x"])
-
+ def common_setup(self):
+ exe = os.path.join(os.getcwd(), "a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ # Break inside the foo function which takes a bar_ptr argument.
+ line = line_number('main.m', '// Set breakpoint in main')
+ lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/lang/objc/self/TestObjCSelf.py b/lldb/test/lang/objc/self/TestObjCSelf.py
index 1ed2283292e..239e2de644f 100644
--- a/lldb/test/lang/objc/self/TestObjCSelf.py
+++ b/lldb/test/lang/objc/self/TestObjCSelf.py
@@ -10,27 +10,9 @@ class ObjCSelfTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that the appropriate member variables are available when stopped in Objective-C class and instance methods"""
- self.buildDsym()
- self.self_commands()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test that the appropriate member variables are available when stopped in Objective-C class and instance methods"""
- self.buildDwarf()
- self.self_commands()
-
- def setUp(self):
- TestBase.setUp(self)
-
- def set_breakpoint(self, line):
- lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
-
- def self_commands(self):
+ def test_with_run_command(self):
"""Test that the appropriate member variables are available when stopped in Objective-C class and instance methods"""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
self.set_breakpoint(line_number('main.m', '// breakpoint 1'))
@@ -50,6 +32,9 @@ class ObjCSelfTestCase(TestBase):
self.expect("expression -- s_a",
startstr = "(int) $1 = 5")
+ def set_breakpoint(self, line):
+ lldbutil.run_break_set_by_file_and_line (self, "main.m", line, num_expected_locations=1, loc_exact=True)
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/linux/builtin_trap/TestBuiltinTrap.py b/lldb/test/linux/builtin_trap/TestBuiltinTrap.py
index 2f8c3c2c5e4..b2870f101ad 100644
--- a/lldb/test/linux/builtin_trap/TestBuiltinTrap.py
+++ b/lldb/test/linux/builtin_trap/TestBuiltinTrap.py
@@ -13,32 +13,17 @@ class BuiltinTrapTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test that LLDB handles a function with __builtin_trap correctly."""
- self.buildDsym()
- self.builtin_trap_unwind()
-
- @dwarf_test
- @expectedFailureAll("llvm.org/pr15936", compiler="gcc", compiler_version=["<=","4.6"])
- @expectedFailureAll(archs="arm", compiler="gcc", triple=".*-android") # gcc generates incorrect linetable
- @skipIfWindows
- def test_with_dwarf_and_run_command(self):
- """Test that LLDB handles a function with __builtin_trap correctly."""
- self.buildDwarf()
- self.builtin_trap_unwind()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def builtin_trap_unwind(self):
- """Test that LLDB handles unwinding a frame that contains a function
- with a __builtin_trap intrinsic.
- """
+ @expectedFailureAll("llvm.org/pr15936", compiler="gcc", compiler_version=["<=","4.6"])
+ @expectedFailureAll(archs="arm", compiler="gcc", triple=".*-android") # gcc generates incorrect linetable
+ def test_with_run_command(self):
+ """Test that LLDB handles a function with __builtin_trap correctly."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line,
@@ -61,8 +46,6 @@ class BuiltinTrapTestCase(TestBase):
# evaluate a local
self.expect('p foo', substrs = ['= 5'])
-
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py b/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
index 6f155726147..65c145f6eb5 100644
--- a/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
+++ b/lldb/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
@@ -19,12 +19,8 @@ class CreateDuringInstructionStepTestCase(TestBase):
@skipUnlessPlatform(['linux'])
@expectedFailureAndroid('llvm.org/pr24737', archs=['arm'])
- @dwarf_test
- def test_step_inst_with_dwarf(self):
- self.buildDwarf(dictionary=self.getBuildFlags())
- self.create_during_step_inst_test()
-
- def create_during_step_inst_test(self):
+ def test_step_inst(self):
+ self.build(dictionary=self.getBuildFlags())
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
self.assertTrue(target and target.IsValid(), "Target is valid")
diff --git a/lldb/test/lldbtest.py b/lldb/test/lldbtest.py
index a55cde43412..b59d692785e 100644
--- a/lldb/test/lldbtest.py
+++ b/lldb/test/lldbtest.py
@@ -520,6 +520,19 @@ def benchmarks_test(func):
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 @@ def expectedFailure(expected_fn, bugnumber=None):
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 expectedFailurei386(bugnumber=None):
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 @@ def expectedFailureHostOS(oslist, bugnumber=None, compilers=None):
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 @@ def expectedFlakey(expected_fn, bugnumber=None):
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 @@ def skipIfLinuxClang(func):
# @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):
@@ -2049,7 +2088,7 @@ class Base(unittest2.TestCase):
print "Building LLDB Library (%s) from sources %s" % (lib_name, sources)
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,
@@ -2177,6 +2216,34 @@ class Base(unittest2.TestCase):
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 '<original-name>_<debug-info>' 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 +2304,9 @@ class TestBase(Base):
# 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 +2762,20 @@ class TestBase(Base):
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
# =================================================
diff --git a/lldb/test/logging/TestLogging.py b/lldb/test/logging/TestLogging.py
index f8e995cd570..a76c149893d 100644
--- a/lldb/test/logging/TestLogging.py
+++ b/lldb/test/logging/TestLogging.py
@@ -13,23 +13,18 @@ class LogTestCase(TestBase):
append_log_file = "lldb-commands-log-append.txt"
truncate_log_file = "lldb-commands-log-truncate.txt"
-
@classmethod
def classCleanup(cls):
"""Cleanup the test byproducts."""
cls.RemoveTempFile(cls.truncate_log_file)
cls.RemoveTempFile(cls.append_log_file)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym (self):
- self.buildDsym ()
- self.command_log_tests ("dsym")
-
- @dwarf_test
- def test_with_dwarf (self):
- self.buildDwarf ()
- self.command_log_tests ("dwarf")
+ def test (self):
+ self.build()
+ if self.debug_info == "dsym":
+ self.command_log_tests ("dsym")
+ else:
+ self.command_log_tests ("dwarf")
def command_log_tests (self, type):
exe = os.path.join (os.getcwd(), "a.out")
@@ -66,6 +61,7 @@ class LogTestCase(TestBase):
self.assertTrue(log_lines > 0, "Something was written to the log file.")
# Check that lldb truncates its log files
+ @no_debug_info_test
def test_log_truncate (self):
if (os.path.exists (self.truncate_log_file)):
os.remove (self.truncate_log_file)
@@ -87,6 +83,7 @@ class LogTestCase(TestBase):
self.assertTrue(string.find(contents, "bacon") == -1)
# Check that lldb can append to a log file
+ @no_debug_info_test
def test_log_append (self):
if (os.path.exists (self.append_log_file)):
os.remove (self.append_log_file)
@@ -106,7 +103,6 @@ class LogTestCase(TestBase):
# check that it is still there
self.assertTrue(string.find(contents, "bacon") == 0)
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py b/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py
index 29ab55e6199..3907e445da2 100644
--- a/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py
+++ b/lldb/test/macosx/add-dsym/TestAddDsymMidExecutionCommand.py
@@ -16,6 +16,7 @@ class AddDsymMidExecutionCommandCase(TestBase):
TestBase.setUp(self)
self.source = 'main.c'
+ @no_debug_info_test # Prevent the genaration of the dwarf version of this test
def test_add_dsym_mid_execution(self):
"""Test that add-dsym mid-execution loads the symbols at the right place for a slid binary."""
self.buildDsym(clean=True)
diff --git a/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py b/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py
index f2a21c6311f..3ff481f86f9 100644
--- a/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py
+++ b/lldb/test/macosx/debug-info/apple_types/TestAppleTypesIsProduced.py
@@ -20,26 +20,11 @@ class AppleTypesTestCase(TestBase):
if not self.getCompiler().endswith('clang'):
self.skipTest("clang compiler only test")
- self.buildDefault()
- self.apple_types(dot_o=True)
-
- @skipUnlessDarwin
- def test_debug_info_for_apple_types_dsym(self):
- """Test that __apple_types section does get produced by dsymutil.
- This is supposed to succeed even with rdar://problem/11166975."""
-
- if not self.getCompiler().endswith('clang'):
- self.skipTest("clang compiler only test")
-
- self.buildDsym()
- self.apple_types(dot_o=False)
-
- def apple_types(self, dot_o):
- """Test that __apple_types section does get produced by clang."""
- if dot_o:
- exe = os.path.join(os.getcwd(), "main.o")
- else:
+ self.build()
+ if self.debug_info == "dsym":
exe = os.path.join(os.getcwd(), "a.out.dSYM/Contents/Resources/DWARF/a.out")
+ else:
+ exe = os.path.join(os.getcwd(), "main.o")
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py b/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py
index e92b3c43f0b..c28d0473ee3 100644
--- a/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py
+++ b/lldb/test/macosx/indirect_symbol/TestIndirectSymbols.py
@@ -10,30 +10,17 @@ class TestIndirectFunctions(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test stepping and setting breakpoints in indirect and re-exported symbols."""
- self.buildDsym()
- self.indirect_stepping()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test stepping and setting breakpoints in indirect and re-exported symbols."""
- self.buildDwarf()
- self.indirect_stepping()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers that we will step to in main:
self.main_source = "main.c"
- def indirect_stepping(self):
+ @skipUnlessDarwin
+ @python_api_test
+ def test_with_python_api(self):
"""Test stepping and setting breakpoints in indirect and re-exported symbols."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/macosx/order/TestOrderFile.py b/lldb/test/macosx/order/TestOrderFile.py
index 1e25e03c16a..d8b7f37f26b 100644
--- a/lldb/test/macosx/order/TestOrderFile.py
+++ b/lldb/test/macosx/order/TestOrderFile.py
@@ -13,21 +13,9 @@ class OrderFileTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@skipUnlessDarwin
- @dsym_test
- def test_with_dsym(self):
- """Test debug symbols follow the correct order by the order file."""
- self.buildDsym()
- self.order_file()
-
- @skipUnlessDarwin
- @dwarf_test
- def test_with_dwarf(self):
- """Test debug symbols follow the correct order by the order file."""
- self.buildDwarf()
- self.order_file()
-
- def order_file(self):
+ def test(self):
"""Test debug symbols follow the correct order by the order file."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -44,7 +32,6 @@ class OrderFileTestCase(TestBase):
self.runCmd("run", RUN_COMPLETED)
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/macosx/queues/TestQueues.py b/lldb/test/macosx/queues/TestQueues.py
index c6c7db6bc1c..d4f3ba9ce77 100644
--- a/lldb/test/macosx/queues/TestQueues.py
+++ b/lldb/test/macosx/queues/TestQueues.py
@@ -12,19 +12,9 @@ class TestQueues(TestBase):
@skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
+ def test_with_python_api(self):
"""Test queues inspection SB APIs."""
- self.buildDsym()
- self.queues()
- self.queues_with_libBacktraceRecording()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test queues inspection SB APIs."""
- self.buildDwarf()
+ self.build()
self.queues()
self.queues_with_libBacktraceRecording()
diff --git a/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py b/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py
index 73ae892dc75..8299bd28429 100644
--- a/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py
+++ b/lldb/test/macosx/safe-to-func-call/TestSafeFuncCalls.py
@@ -10,41 +10,17 @@ class TestSafeFuncCalls(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_python_api(self):
- """Test function call thread safety."""
- self.buildDsym()
- self.function_call_safety_check()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_python_api(self):
- """Test function call thread safety."""
- self.buildDwarf()
- self.function_call_safety_check()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line numbers that we will step to in main:
self.main_source = "main.c"
-
-
- def check_number_of_threads(self, process):
- self.assertTrue(process.GetNumThreads() == 2, "Check that the process has two threads when sitting at the stopper() breakpoint")
-
- def safe_to_call_func_on_main_thread (self, main_thread):
- self.assertTrue(main_thread.SafeToCallFunctions() == True, "It is safe to call functions on the main thread")
-
- def safe_to_call_func_on_select_thread (self, select_thread):
- self.assertTrue(select_thread.SafeToCallFunctions() == False, "It is not safe to call functions on the select thread")
-
- def function_call_safety_check(self):
- """Test function call safety checks"""
+ @skipUnlessDarwin
+ @python_api_test
+ def test_with_python_api(self):
+ """Test function call thread safety."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -74,6 +50,15 @@ class TestSafeFuncCalls(TestBase):
self.safe_to_call_func_on_main_thread (main_thread)
self.safe_to_call_func_on_select_thread (select_thread)
+ def check_number_of_threads(self, process):
+ self.assertTrue(process.GetNumThreads() == 2, "Check that the process has two threads when sitting at the stopper() breakpoint")
+
+ def safe_to_call_func_on_main_thread (self, main_thread):
+ self.assertTrue(main_thread.SafeToCallFunctions() == True, "It is safe to call functions on the main thread")
+
+ def safe_to_call_func_on_select_thread (self, select_thread):
+ self.assertTrue(select_thread.SafeToCallFunctions() == False, "It is not safe to call functions on the select thread")
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/macosx/universal/TestUniversal.py b/lldb/test/macosx/universal/TestUniversal.py
index 9c2c789dd4a..7c3decfa92c 100644
--- a/lldb/test/macosx/universal/TestUniversal.py
+++ b/lldb/test/macosx/universal/TestUniversal.py
@@ -23,7 +23,7 @@ class UniversalTestCase(TestBase):
def test_sbdebugger_create_target_with_file_and_target_triple(self):
"""Test the SBDebugger.CreateTargetWithFileAndTargetTriple() API."""
# Invoke the default build rule.
- self.buildDefault()
+ self.build()
# Note that "testit" is a universal binary.
exe = os.path.join(os.getcwd(), "testit")
@@ -44,7 +44,7 @@ class UniversalTestCase(TestBase):
from lldbutil import print_registers
# Invoke the default build rule.
- self.buildDefault()
+ self.build()
# Note that "testit" is a universal binary.
exe = os.path.join(os.getcwd(), "testit")
diff --git a/lldb/test/python_api/breakpoint/TestBreakpointAPI.py b/lldb/test/python_api/breakpoint/TestBreakpointAPI.py
index 0a4e7fa5a79..764fe22c190 100644
--- a/lldb/test/python_api/breakpoint/TestBreakpointAPI.py
+++ b/lldb/test/python_api/breakpoint/TestBreakpointAPI.py
@@ -12,27 +12,10 @@ class BreakpointAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_breakpoint_is_valid_with_dsym(self):
+ def test_breakpoint_is_valid(self):
"""Make sure that if an SBBreakpoint gets deleted its IsValid returns false."""
- self.buildDsym()
- self.breakpoint_is_valid()
-
- @python_api_test
- @dwarf_test
- def test_breakpoint_is_valid_with_dwarf(self):
- """Make sure that if an SBBreakpoint gets deleted its IsValid returns false."""
- self.buildDwarf()
- self.breakpoint_is_valid ()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def breakpoint_is_valid(self):
- """Get an SBBreakpoint object, delete it from the target and make sure it is no longer valid."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/class_members/TestSBTypeClassMembers.py b/lldb/test/python_api/class_members/TestSBTypeClassMembers.py
index c3af671572a..1361c787839 100644
--- a/lldb/test/python_api/class_members/TestSBTypeClassMembers.py
+++ b/lldb/test/python_api/class_members/TestSBTypeClassMembers.py
@@ -12,26 +12,6 @@ class SBTypeMemberFunctionsTest(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Test SBType APIs to fetch member function types."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.type_api(self.exe_name)
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf(self):
- """Test SBType APIs to fetch member function types."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.type_api(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -41,9 +21,14 @@ class SBTypeMemberFunctionsTest(TestBase):
self.source = 'main.mm'
self.line = line_number(self.source, '// set breakpoint here')
- def type_api(self, exe_name):
+ @skipUnlessDarwin
+ @python_api_test
+ def test(self):
"""Test SBType APIs to fetch member function types."""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ exe = os.path.join(os.getcwd(), self.exe_name)
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/debugger/TestDebuggerAPI.py b/lldb/test/python_api/debugger/TestDebuggerAPI.py
index 42dcc24df95..add7eade3d4 100644
--- a/lldb/test/python_api/debugger/TestDebuggerAPI.py
+++ b/lldb/test/python_api/debugger/TestDebuggerAPI.py
@@ -4,7 +4,7 @@ Test Debugger APIs.
import os
import lldb
-from lldbtest import TestBase, python_api_test
+from lldbtest import *
class DebuggerAPITestCase(TestBase):
@@ -12,6 +12,7 @@ class DebuggerAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@python_api_test
+ @no_debug_info_test
def test_debugger_api_boundary_condition(self):
"""Exercise SBDebugger APIs with boundary conditions."""
self.dbg.HandleCommand(None)
diff --git a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
index 846e5feef1d..147ad8a1a1f 100644
--- a/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
+++ b/lldb/test/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
@@ -22,6 +22,7 @@ class APIDefaultConstructorTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@python_api_test
+ @no_debug_info_test
def test_SBAddress(self):
obj = lldb.SBAddress()
if self.TraceOn():
@@ -32,6 +33,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_address.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBBlock(self):
obj = lldb.SBBlock()
if self.TraceOn():
@@ -42,6 +44,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_block.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBBreakpoint(self):
obj = lldb.SBBreakpoint()
if self.TraceOn():
@@ -52,6 +55,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_breakpoint.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBBreakpointLocation(self):
obj = lldb.SBBreakpointLocation()
if self.TraceOn():
@@ -62,6 +66,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_breakpointlocation.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBBroadcaster(self):
obj = lldb.SBBroadcaster()
if self.TraceOn():
@@ -72,6 +77,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_broadcaster.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBCommandReturnObject(self):
"""SBCommandReturnObject object is valid after default construction."""
obj = lldb.SBCommandReturnObject()
@@ -80,6 +86,7 @@ class APIDefaultConstructorTestCase(TestBase):
self.assertTrue(obj)
@python_api_test
+ @no_debug_info_test
def test_SBCommunication(self):
obj = lldb.SBCommunication()
if self.TraceOn():
@@ -90,6 +97,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_communication.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBCompileUnit(self):
obj = lldb.SBCompileUnit()
if self.TraceOn():
@@ -100,6 +108,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_compileunit.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBDebugger(self):
obj = lldb.SBDebugger()
if self.TraceOn():
@@ -110,6 +119,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_debugger.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
# darwin: This test passes with swig 3.0.2, fails w/3.0.5 other tests fail with 2.0.12 http://llvm.org/pr23488
def test_SBError(self):
obj = lldb.SBError()
@@ -121,6 +131,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_error.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBEvent(self):
obj = lldb.SBEvent()
# This is just to test that typemap, as defined in lldb.swig, works.
@@ -145,6 +156,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_filespec.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBFrame(self):
obj = lldb.SBFrame()
if self.TraceOn():
@@ -155,6 +167,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_frame.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBFunction(self):
obj = lldb.SBFunction()
if self.TraceOn():
@@ -165,6 +178,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_function.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBInstruction(self):
obj = lldb.SBInstruction()
if self.TraceOn():
@@ -175,6 +189,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_instruction.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBInstructionList(self):
obj = lldb.SBInstructionList()
if self.TraceOn():
@@ -185,6 +200,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_instructionlist.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBLineEntry(self):
obj = lldb.SBLineEntry()
if self.TraceOn():
@@ -195,6 +211,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_lineentry.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBListener(self):
obj = lldb.SBListener()
if self.TraceOn():
@@ -205,6 +222,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_listener.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBModule(self):
obj = lldb.SBModule()
if self.TraceOn():
@@ -215,6 +233,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_module.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBProcess(self):
obj = lldb.SBProcess()
if self.TraceOn():
@@ -225,6 +244,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_process.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBSection(self):
obj = lldb.SBSection()
if self.TraceOn():
@@ -235,6 +255,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_section.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBStream(self):
"""SBStream object is valid after default construction."""
obj = lldb.SBStream()
@@ -243,6 +264,7 @@ class APIDefaultConstructorTestCase(TestBase):
self.assertTrue(obj)
@python_api_test
+ @no_debug_info_test
def test_SBStringList(self):
obj = lldb.SBStringList()
if self.TraceOn():
@@ -253,6 +275,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_stringlist.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBSymbol(self):
obj = lldb.SBSymbol()
if self.TraceOn():
@@ -263,6 +286,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_symbol.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBSymbolContext(self):
obj = lldb.SBSymbolContext()
if self.TraceOn():
@@ -273,6 +297,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_symbolcontext.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBSymbolContextList(self):
"""SBSymbolContextList object is valid after default construction."""
obj = lldb.SBSymbolContextList()
@@ -281,6 +306,7 @@ class APIDefaultConstructorTestCase(TestBase):
self.assertTrue(obj)
@python_api_test
+ @no_debug_info_test
def test_SBTarget(self):
obj = lldb.SBTarget()
if self.TraceOn():
@@ -291,6 +317,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_target.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBThread(self):
obj = lldb.SBThread()
if self.TraceOn():
@@ -301,6 +328,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_thread.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBType(self):
try:
obj = lldb.SBType()
@@ -319,6 +347,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_type.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBTypeList(self):
"""SBTypeList object is valid after default construction."""
obj = lldb.SBTypeList()
@@ -327,6 +356,7 @@ class APIDefaultConstructorTestCase(TestBase):
self.assertTrue(obj)
@python_api_test
+ @no_debug_info_test
def test_SBValue(self):
obj = lldb.SBValue()
if self.TraceOn():
@@ -337,6 +367,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_value.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBValueList(self):
obj = lldb.SBValueList()
if self.TraceOn():
@@ -347,6 +378,7 @@ class APIDefaultConstructorTestCase(TestBase):
sb_valuelist.fuzz_obj(obj)
@python_api_test
+ @no_debug_info_test
def test_SBWatchpoint(self):
obj = lldb.SBWatchpoint()
if self.TraceOn():
diff --git a/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py b/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py
index 4a9cd7a258d..51da105ea7a 100644
--- a/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py
+++ b/lldb/test/python_api/disassemble-raw-data/TestDisassembleRawData.py
@@ -13,14 +13,10 @@ class DisassembleRawDataTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@python_api_test
+ @no_debug_info_test
def test_disassemble_raw_data(self):
"""Test disassembling raw bytes with the API."""
- self.disassemble_raw_data()
-
- def disassemble_raw_data(self):
- """Test disassembling raw bytes with the API."""
# Create a target from the debugger.
-
target = self.dbg.CreateTargetWithFileAndTargetTriple ("", "x86_64")
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py b/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
index 3a7a0cb2954..4bd4367e096 100644
--- a/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
+++ b/lldb/test/python_api/disassemble-raw-data/TestDisassemble_VST1_64.py
@@ -14,14 +14,10 @@ class Disassemble_VST1_64(TestBase):
@skipIf(True) # llvm.org/pr24575: all tests get ERRORs in dotest.py after this
@python_api_test
+ @no_debug_info_test
def test_disassemble_invalid_vst_1_64_raw_data(self):
"""Test disassembling invalid vst1.64 raw bytes with the API."""
- self.disassemble_invalid_vst_1_64_raw_data()
-
- def disassemble_invalid_vst_1_64_raw_data(self):
- """Test disassembling invalid vst1.64 raw bytes with the API."""
# Create a target from the debugger.
-
target = self.dbg.CreateTargetWithFileAndTargetTriple ("", "thumbv7")
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/test/python_api/event/TestEvents.py b/lldb/test/python_api/event/TestEvents.py
index 46841a809b5..cc744081518 100644
--- a/lldb/test/python_api/event/TestEvents.py
+++ b/lldb/test/python_api/event/TestEvents.py
@@ -12,64 +12,18 @@ class EventAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_listen_for_and_print_event_with_dsym(self):
- """Exercise SBEvent API."""
- self.buildDsym()
- self.do_listen_for_and_print_event()
-
- @python_api_test
- @dwarf_test
- @expectedFailureLinux("llvm.org/pr23730") # Flaky, fails ~1/10 cases
- @skipIfLinux # skip to avoid crashes
- def test_listen_for_and_print_event_with_dwarf(self):
- """Exercise SBEvent API."""
- self.buildDwarf()
- self.do_listen_for_and_print_event()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_wait_for_event_with_dsym(self):
- """Exercise SBListener.WaitForEvent() API."""
- self.buildDsym()
- self.do_wait_for_event()
-
- @python_api_test
- @dwarf_test
- def test_wait_for_event_with_dwarf(self):
- """Exercise SBListener.WaitForEvent() API."""
- self.buildDwarf()
- self.do_wait_for_event()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_add_listener_to_broadcaster_with_dsym(self):
- """Exercise some SBBroadcaster APIs."""
- self.buildDsym()
- self.do_add_listener_to_broadcaster()
-
- @skipIfFreeBSD # llvm.org/pr21325
- @python_api_test
- @dwarf_test
- @expectedFlakeyLinux("llvm.org/pr23617") # Flaky, fails ~1/10 cases
- @expectedFailureWindows("llvm.org/pr24778")
- def test_add_listener_to_broadcaster_with_dwarf(self):
- """Exercise some SBBroadcaster APIs."""
- self.buildDwarf()
- self.do_add_listener_to_broadcaster()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to of function 'c'.
self.line = line_number('main.c', '// Find the line number of function "c" here.')
- def do_listen_for_and_print_event(self):
- """Create a listener and use SBEvent API to print the events received."""
+ @python_api_test
+ @expectedFailureLinux("llvm.org/pr23730") # Flaky, fails ~1/10 cases
+ @skipIfLinux # skip to avoid crashes
+ def test_listen_for_and_print_event(self):
+ """Exercise SBEvent API."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.dbg.SetAsync(True)
@@ -143,8 +97,10 @@ class EventAPITestCase(TestBase):
# Wait until the 'MyListeningThread' terminates.
my_thread.join()
- def do_wait_for_event(self):
- """Get the listener associated with the debugger and exercise WaitForEvent API."""
+ @python_api_test
+ def test_wait_for_event(self):
+ """Exercise SBListener.WaitForEvent() API."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.dbg.SetAsync(True)
@@ -212,8 +168,13 @@ class EventAPITestCase(TestBase):
self.assertTrue(event,
"My listening thread successfully received an event")
- def do_add_listener_to_broadcaster(self):
- """Get the broadcaster associated with the process and wait for broadcaster events."""
+ @skipIfFreeBSD # llvm.org/pr21325
+ @python_api_test
+ @expectedFlakeyLinux("llvm.org/pr23617") # Flaky, fails ~1/10 cases
+ @expectedFailureWindows("llvm.org/pr24778")
+ def test_add_listener_to_broadcaster(self):
+ """Exercise some SBBroadcaster APIs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.dbg.SetAsync(True)
@@ -320,7 +281,6 @@ class EventAPITestCase(TestBase):
self.assertTrue(self.state == 'stopped',
"Both expected state changed events received")
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py b/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py
index 41d782ea93a..a2a433f44ea 100644
--- a/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py
+++ b/lldb/test/python_api/findvalue_duplist/TestSBFrameFindValue.py
@@ -10,29 +10,12 @@ class SBFrameFindValueTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_with_dsym_formatters_api(self):
+ def test_formatters_api(self):
"""Test that SBFrame::FindValue finds things but does not duplicate the entire variables list"""
- self.buildDsym()
+ self.build()
self.setTearDownCleanup()
- self.commands()
- @python_api_test
- @dwarf_test
- def test_with_dwarf_formatters_api(self):
- """Test that SBFrame::FindValue finds things but does not duplicate the entire variables list"""
- self.buildDwarf()
- self.setTearDownCleanup()
- self.commands()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def commands(self):
- """Test that SBFrame::FindValue finds things but does not duplicate the entire variables list"""
exe_name = "a.out"
exe = os.path.join(os.getcwd(), exe_name)
diff --git a/lldb/test/python_api/formatters/TestFormattersSBAPI.py b/lldb/test/python_api/formatters/TestFormattersSBAPI.py
index 68a07a1ee36..804f504b3da 100644
--- a/lldb/test/python_api/formatters/TestFormattersSBAPI.py
+++ b/lldb/test/python_api/formatters/TestFormattersSBAPI.py
@@ -10,36 +10,17 @@ class SBFormattersAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_formatters_api(self):
- """Test Python APIs for working with formatters"""
- self.buildDsym()
- self.setTearDownCleanup()
- self.formatters()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_formatters_api(self):
- """Test Python APIs for working with formatters"""
- self.buildDwarf()
- self.setTearDownCleanup()
- self.formatters()
-
- @python_api_test
- def test_force_synth_off(self):
- """Test that one can have the public API return non-synthetic SBValues if desired"""
- self.buildDwarf(dictionary={'EXE':'no_synth'})
- self.setTearDownCleanup()
- self.force_synth_off()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
self.line = line_number('main.cpp', '// Set break point at this line.')
- def formatters(self):
+ @python_api_test
+ def test_formatters_api(self):
+ """Test Python APIs for working with formatters"""
+ self.build()
+ self.setTearDownCleanup()
+
"""Test Python APIs for working with formatters"""
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
@@ -307,8 +288,12 @@ class SBFormattersAPITestCase(TestBase):
self.expect("frame variable e2", substrs=["I am an empty Empty2"])
self.expect("frame variable e2", substrs=["I am an empty Empty2 {}"], matching=False)
- def force_synth_off(self):
+ @python_api_test
+ def test_force_synth_off(self):
"""Test that one can have the public API return non-synthetic SBValues if desired"""
+ self.build(dictionary={'EXE':'no_synth'})
+ self.setTearDownCleanup()
+
self.runCmd("file no_synth", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/python_api/frame/TestFrames.py b/lldb/test/python_api/frame/TestFrames.py
index bcde045a5a2..651921128c9 100644
--- a/lldb/test/python_api/frame/TestFrames.py
+++ b/lldb/test/python_api/frame/TestFrames.py
@@ -13,36 +13,11 @@ class FrameAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_get_arg_vals_for_call_stack_with_dsym(self):
- """Exercise SBFrame.GetVariables() API to get argument vals."""
- self.buildDsym()
- self.do_get_arg_vals()
-
- @python_api_test
- @dwarf_test
@expectedFailureWindows("llvm.org/pr24778")
- def test_get_arg_vals_for_call_stack_with_dwarf(self):
+ def test_get_arg_vals_for_call_stack(self):
"""Exercise SBFrame.GetVariables() API to get argument vals."""
- self.buildDwarf()
- self.do_get_arg_vals()
-
- @python_api_test
- def test_frame_api_boundary_condition(self):
- """Exercise SBFrame APIs with boundary condition inputs."""
- self.buildDefault()
- self.frame_api_boundary_condition()
-
- @python_api_test
- def test_frame_api_IsEqual(self):
- """Exercise SBFrame API IsEqual."""
- self.buildDefault()
- self.frame_api_IsEqual()
-
- def do_get_arg_vals(self):
- """Get argument vals for the call stack when stopped on a breakpoint."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
@@ -128,7 +103,10 @@ class FrameAPITestCase(TestBase):
substrs = ["a((int)val=1, (char)ch='A')",
"a((int)val=3, (char)ch='A')"])
- def frame_api_boundary_condition(self):
+ @python_api_test
+ def test_frame_api_boundary_condition(self):
+ """Exercise SBFrame APIs with boundary condition inputs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
@@ -164,8 +142,10 @@ class FrameAPITestCase(TestBase):
frame.EvaluateExpression(None)
- def frame_api_IsEqual(self):
+ @python_api_test
+ def test_frame_api_IsEqual(self):
"""Exercise SBFrame API IsEqual."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/frame/inlines/TestInlinedFrame.py b/lldb/test/python_api/frame/inlines/TestInlinedFrame.py
index 217b87e8926..98bd8e60109 100644
--- a/lldb/test/python_api/frame/inlines/TestInlinedFrame.py
+++ b/lldb/test/python_api/frame/inlines/TestInlinedFrame.py
@@ -12,23 +12,7 @@ class InlinedFrameAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_stop_at_outer_inline_with_dsym(self):
- """Exercise SBFrame.IsInlined() and SBFrame.GetFunctionName()."""
- self.buildDsym()
- self.do_stop_at_outer_inline()
-
- @python_api_test
- @dwarf_test
- def test_stop_at_outer_inline_with_dwarf(self):
- """Exercise SBFrame.IsInlined() and SBFrame.GetFunctionName()."""
- self.buildDwarf()
- self.do_stop_at_outer_inline()
-
def setUp(self):
-
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to of function 'c'.
@@ -36,8 +20,10 @@ class InlinedFrameAPITestCase(TestBase):
self.first_stop = line_number(self.source, '// This should correspond to the first break stop.')
self.second_stop = line_number(self.source, '// This should correspond to the second break stop.')
- def do_stop_at_outer_inline(self):
+ @python_api_test
+ def test_stop_at_outer_inline(self):
"""Exercise SBFrame.IsInlined() and SBFrame.GetFunctionName()."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/function_symbol/TestDisasmAPI.py b/lldb/test/python_api/function_symbol/TestDisasmAPI.py
index d7270ba72d5..c8e079fd299 100644
--- a/lldb/test/python_api/function_symbol/TestDisasmAPI.py
+++ b/lldb/test/python_api/function_symbol/TestDisasmAPI.py
@@ -12,21 +12,6 @@ class DisasmAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Exercise getting SBAddress objects, disassembly, and SBAddress APIs."""
- self.buildDsym()
- self.disasm_and_address_api()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf(self):
- """Exercise getting SBAddress objects, disassembly, and SBAddress APIs."""
- self.buildDwarf()
- self.disasm_and_address_api()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -34,8 +19,10 @@ class DisasmAPITestCase(TestBase):
self.line1 = line_number('main.c', '// Find the line number for breakpoint 1 here.')
self.line2 = line_number('main.c', '// Find the line number for breakpoint 2 here.')
- def disasm_and_address_api(self):
+ @python_api_test
+ def test(self):
"""Exercise getting SBAddress objects, disassembly, and SBAddress APIs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
@@ -119,7 +106,6 @@ class DisasmAPITestCase(TestBase):
self.assertTrue(desc1 and desc2 and desc1 == desc2,
"SBAddress.GetDescription() API of sa1 and sa2 should return the same string")
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/python_api/function_symbol/TestSymbolAPI.py b/lldb/test/python_api/function_symbol/TestSymbolAPI.py
index 6a59ee361fb..b363c1aaaed 100644
--- a/lldb/test/python_api/function_symbol/TestSymbolAPI.py
+++ b/lldb/test/python_api/function_symbol/TestSymbolAPI.py
@@ -12,22 +12,6 @@ class SymbolAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Exercise some SBSymbol and SBAddress APIs."""
- self.buildDsym()
- self.symbol_and_address_api()
-
- @python_api_test
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24778")
- def test_with_dwarf(self):
- """Exercise some SBSymbol and SBAddress APIs."""
- self.buildDwarf()
- self.symbol_and_address_api()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -35,8 +19,11 @@ class SymbolAPITestCase(TestBase):
self.line1 = line_number('main.c', '// Find the line number for breakpoint 1 here.')
self.line2 = line_number('main.c', '// Find the line number for breakpoint 2 here.')
- def symbol_and_address_api(self):
+ @python_api_test
+ @expectedFailureWindows("llvm.org/pr24778")
+ def test(self):
"""Exercise some SBSymbol and SBAddress APIs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/hello_world/TestHelloWorld.py b/lldb/test/python_api/hello_world/TestHelloWorld.py
index e9cd7783a65..8e586c8dcdf 100644
--- a/lldb/test/python_api/hello_world/TestHelloWorld.py
+++ b/lldb/test/python_api/hello_world/TestHelloWorld.py
@@ -9,82 +9,7 @@ from lldbtest import *
class HelloWorldTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_process_launch_api(self):
- """Create target, breakpoint, launch a process, and then kill it.
-
- Use dsym info and process launch API.
- """
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_world_python()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_process_launch_api(self):
- """Create target, breakpoint, launch a process, and then kill it.
-
- Use dwarf debug map and process launch API.
- """
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_world_python()
-
- @not_remote_testsuite_ready
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_attach_to_process_with_id_api(self):
- """Create target, spawn a process, and attach to it with process id.
-
- Use dsym info and attach to process with id API.
- """
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_world_attach_with_id_api()
-
- @python_api_test
- @dwarf_test
- @expectedFailurei386 # llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly
- @expectedFailureWindows("llvm.org/pr24600")
- def test_with_dwarf_and_attach_to_process_with_id_api(self):
- """Create target, spawn a process, and attach to it with process id.
-
- Use dwarf map (no dsym) and attach to process with id API.
- """
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_world_attach_with_id_api()
-
- @not_remote_testsuite_ready
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_attach_to_process_with_name_api(self):
- """Create target, spawn a process, and attach to it with process name.
-
- Use dsym info and attach to process with name API.
- """
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_world_attach_with_name_api()
-
- @python_api_test
- @dwarf_test
- @expectedFailurei386 # llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly
- @expectedFailureWindows("llvm.org/pr24600")
- def test_with_dwarf_and_attach_to_process_with_name_api(self):
- """Create target, spawn a process, and attach to it with process name.
-
- Use dwarf map (no dsym) and attach to process with name API.
- """
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.hello_world_attach_with_name_api()
-
+
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -101,9 +26,11 @@ class HelloWorldTestCase(TestBase):
# Call super's tearDown().
TestBase.tearDown(self)
- def hello_world_python(self):
+ @python_api_test
+ def test_with_process_launch_api(self):
"""Create target, breakpoint, launch a process, and then kill it."""
-
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
target = self.dbg.CreateTarget(self.exe)
breakpoint = target.BreakpointCreateByLocation("main.c", self.line1)
@@ -142,9 +69,13 @@ class HelloWorldTestCase(TestBase):
# The breakpoint should have a hit count of 1.
self.assertTrue(breakpoint.GetHitCount() == 1, BREAKPOINT_HIT_ONCE)
- def hello_world_attach_with_id_api(self):
- """Create target, spawn a process, and attach to it by id."""
-
+ @python_api_test
+ @expectedFailurei386 # llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly
+ @expectedFailureWindows("llvm.org/pr24600")
+ def test_with_attach_to_process_with_id_api(self):
+ """Create target, spawn a process, and attach to it with process id."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
target = self.dbg.CreateTarget(self.exe)
# Spawn a new process
@@ -167,9 +98,13 @@ class HelloWorldTestCase(TestBase):
substrs = ['main.c:%d' % self.line2,
'(int)argc=3'])
- def hello_world_attach_with_name_api(self):
- """Create target, spawn a process, and attach to it by name."""
-
+ @python_api_test
+ @expectedFailurei386 # llvm.org/pr17384: lldb needs to be aware of linux-vdso.so to unwind stacks properly
+ @expectedFailureWindows("llvm.org/pr24600")
+ def test_with_attach_to_process_with_name_api(self):
+ """Create target, spawn a process, and attach to it with process name."""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
target = self.dbg.CreateTarget(self.exe)
# Spawn a new process
@@ -205,7 +140,6 @@ class HelloWorldTestCase(TestBase):
substrs = ['main.c:%d' % self.line2,
'(int)argc=3'])
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py b/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py
index c57535c77c0..b617a617e87 100644
--- a/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py
+++ b/lldb/test/python_api/interpreter/TestCommandInterpreterAPI.py
@@ -9,29 +9,16 @@ class CommandInterpreterAPICase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_process_launch_api(self):
- """Test the SBCommandInterpreter APIs."""
- self.buildDsym()
- self.command_interpreter_api()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_process_launch_api(self):
- """Test the SBCommandInterpreter APIs."""
- self.buildDwarf()
- self.command_interpreter_api()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break on inside main.cpp.
self.line = line_number('main.c', 'Hello world.')
- def command_interpreter_api(self):
+ @python_api_test
+ def test_with_process_launch_api(self):
"""Test the SBCommandInterpreter APIs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py b/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py
index 22db4a4be36..4b0c460ad69 100644
--- a/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py
+++ b/lldb/test/python_api/lldbutil/frame/TestFrameUtils.py
@@ -21,10 +21,7 @@ class FrameUtilsTestCase(TestBase):
@python_api_test
def test_frame_utils(self):
"""Test utility functions for the frame object."""
- self.buildDefault()
- self.frame_utils()
-
- def frame_utils(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py b/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py
index 4d32d6d997d..124f7031597 100644
--- a/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py
+++ b/lldb/test/python_api/lldbutil/iter/TestLLDBIterator.py
@@ -22,22 +22,7 @@ class LLDBIteratorTestCase(TestBase):
@python_api_test
def test_lldb_iter_module(self):
"""Test module_iter works correctly for SBTarget -> SBModule."""
- self.buildDefault()
- self.lldb_iter_module()
-
- @python_api_test
- def test_lldb_iter_breakpoint(self):
- """Test breakpoint_iter works correctly for SBTarget -> SBBreakpoint."""
- self.buildDefault()
- self.lldb_iter_breakpoint()
-
- @python_api_test
- def test_lldb_iter_frame(self):
- """Test iterator works correctly for SBProcess->SBThread->SBFrame."""
- self.buildDefault()
- self.lldb_iter_frame()
-
- def lldb_iter_module(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -68,7 +53,10 @@ class LLDBIteratorTestCase(TestBase):
self.assertTrue(yours[i] == mine[i],
"UUID+FileSpec of yours[{0}] and mine[{0}] matches".format(i))
- def lldb_iter_breakpoint(self):
+ @python_api_test
+ def test_lldb_iter_breakpoint(self):
+ """Test breakpoint_iter works correctly for SBTarget -> SBBreakpoint."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -97,7 +85,10 @@ class LLDBIteratorTestCase(TestBase):
self.assertTrue(yours[i] == mine[i],
"ID of yours[{0}] and mine[{0}] matches".format(i))
- def lldb_iter_frame(self):
+ @python_api_test
+ def test_lldb_iter_frame(self):
+ """Test iterator works correctly for SBProcess->SBThread->SBFrame."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py b/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py
index 4dc5dbe7aa6..32d660e5950 100644
--- a/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py
+++ b/lldb/test/python_api/lldbutil/iter/TestRegistersIterator.py
@@ -22,10 +22,7 @@ class RegistersIteratorTestCase(TestBase):
@expectedFailureWindows # Test crashes
def test_iter_registers(self):
"""Test iterator works correctly for lldbutil.iter_registers()."""
- self.buildDefault()
- self.iter_registers()
-
- def iter_registers(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py b/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py
index cd13d688e19..09945f5cbe5 100644
--- a/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py
+++ b/lldb/test/python_api/lldbutil/process/TestPrintStackTraces.py
@@ -23,12 +23,7 @@ class ThreadsStackTracesTestCase(TestBase):
@python_api_test
def test_stack_traces(self):
"""Test SBprocess and SBThread APIs with printing of the stack traces."""
- self.buildDefault()
- self.break_and_print_stacktraces()
-
- def break_and_print_stacktraces(self):
- """Break at main.cpp:68 and do a threads dump"""
-
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/module_section/TestModuleAndSection.py b/lldb/test/python_api/module_section/TestModuleAndSection.py
index 44a242da737..78e4b229bf9 100644
--- a/lldb/test/python_api/module_section/TestModuleAndSection.py
+++ b/lldb/test/python_api/module_section/TestModuleAndSection.py
@@ -16,22 +16,7 @@ class ModuleAndSectionAPIsTestCase(TestBase):
@python_api_test
def test_module_and_section(self):
"""Test module and section APIs."""
- self.buildDefault()
- self.module_and_section()
-
- @python_api_test
- def test_module_and_section_boundary_condition(self):
- """Test module and section APIs by passing None when it expects a Python string."""
- self.buildDefault()
- self.module_and_section_boundary_condition()
-
- @python_api_test
- def test_module_compile_unit_iter(self):
- """Test module's compile unit iterator APIs."""
- self.buildDefault()
- self.module_compile_unit_iter()
-
- def module_and_section(self):
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -68,7 +53,10 @@ class ModuleAndSectionAPIsTestCase(TestBase):
print INDENT2 + str(sym)
print INDENT2 + "symbol type: %s" % symbol_type_to_str(sym.GetType())
- def module_and_section_boundary_condition(self):
+ @python_api_test
+ def test_module_and_section_boundary_condition(self):
+ """Test module and section APIs by passing None when it expects a Python string."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -106,7 +94,10 @@ class ModuleAndSectionAPIsTestCase(TestBase):
if sec1:
sec1.FindSubSection(None)
- def module_compile_unit_iter(self):
+ @python_api_test
+ def test_module_compile_unit_iter(self):
+ """Test module's compile unit iterator APIs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -131,7 +122,6 @@ class ModuleAndSectionAPIsTestCase(TestBase):
for cu in exe_module.compile_unit_iter():
print cu
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/python_api/objc_type/TestObjCType.py b/lldb/test/python_api/objc_type/TestObjCType.py
index ba3687a6508..9b8e915dd44 100644
--- a/lldb/test/python_api/objc_type/TestObjCType.py
+++ b/lldb/test/python_api/objc_type/TestObjCType.py
@@ -12,29 +12,16 @@ class ObjCSBTypeTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Test SBType for ObjC classes."""
- self.buildDsym()
- self.objc_sbtype_test()
-
- @skipUnlessDarwin
- @python_api_test
- @dwarf_test
- def test_with_dwarf(self):
- """Test SBType for ObjC classes."""
- self.buildDwarf()
- self.objc_sbtype_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
self.line = line_number("main.m", '// Break at this line')
- def objc_sbtype_test(self):
- """Exercise SBType and SBTypeList API."""
+ @skipUnlessDarwin
+ @python_api_test
+ def test(self):
+ """Test SBType for ObjC classes."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/process/TestProcessAPI.py b/lldb/test/python_api/process/TestProcessAPI.py
index 6bc255abfa6..0aaeca6299e 100644
--- a/lldb/test/python_api/process/TestProcessAPI.py
+++ b/lldb/test/python_api/process/TestProcessAPI.py
@@ -12,71 +12,16 @@ class ProcessAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_read_memory_with_dsym(self):
- """Test Python SBProcess.ReadMemory() API."""
- self.buildDsym()
- self.read_memory()
-
- @python_api_test
- @dwarf_test
- def test_read_memory_with_dwarf(self):
- """Test Python SBProcess.ReadMemory() API."""
- self.buildDwarf()
- self.read_memory()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_write_memory_with_dsym(self):
- """Test Python SBProcess.WriteMemory() API."""
- self.buildDsym()
- self.write_memory()
-
- @python_api_test
- @dwarf_test
- def test_write_memory_with_dwarf(self):
- """Test Python SBProcess.WriteMemory() API."""
- self.buildDwarf()
- self.write_memory()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_access_my_int_with_dsym(self):
- """Test access 'my_int' using Python SBProcess.GetByteOrder() and other APIs."""
- self.buildDsym()
- self.access_my_int()
-
- @python_api_test
- @dwarf_test
- def test_access_my_int_with_dwarf(self):
- """Test access 'my_int' using Python SBProcess.GetByteOrder() and other APIs."""
- self.buildDwarf()
- self.access_my_int()
-
- @python_api_test
- def test_remote_launch(self):
- """Test SBProcess.RemoteLaunch() API with a process not in eStateConnected, and it should fail."""
- self.buildDefault()
- self.remote_launch_should_fail()
-
- @python_api_test
- def test_get_num_supported_hardware_watchpoints(self):
- """Test SBProcess.GetNumSupportedHardwareWatchpoints() API with a process."""
- self.buildDefault()
- self.get_num_supported_hardware_watchpoints()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break inside main().
self.line = line_number("main.cpp", "// Set break point at this line and check variable 'my_char'.")
- def read_memory(self):
+ @python_api_test
+ def test_read_memory(self):
"""Test Python SBProcess.ReadMemory() API."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -156,8 +101,10 @@ class ProcessAPITestCase(TestBase):
if my_uint32 != 12345:
self.fail("Result from SBProcess.ReadUnsignedFromMemory() does not match our expected output")
- def write_memory(self):
+ @python_api_test
+ def test_write_memory(self):
"""Test Python SBProcess.WriteMemory() API."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -206,8 +153,10 @@ class ProcessAPITestCase(TestBase):
exe=False,
startstr = 'a')
- def access_my_int(self):
+ @python_api_test
+ def test_access_my_int(self):
"""Test access 'my_int' using Python SBProcess.GetByteOrder() and other APIs."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -294,8 +243,10 @@ class ProcessAPITestCase(TestBase):
for i in new_bytes:
print "byte:", i
- def remote_launch_should_fail(self):
+ @python_api_test
+ def test_remote_launch(self):
"""Test SBProcess.RemoteLaunch() API with a process not in eStateConnected, and it should fail."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
target = self.dbg.CreateTarget(exe)
@@ -312,8 +263,10 @@ class ProcessAPITestCase(TestBase):
success = process.RemoteLaunch(None, None, None, None, None, None, 0, False, error)
self.assertTrue(not success, "RemoteLaunch() should fail for process state != eStateConnected")
- def get_num_supported_hardware_watchpoints(self):
+ @python_api_test
+ def test_get_num_supported_hardware_watchpoints(self):
"""Test SBProcess.GetNumSupportedHardwareWatchpoints() API with a process."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/python_api/process/io/TestProcessIO.py b/lldb/test/python_api/process/io/TestProcessIO.py
index 66ac0bdb0d8..9bd3b82a4f5 100644
--- a/lldb/test/python_api/process/io/TestProcessIO.py
+++ b/lldb/test/python_api/process/io/TestProcessIO.py
@@ -10,99 +10,77 @@ class ProcessIOTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_stdin_by_api_with_dsym(self):
- """Exercise SBProcess.PutSTDIN()."""
- self.buildDsym()
- self.do_stdin_by_api()
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Get the full path to our executable to be debugged.
+ self.exe = os.path.join(os.getcwd(), "process_io")
+ self.local_input_file = os.path.join(os.getcwd(), "input.txt")
+ self.local_output_file = os.path.join(os.getcwd(), "output.txt")
+ self.local_error_file = os.path.join(os.getcwd(), "error.txt")
+
+ self.input_file = os.path.join(self.get_process_working_directory(), "input.txt")
+ self.output_file = os.path.join(self.get_process_working_directory(), "output.txt")
+ self.error_file = os.path.join(self.get_process_working_directory(), "error.txt")
+ self.lines = ["Line 1", "Line 2", "Line 3"]
@skipIfWindows # stdio manipulation unsupported on Windows
@python_api_test
- @dwarf_test
- def test_stdin_by_api_with_dwarf(self):
+ def test_stdin_by_api(self):
"""Exercise SBProcess.PutSTDIN()."""
- self.buildDwarf()
- self.do_stdin_by_api()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_stdin_redirection_with_dsym(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDIN without specifying STDOUT or STDERR."""
- self.buildDsym()
- self.do_stdin_redirection()
+ self.build()
+ self.create_target()
+ self.run_process(True)
+ output = self.process.GetSTDOUT(1000)
+ self.check_process_output(output, output)
@skipIfWindows # stdio manipulation unsupported on Windows
@python_api_test
- @dwarf_test
- def test_stdin_redirection_with_dwarf(self):
+ def test_stdin_redirection(self):
"""Exercise SBLaunchInfo::AddOpenFileAction() for STDIN without specifying STDOUT or STDERR."""
- self.buildDwarf()
- self.do_stdin_redirection()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_stdout_redirection_with_dsym(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT without specifying STDIN or STDERR."""
- self.buildDsym()
- self.do_stdout_redirection()
+ self.build()
+ self.create_target()
+ self.redirect_stdin()
+ self.run_process(False)
+ output = self.process.GetSTDOUT(1000)
+ self.check_process_output(output, output)
@skipIfWindows # stdio manipulation unsupported on Windows
@python_api_test
- @dwarf_test
- def test_stdout_redirection_with_dwarf(self):
+ def test_stdout_redirection(self):
"""Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT without specifying STDIN or STDERR."""
- self.buildDwarf()
- self.do_stdout_redirection()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_stderr_redirection_with_dsym(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDERR without specifying STDIN or STDOUT."""
- self.buildDsym()
- self.do_stderr_redirection()
+ self.build()
+ self.create_target()
+ self.redirect_stdout()
+ self.run_process(True)
+ output = self.read_output_file_and_delete()
+ error = self.process.GetSTDOUT(1000)
+ self.check_process_output(output, error)
@skipIfWindows # stdio manipulation unsupported on Windows
@python_api_test
- @dwarf_test
- def test_stderr_redirection_with_dwarf(self):
+ def test_stderr_redirection(self):
"""Exercise SBLaunchInfo::AddOpenFileAction() for STDERR without specifying STDIN or STDOUT."""
- self.buildDwarf()
- self.do_stderr_redirection()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_stdout_stderr_redirection_with_dsym(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT and STDERR without redirecting STDIN."""
- self.buildDsym()
- self.do_stdout_stderr_redirection()
+ self.build()
+ self.create_target()
+ self.redirect_stderr()
+ self.run_process(True)
+ output = self.process.GetSTDOUT(1000)
+ error = self.read_error_file_and_delete()
+ self.check_process_output(output, error)
@skipIfWindows # stdio manipulation unsupported on Windows
@python_api_test
- @dwarf_test
- def test_stdout_stderr_redirection_with_dwarf(self):
+ def test_stdout_stderr_redirection(self):
"""Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT and STDERR without redirecting STDIN."""
- self.buildDwarf()
- self.do_stdout_stderr_redirection()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Get the full path to our executable to be debugged.
- self.exe = os.path.join(os.getcwd(), "process_io")
- self.local_input_file = os.path.join(os.getcwd(), "input.txt")
- self.local_output_file = os.path.join(os.getcwd(), "output.txt")
- self.local_error_file = os.path.join(os.getcwd(), "error.txt")
-
- self.input_file = os.path.join(self.get_process_working_directory(), "input.txt")
- self.output_file = os.path.join(self.get_process_working_directory(), "output.txt")
- self.error_file = os.path.join(self.get_process_working_directory(), "error.txt")
- self.lines = ["Line 1", "Line 2", "Line 3"]
+ self.build()
+ self.create_target()
+ self.redirect_stdout()
+ self.redirect_stderr()
+ self.run_process(True)
+ output = self.read_output_file_and_delete()
+ error = self.read_error_file_and_delete()
+ self.check_process_output(output, error)
# target_file - path on local file system or remote file system if running remote
# local_file - path on local system
@@ -168,61 +146,6 @@ class ProcessIOTestCase(TestBase):
def redirect_stderr(self):
'''Redirect STDERR (file descriptor 2) to use our error.txt file'''
self.launch_info.AddOpenFileAction(2, self.error_file, False, True);
-
- def do_stdin_redirection(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDIN without specifying STDOUT or STDERR."""
- self.create_target()
- self.redirect_stdin()
- self.run_process(False)
- output = self.process.GetSTDOUT(1000)
- self.check_process_output(output, output)
-
- def do_stdout_redirection(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT without specifying STDIN or STDERR."""
- self.create_target()
- self.redirect_stdout()
- self.run_process(True)
- output = self.read_output_file_and_delete()
- error = self.process.GetSTDOUT(1000)
- self.check_process_output(output, error)
-
- def do_stderr_redirection(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDERR without specifying STDIN or STDOUT."""
- self.create_target()
- self.redirect_stderr()
- self.run_process(True)
- output = self.process.GetSTDOUT(1000)
- error = self.read_error_file_and_delete()
- self.check_process_output(output, error)
-
- def do_stdout_stderr_redirection(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDOUT and STDERR without redirecting STDIN."""
- self.create_target()
- self.redirect_stdout()
- self.redirect_stderr()
- self.run_process(True)
- output = self.read_output_file_and_delete()
- error = self.read_error_file_and_delete()
- self.check_process_output(output, error)
-
- def do_stdin_stdout_stderr_redirection(self):
- """Exercise SBLaunchInfo::AddOpenFileAction() for STDIN, STDOUT and STDERR."""
- # Make the input.txt file to use
- self.create_target()
- self.redirect_stdin()
- self.redirect_stdout()
- self.redirect_stderr()
- self.run_process(True)
- output = self.read_output_file_and_delete()
- error = self.read_error_file_and_delete()
- self.check_process_output(output, error)
-
- def do_stdin_by_api(self):
- """Launch a process and use SBProcess.PutSTDIN() to write data to it."""
- self.create_target()
- self.run_process(True)
- output = self.process.GetSTDOUT(1000)
- self.check_process_output(output, output)
def run_process(self, put_stdin):
'''Run the process to completion and optionally put lines to STDIN via the API if "put_stdin" is True'''
diff --git a/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py b/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py
index 49057851c96..7f9fb1ca27c 100644
--- a/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py
+++ b/lldb/test/python_api/rdar-12481949/Test-rdar-12481949.py
@@ -13,27 +13,15 @@ class Radar12481949DataFormatterTestCase(TestBase):
# test for rdar://problem/12481949
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Check that SBValue.GetValueAsSigned() does the right thing for a 32-bit -1."""
- self.buildDsym()
- self.rdar12481949_commands()
-
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Check that SBValue.GetValueAsSigned() does the right thing for a 32-bit -1."""
- self.buildDwarf()
- self.rdar12481949_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- def rdar12481949_commands(self):
+ def test_with_run_command(self):
"""Check that SBValue.GetValueAsSigned() does the right thing for a 32-bit -1."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
diff --git a/lldb/test/python_api/sbdata/TestSBData.py b/lldb/test/python_api/sbdata/TestSBData.py
index cb4c6ae7aa9..f3fd65b1884 100644
--- a/lldb/test/python_api/sbdata/TestSBData.py
+++ b/lldb/test/python_api/sbdata/TestSBData.py
@@ -11,42 +11,16 @@ class SBDataAPICase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_run_command(self):
- """Test the SBData APIs."""
- self.buildDsym()
- self.data_api()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_run_command(self):
- """Test the SBData APIs."""
- self.buildDwarf()
- self.data_api()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break on inside main.cpp.
self.line = line_number('main.cpp', '// set breakpoint here')
- def assert_data(self, func, arg, expected):
- """ Asserts func(SBError error, arg) == expected. """
- error = lldb.SBError()
- result = func(error, arg)
- if not error.Success():
- stream = lldb.SBStream()
- error.GetDescription(stream)
- self.assertTrue(error.Success(),
- "%s(error, %s) did not succeed: %s" % (func.__name__,
- arg,
- stream.GetData()))
- self.assertTrue(expected == result, "%s(error, %s) == %s != %s" % (func.__name__, arg, result, expected))
-
- def data_api(self):
+ @python_api_test
+ def test_with_run_command(self):
"""Test the SBData APIs."""
+ self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=1, loc_exact=True)
@@ -357,6 +331,19 @@ class SBDataAPICase(TestBase):
self.assertTrue( fabs(data2.double[1] - 6.28) < 0.5, 'read_data_helper failure: set double data2[1] = 6.28')
self.assertTrue( fabs(data2.double[2] - 2.71) < 0.5, 'read_data_helper failure: set double data2[2] = 2.71')
+ def assert_data(self, func, arg, expected):
+ """ Asserts func(SBError error, arg) == expected. """
+ error = lldb.SBError()
+ result = func(error, arg)
+ if not error.Success():
+ stream = lldb.SBStream()
+ error.GetDescription(stream)
+ self.assertTrue(error.Success(),
+ "%s(error, %s) did not succeed: %s" % (func.__name__,
+ arg,
+ stream.GetData()))
+ self.assertTrue(expected == result, "%s(error, %s) == %s != %s" % (func.__name__, arg, result, expected))
+
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py b/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py
index 165129fe1ce..a5881db1877 100644
--- a/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py
+++ b/lldb/test/python_api/sbvalue_persist/TestSBValuePersist.py
@@ -10,30 +10,12 @@ class SBValuePersistTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Test SBValue::Persist"""
- self.buildDsym()
- self.setTearDownCleanup()
- self.doTest()
-
@python_api_test
@expectedFailureWindows("llvm.org/pr24772")
- @dwarf_test
- def test_with_dwarf(self):
+ def test(self):
"""Test SBValue::Persist"""
- self.buildDwarf()
+ self.build()
self.setTearDownCleanup()
- self.doTest()
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
-
- def doTest(self):
- """Test SBValue::Persist"""
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_source_regexp (self, "break here")
diff --git a/lldb/test/python_api/section/TestSectionAPI.py b/lldb/test/python_api/section/TestSectionAPI.py
index 6c7b4f53ea7..10870a89f0a 100755
--- a/lldb/test/python_api/section/TestSectionAPI.py
+++ b/lldb/test/python_api/section/TestSectionAPI.py
@@ -9,40 +9,16 @@ class SectionAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_get_target_byte_size_with_dsym(self):
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- target = self.create_simple_target('a.out')
-
- # find the .data section of the main module
- data_section = self.find_data_section(target)
-
- self.assertEquals(data_section.target_byte_size, 1)
-
- @python_api_test
- @dwarf_test
- def test_get_target_byte_size_with_dwarf(self):
+ def test_get_target_byte_size(self):
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- target = self.create_simple_target('b.out')
-
- # find the .data section of the main module
- data_section = self.find_data_section(target)
-
- self.assertEquals(data_section.target_byte_size, 1)
-
- def create_simple_target(self, fn):
- exe = os.path.join(os.getcwd(), fn)
+ exe = os.path.join(os.getcwd(), 'b.out')
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
- return target
- def find_data_section(self, target):
+ # find the .data section of the main module
mod = target.GetModuleAtIndex(0)
data_section = None
for s in mod.sections:
@@ -59,9 +35,8 @@ class SectionAPITestCase(TestBase):
break
self.assertIsNotNone(data_section)
- return data_section
+ self.assertEquals(data_section.target_byte_size, 1)
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/python_api/signals/TestSignalsAPI.py b/lldb/test/python_api/signals/TestSignalsAPI.py
index 7474f431344..f8c3db8e79b 100644
--- a/lldb/test/python_api/signals/TestSignalsAPI.py
+++ b/lldb/test/python_api/signals/TestSignalsAPI.py
@@ -16,7 +16,7 @@ class SignalsAPITestCase(TestBase):
@skipIfWindows # Windows doesn't have signals
def test_ignore_signal(self):
"""Test Python SBUnixSignals.Suppress/Stop/Notify() API."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/python_api/symbol-context/TestSymbolContext.py b/lldb/test/python_api/symbol-context/TestSymbolContext.py
index 5cf3e686733..a92315e71c3 100644
--- a/lldb/test/python_api/symbol-context/TestSymbolContext.py
+++ b/lldb/test/python_api/symbol-context/TestSymbolContext.py
@@ -12,30 +12,17 @@ class SymbolContextAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Exercise SBSymbolContext API extensively."""
- self.buildDsym()
- self.symbol_context()
-
- @python_api_test
- @dwarf_test
- @expectedFailureWindows("llvm.org/pr24778")
- def test_with_dwarf(self):
- """Exercise SBSymbolContext API extensively."""
- self.buildDwarf()
- self.symbol_context()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to of function 'c'.
self.line = line_number('main.c', '// Find the line number of function "c" here.')
- def symbol_context(self):
- """Get an SBSymbolContext object and call its many methods."""
+ @python_api_test
+ @expectedFailureWindows("llvm.org/pr24778")
+ def test(self):
+ """Exercise SBSymbolContext API extensively."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/target/TestTargetAPI.py b/lldb/test/python_api/target/TestTargetAPI.py
index 8163440cc4a..a9f3590123a 100644
--- a/lldb/test/python_api/target/TestTargetAPI.py
+++ b/lldb/test/python_api/target/TestTargetAPI.py
@@ -12,15 +12,13 @@ class TargetAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_find_global_variables_with_dsym(self):
- """Exercise SBTaget.FindGlobalVariables() API."""
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.find_global_variables('a.out')
+ def setUp(self):
+ # Call super's setUp().
+ TestBase.setUp(self)
+ # Find the line number to of function 'c'.
+ self.line1 = line_number('main.c', '// Find the line number for breakpoint 1 here.')
+ self.line2 = line_number('main.c', '// Find the line number for breakpoint 2 here.')
+ self.line_main = line_number("main.c", "// Set a break at entry to main.")
#rdar://problem/9700873
# Find global variable value fails for dwarf if inferior not started
@@ -30,185 +28,95 @@ class TargetAPITestCase(TestBase):
# the inferior process does not exist yet. The radar has been updated.
#@unittest232.skip("segmentation fault -- skipping")
@python_api_test
- @dwarf_test
- def test_find_global_variables_with_dwarf(self):
+ def test_find_global_variables(self):
"""Exercise SBTarget.FindGlobalVariables() API."""
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.find_global_variables('b.out')
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_find_functions_with_dsym(self):
- """Exercise SBTaget.FindFunctions() API."""
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.find_functions('a.out')
-
- @python_api_test
- @dwarf_test
@expectedFailureWindows("llvm.org/pr24778")
- def test_find_functions_with_dwarf(self):
+ def test_find_functions(self):
"""Exercise SBTarget.FindFunctions() API."""
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.find_functions('b.out')
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_get_description_with_dsym(self):
- """Exercise SBTaget.GetDescription() API."""
- self.buildDsym()
- self.get_description()
-
@python_api_test
- @dwarf_test
- def test_get_description_with_dwarf(self):
+ def test_get_description(self):
"""Exercise SBTarget.GetDescription() API."""
- self.buildDwarf()
+ self.build()
self.get_description()
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_launch_new_process_and_redirect_stdout_with_dsym(self):
- """Exercise SBTaget.Launch() API."""
- self.buildDsym()
- self.launch_new_process_and_redirect_stdout()
-
@python_api_test
- @dwarf_test
- def test_launch_new_process_and_redirect_stdout_with_dwarf(self):
+ def test_launch_new_process_and_redirect_stdout(self):
"""Exercise SBTarget.Launch() API."""
- self.buildDwarf()
+ self.build()
self.launch_new_process_and_redirect_stdout()
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_resolve_symbol_context_with_address_with_dsym(self):
- """Exercise SBTaget.ResolveSymbolContextForAddress() API."""
- self.buildDsym()
- self.resolve_symbol_context_with_address()
-
- @python_api_test
- @dwarf_test
- def test_resolve_symbol_context_with_address_with_dwarf(self):
+ def test_resolve_symbol_context_with_address(self):
"""Exercise SBTarget.ResolveSymbolContextForAddress() API."""
- self.buildDwarf()
+ self.build()
self.resolve_symbol_context_with_address()
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_get_platform_with_dsym(self):
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- target = self.create_simple_target('a.out')
- platform = target.platform
- self.assertTrue(platform, VALID_PLATFORM)
-
@python_api_test
- @dwarf_test
- def test_get_platform_with_dwarf(self):
+ def test_get_platform(self):
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
target = self.create_simple_target('b.out')
platform = target.platform
self.assertTrue(platform, VALID_PLATFORM)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_get_data_byte_size_with_dsym(self):
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- target = self.create_simple_target('a.out')
- self.assertEquals(target.data_byte_size, 1)
-
@python_api_test
- @dwarf_test
- def test_get_data_byte_size_with_dwarf(self):
+ def test_get_data_byte_size(self):
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
target = self.create_simple_target('b.out')
self.assertEquals(target.data_byte_size, 1)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_get_code_byte_size_with_dsym(self):
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- target = self.create_simple_target('a.out')
- self.assertEquals(target.code_byte_size, 1)
-
@python_api_test
- @dwarf_test
- def test_get_code_byte_size_with_dwarf(self):
+ def test_get_code_byte_size(self):
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
target = self.create_simple_target('b.out')
self.assertEquals(target.code_byte_size, 1)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_resolve_file_address_with_dsym(self):
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- target = self.create_simple_target('a.out')
- self.resolve_file_address(target)
-
@python_api_test
- @dwarf_test
- def test_resolve_file_address_with_dwarf(self):
+ def test_resolve_file_address(self):
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
target = self.create_simple_target('b.out')
- self.resolve_file_address(target)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_read_memory_with_dsym(self):
- d = {'EXE': 'a.out'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- target = self.create_simple_target('a.out')
- self.read_memory(target)
+ # find the file address in the .data section of the main
+ # module
+ data_section = self.find_data_section(target)
+ data_section_addr = data_section.file_addr
+
+ # resolve the above address, and compare the address produced
+ # by the resolution against the original address/section
+ res_file_addr = target.ResolveFileAddress(data_section_addr)
+ self.assertTrue(res_file_addr.IsValid())
+
+ self.assertEquals(data_section_addr, res_file_addr.file_addr)
+
+ data_section2 = res_file_addr.section
+ self.assertIsNotNone(data_section2)
+ self.assertEquals(data_section.name, data_section2.name)
@python_api_test
- @dwarf_test
- def test_read_memory_with_dwarf(self):
+ def test_read_memory(self):
d = {'EXE': 'b.out'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
target = self.create_simple_target('b.out')
- self.read_memory(target)
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line number to of function 'c'.
- self.line1 = line_number('main.c', '// Find the line number for breakpoint 1 here.')
- self.line2 = line_number('main.c', '// Find the line number for breakpoint 2 here.')
- self.line_main = line_number("main.c", "// Set a break at entry to main.")
-
- def read_memory(self, target):
breakpoint = target.BreakpointCreateByLocation("main.c", self.line_main)
self.assertTrue(breakpoint, VALID_BREAKPOINT)
@@ -234,23 +142,6 @@ class TargetAPITestCase(TestBase):
self.assertTrue(target, VALID_TARGET)
return target
- def resolve_file_address(self, target):
- # find the file address in the .data section of the main
- # module
- data_section = self.find_data_section(target)
- data_section_addr = data_section.file_addr
-
- # resolve the above address, and compare the address produced
- # by the resolution against the original address/section
- res_file_addr = target.ResolveFileAddress(data_section_addr)
- self.assertTrue(res_file_addr.IsValid())
-
- self.assertEquals(data_section_addr, res_file_addr.file_addr)
-
- data_section2 = res_file_addr.section
- self.assertIsNotNone(data_section2)
- self.assertEquals(data_section.name, data_section2.name)
-
def find_data_section(self, target):
mod = target.GetModuleAtIndex(0)
data_section = None
diff --git a/lldb/test/python_api/thread/TestThreadAPI.py b/lldb/test/python_api/thread/TestThreadAPI.py
index d5b146d07ab..8ace950a46e 100644
--- a/lldb/test/python_api/thread/TestThreadAPI.py
+++ b/lldb/test/python_api/thread/TestThreadAPI.py
@@ -12,98 +12,44 @@ class ThreadAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_get_process_with_dsym(self):
+ def test_get_process(self):
"""Test Python SBThread.GetProcess() API."""
- self.buildDsym()
+ self.build()
self.get_process()
@python_api_test
- @dwarf_test
- def test_get_process_with_dwarf(self):
- """Test Python SBThread.GetProcess() API."""
- self.buildDwarf()
- self.get_process()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_get_stop_description_with_dsym(self):
+ def test_get_stop_description(self):
"""Test Python SBThread.GetStopDescription() API."""
- self.buildDsym()
+ self.build()
self.get_stop_description()
@python_api_test
- @dwarf_test
- def test_get_stop_description_with_dwarf(self):
- """Test Python SBThread.GetStopDescription() API."""
- self.buildDwarf()
- self.get_stop_description()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_run_to_address_with_dsym(self):
- """Test Python SBThread.RunToAddress() API."""
- # We build a different executable than the default buildDwarf() does.
- d = {'CXX_SOURCES': 'main2.cpp', 'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.run_to_address(self.exe_name)
-
- @python_api_test
- @dwarf_test
- def test_run_to_address_with_dwarf(self):
+ def test_run_to_address(self):
"""Test Python SBThread.RunToAddress() API."""
- # We build a different executable than the default buildDwarf() does.
+ # We build a different executable than the default build() does.
d = {'CXX_SOURCES': 'main2.cpp', 'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.run_to_address(self.exe_name)
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_step_out_of_malloc_into_function_b_with_dsym(self):
- """Test Python SBThread.StepOut() API to step out of a malloc call where the call site is at function b()."""
- # We build a different executable than the default buildDsym() does.
- d = {'CXX_SOURCES': 'main2.cpp', 'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.step_out_of_malloc_into_function_b(self.exe_name)
-
@expectedFailureFreeBSD # llvm.org/pr20476
- @python_api_test
@expectedFailureWindows # Test crashes
- @dwarf_test
- def test_step_out_of_malloc_into_function_b_with_dwarf(self):
+ def test_step_out_of_malloc_into_function_b(self):
"""Test Python SBThread.StepOut() API to step out of a malloc call where the call site is at function b()."""
- # We build a different executable than the default buildDwarf() does.
+ # We build a different executable than the default build() does.
d = {'CXX_SOURCES': 'main2.cpp', 'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.step_out_of_malloc_into_function_b(self.exe_name)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_step_over_3_times_with_dsym(self):
- """Test Python SBThread.StepOver() API."""
- # We build a different executable than the default buildDsym() does.
- d = {'CXX_SOURCES': 'main2.cpp', 'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.step_over_3_times(self.exe_name)
-
@python_api_test
- @dwarf_test
- def test_step_over_3_times_with_dwarf(self):
+ def test_step_over_3_times(self):
"""Test Python SBThread.StepOver() API."""
- # We build a different executable than the default buildDwarf() does.
+ # We build a different executable than the default build() does.
d = {'CXX_SOURCES': 'main2.cpp', 'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
self.step_over_3_times(self.exe_name)
diff --git a/lldb/test/python_api/type/TestTypeList.py b/lldb/test/python_api/type/TestTypeList.py
index 19f178e0f05..f790f5f6eee 100644
--- a/lldb/test/python_api/type/TestTypeList.py
+++ b/lldb/test/python_api/type/TestTypeList.py
@@ -12,25 +12,6 @@ class TypeAndTypeListTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Exercise SBType and SBTypeList API."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.type_and_typelist_api(self.exe_name)
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf(self):
- """Exercise SBType and SBTypeList API."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.type_and_typelist_api(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -40,9 +21,13 @@ class TypeAndTypeListTestCase(TestBase):
self.source = 'main.cpp'
self.line = line_number(self.source, '// Break at this line')
- def type_and_typelist_api(self, exe_name):
+ @python_api_test
+ def test(self):
"""Exercise SBType and SBTypeList API."""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ exe = os.path.join(os.getcwd(), self.exe_name)
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/value/TestValueAPI.py b/lldb/test/python_api/value/TestValueAPI.py
index 7c5443d3f62..3c67d69e225 100644
--- a/lldb/test/python_api/value/TestValueAPI.py
+++ b/lldb/test/python_api/value/TestValueAPI.py
@@ -12,26 +12,6 @@ class ValueAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Exercise some SBValue APIs."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.value_api(self.exe_name)
-
- @expectedFailureWindows("llvm.org/pr24772")
- @python_api_test
- @dwarf_test
- def test_with_dwarf(self):
- """Exercise some SBValue APIs."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.value_api(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -40,9 +20,14 @@ class ValueAPITestCase(TestBase):
# Find the line number to of function 'c'.
self.line = line_number('main.c', '// Break at this line')
- def value_api(self, exe_name):
+ @expectedFailureWindows("llvm.org/pr24772")
+ @python_api_test
+ def test(self):
"""Exercise some SBValue APIs."""
- exe = os.path.join(os.getcwd(), exe_name)
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ exe = os.path.join(os.getcwd(), self.exe_name)
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/value/change_values/TestChangeValueAPI.py b/lldb/test/python_api/value/change_values/TestChangeValueAPI.py
index e5d2c5ab754..dd30c9d4087 100644
--- a/lldb/test/python_api/value/change_values/TestChangeValueAPI.py
+++ b/lldb/test/python_api/value/change_values/TestChangeValueAPI.py
@@ -12,26 +12,6 @@ class ChangeValueAPITestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_change_value_with_dsym(self):
- """Exercise the SBValue::SetValueFromCString API."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.change_value_api(self.exe_name)
-
- @expectedFailureWindows("llvm.org/pr24772")
- @python_api_test
- @dwarf_test
- def test_change_value_with_dwarf(self):
- """Exercise the SBValue::SetValueFromCString API."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.change_value_api(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -42,9 +22,14 @@ class ChangeValueAPITestCase(TestBase):
self.check_line = line_number('main.c', '// Stop here and check values')
self.end_line = line_number ('main.c', '// Set a breakpoint here at the end')
- def change_value_api(self, exe_name):
- """Exercise some SBValue APIs."""
- exe = os.path.join(os.getcwd(), exe_name)
+ @expectedFailureWindows("llvm.org/pr24772")
+ @python_api_test
+ def test_change_value(self):
+ """Exercise the SBValue::SetValueFromCString API."""
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ exe = os.path.join(os.getcwd(), self.exe_name)
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py b/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
index 6a1224bc106..2329c96fe61 100644
--- a/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
+++ b/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
@@ -13,25 +13,6 @@ class ValueAsLinkedListTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym(self):
- """Exercise SBValue API linked_list_iter."""
- d = {'EXE': self.exe_name}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.linked_list_api(self.exe_name)
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf(self):
- """Exercise SBValue API linked_list_iter."""
- d = {'EXE': self.exe_name}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.linked_list_api(self.exe_name)
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -40,9 +21,13 @@ class ValueAsLinkedListTestCase(TestBase):
# Find the line number to break at.
self.line = line_number('main.cpp', '// Break at this line')
- def linked_list_api(self, exe_name):
- """Exercise SBValue API linked_list-iter."""
- exe = os.path.join(os.getcwd(), exe_name)
+ @python_api_test
+ def test(self):
+ """Exercise SBValue API linked_list_iter."""
+ d = {'EXE': self.exe_name}
+ self.build(dictionary=d)
+ self.setTearDownCleanup(dictionary=d)
+ exe = os.path.join(os.getcwd(), self.exe_name)
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/test/python_api/value_var_update/TestValueVarUpdate.py b/lldb/test/python_api/value_var_update/TestValueVarUpdate.py
index 8c597bc9c38..76d4d64b542 100644
--- a/lldb/test/python_api/value_var_update/TestValueVarUpdate.py
+++ b/lldb/test/python_api/value_var_update/TestValueVarUpdate.py
@@ -10,23 +10,6 @@ class HelloWorldTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_with_dsym_and_process_launch_api(self):
- """Test SBValue::GetValueDidChange"""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.do_test()
-
- @python_api_test
- @dwarf_test
- def test_with_dwarf_and_process_launch_api(self):
- """Test SBValue::GetValueDidChange"""
- self.buildDwarf(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.do_test()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
@@ -34,9 +17,11 @@ class HelloWorldTestCase(TestBase):
self.exe = os.path.join(os.getcwd(), self.testMethodName)
self.d = {'EXE': self.testMethodName}
- def do_test(self):
- """Create target, breakpoint, launch a process, and then kill it."""
-
+ @python_api_test
+ def test_with_process_launch_api(self):
+ """Test SBValue::GetValueDidChange"""
+ self.build(dictionary=self.d)
+ self.setTearDownCleanup(dictionary=self.d)
target = self.dbg.CreateTarget(self.exe)
breakpoint = target.BreakpointCreateBySourceRegex("break here", lldb.SBFileSpec("main.c"))
diff --git a/lldb/test/python_api/watchpoint/TestSetWatchpoint.py b/lldb/test/python_api/watchpoint/TestSetWatchpoint.py
index 1fd4d441ccd..9e464ad363a 100644
--- a/lldb/test/python_api/watchpoint/TestSetWatchpoint.py
+++ b/lldb/test/python_api/watchpoint/TestSetWatchpoint.py
@@ -20,25 +20,12 @@ class SetWatchpointAPITestCase(TestBase):
# Find the line number to break inside main().
self.line = line_number(self.source, '// Set break point at this line.')
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_watch_val_with_dsym(self):
- """Exercise SBValue.Watch() API to set a watchpoint."""
- self.buildDsym()
- self.do_set_watchpoint()
-
- @python_api_test
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watch_val_with_dwarf(self):
+ def test_watch_val(self):
"""Exercise SBValue.Watch() API to set a watchpoint."""
- self.buildDwarf()
- self.do_set_watchpoint()
-
- def do_set_watchpoint(self):
- """Use SBFrame.WatchValue() to set a watchpoint and verify that the program stops later due to the watchpoint."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py b/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
index c58f2fd3e88..6b4197b3d48 100644
--- a/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
+++ b/lldb/test/python_api/watchpoint/TestWatchpointIgnoreCount.py
@@ -20,25 +20,12 @@ class WatchpointIgnoreCountTestCase(TestBase):
# Find the line number to break inside main().
self.line = line_number(self.source, '// Set break point at this line.')
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_set_watch_ignore_count_with_dsym(self):
- """Test SBWatchpoint.SetIgnoreCount() API."""
- self.buildDsym()
- self.do_watchpoint_ignore_count()
-
- @python_api_test
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_set_watch_ignore_count_with_dwarf(self):
- """Test SBWatchpoint.SetIgnoreCount() API."""
- self.buildDwarf()
- self.do_watchpoint_ignore_count()
-
- def do_watchpoint_ignore_count(self):
+ def test_set_watch_ignore_count(self):
"""Test SBWatchpoint.SetIgnoreCount() API."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/watchpoint/TestWatchpointIter.py b/lldb/test/python_api/watchpoint/TestWatchpointIter.py
index ea202a55b25..8a6877930ee 100644
--- a/lldb/test/python_api/watchpoint/TestWatchpointIter.py
+++ b/lldb/test/python_api/watchpoint/TestWatchpointIter.py
@@ -20,25 +20,12 @@ class WatchpointIteratorTestCase(TestBase):
# Find the line number to break inside main().
self.line = line_number(self.source, '// Set break point at this line.')
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_watch_iter_with_dsym(self):
- """Exercise SBTarget.watchpoint_iter() API to iterate on the available watchpoints."""
- self.buildDsym()
- self.do_watchpoint_iter()
-
- @python_api_test
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watch_iter_with_dwarf(self):
+ def test_watch_iter(self):
"""Exercise SBTarget.watchpoint_iter() API to iterate on the available watchpoints."""
- self.buildDwarf()
- self.do_watchpoint_iter()
-
- def do_watchpoint_iter(self):
- """Use SBTarget.watchpoint_iter() to do Pythonic iteration on the available watchpoints."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py b/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
index d643c8c5ee4..a1c0ce00bad 100644
--- a/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
+++ b/lldb/test/python_api/watchpoint/condition/TestWatchpointConditionAPI.py
@@ -25,25 +25,12 @@ class WatchpointConditionAPITestCase(TestBase):
self.exe_name = self.testMethodName
self.d = {'CXX_SOURCES': self.source, 'EXE': self.exe_name}
- @skipUnlessDarwin
- @dsym_test
- def test_watchpoint_cond_api_with_dsym(self):
- """Test watchpoint condition API."""
- self.buildDsym(dictionary=self.d)
- self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_condition_api()
-
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watchpoint_cond_api_with_dwarf(self):
+ def test_watchpoint_cond_api(self):
"""Test watchpoint condition API."""
- self.buildDwarf(dictionary=self.d)
+ self.build(dictionary=self.d)
self.setTearDownCleanup(dictionary=self.d)
- self.watchpoint_condition_api()
-
- def watchpoint_condition_api(self):
- """Do watchpoint condition API to set condition as 'global==5'."""
exe = os.path.join(os.getcwd(), self.exe_name)
# Create a target by the debugger.
diff --git a/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py b/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
index b6db8280c0e..9830dd19777 100644
--- a/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
+++ b/lldb/test/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
@@ -22,25 +22,12 @@ class SetWatchlocationAPITestCase(TestBase):
# This is for verifying that watch location works.
self.violating_func = "do_bad_thing_with_location";
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_watch_location_with_dsym(self):
- """Exercise SBValue.WatchPointee() API to set a watchpoint."""
- self.buildDsym()
- self.do_set_watchlocation()
-
- @python_api_test
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446") # WINDOWS XFAIL TRIAGE - Watchpoints not supported on Windows
- def test_watch_location_with_dwarf(self):
+ def test_watch_location(self):
"""Exercise SBValue.WatchPointee() API to set a watchpoint."""
- self.buildDwarf()
- self.do_set_watchlocation()
-
- def do_set_watchlocation(self):
- """Use SBValue.WatchPointee() to set a watchpoint and verify that the program stops later due to the watchpoint."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py b/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
index 2cb2f3889eb..d7635ae93c3 100644
--- a/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
+++ b/lldb/test/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
@@ -22,41 +22,12 @@ class TargetWatchAddressAPITestCase(TestBase):
# This is for verifying that watch location works.
self.violating_func = "do_bad_thing_with_location";
- @skipUnlessDarwin
@python_api_test
- @dsym_test
- def test_watch_address_with_dsym(self):
- """Exercise SBTarget.WatchAddress() API to set a watchpoint."""
- self.buildDsym()
- self.do_set_watchaddress()
-
- @python_api_test
- @dwarf_test
@expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
@expectedFailureWindows("llvm.org/pr24446")
- def test_watch_address_with_dwarf(self):
+ def test_watch_address(self):
"""Exercise SBTarget.WatchAddress() API to set a watchpoint."""
- self.buildDwarf()
- self.do_set_watchaddress()
-
- @skipUnlessDarwin
- @python_api_test
- @dsym_test
- def test_watch_address_with_invalid_watch_size_with_dsym(self):
- """Exercise SBTarget.WatchAddress() API but pass an invalid watch_size."""
- self.buildDsym()
- self.do_set_watchaddress_with_invalid_watch_size()
-
- @python_api_test
- @dwarf_test
- @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
- def test_watch_address_with_invalid_watch_size_with_dwarf(self):
- """Exercise SBTarget.WatchAddress() API but pass an invalid watch_size."""
- self.buildDwarf()
- self.do_set_watchaddress_with_invalid_watch_size()
-
- def do_set_watchaddress(self):
- """Use SBTarget.WatchAddress() to set a watchpoint and verify that the program stops later due to the watchpoint."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
@@ -114,8 +85,11 @@ class TargetWatchAddressAPITestCase(TestBase):
# This finishes our test.
- def do_set_watchaddress_with_invalid_watch_size(self):
- """Use SBTarget.WatchAddress() to set a watchpoint with invalid watch_size and verify we get a meaningful error message."""
+ @python_api_test
+ @expectedFailureAndroid(archs=['arm', 'aarch64']) # Watchpoints not supported
+ def test_watch_address_with_invalid_watch_size(self):
+ """Exercise SBTarget.WatchAddress() API but pass an invalid watch_size."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
# Create a target by the debugger.
diff --git a/lldb/test/settings/TestSettings.py b/lldb/test/settings/TestSettings.py
index 5083348f163..f430a9dae3d 100644
--- a/lldb/test/settings/TestSettings.py
+++ b/lldb/test/settings/TestSettings.py
@@ -19,6 +19,7 @@ class SettingsCommandTestCase(TestBase):
cls.RemoveTempFile("stderr.txt")
cls.RemoveTempFile("stdout.txt")
+ @no_debug_info_test
def test_apropos_should_also_search_settings_description(self):
"""Test that 'apropos' command should also search descriptions for the settings variables."""
@@ -27,6 +28,7 @@ class SettingsCommandTestCase(TestBase):
"environment variables",
"executable's environment"])
+ @no_debug_info_test
def test_append_target_env_vars(self):
"""Test that 'append target.run-args' works."""
# Append the env-vars.
@@ -39,6 +41,7 @@ class SettingsCommandTestCase(TestBase):
self.expect('settings show target.env-vars',
substrs = ['MY_ENV_VAR=YES'])
+ @no_debug_info_test
def test_insert_before_and_after_target_run_args(self):
"""Test that 'insert-before/after target.run-args' works."""
# Set the run-args first.
@@ -60,6 +63,7 @@ class SettingsCommandTestCase(TestBase):
'[3]: "b"',
'[4]: "c"'])
+ @no_debug_info_test
def test_replace_target_run_args(self):
"""Test that 'replace target.run-args' works."""
# Set the run-args and then replace the index-0 element.
@@ -77,6 +81,7 @@ class SettingsCommandTestCase(TestBase):
'[1]: "b"',
'[2]: "c"'])
+ @no_debug_info_test
def test_set_prompt(self):
"""Test that 'set prompt' actually changes the prompt."""
@@ -94,6 +99,7 @@ class SettingsCommandTestCase(TestBase):
# Use '-r' option to reset to the original default prompt.
self.runCmd("settings clear prompt")
+ @no_debug_info_test
def test_set_term_width(self):
"""Test that 'set term-width' actually changes the term-width."""
@@ -110,7 +116,7 @@ class SettingsCommandTestCase(TestBase):
#rdar://problem/10712130
def test_set_frame_format(self):
"""Test that 'set frame-format' with a backtick char in the format string works as well as fullpath."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -143,7 +149,7 @@ class SettingsCommandTestCase(TestBase):
def test_set_auto_confirm(self):
"""Test that after 'set auto-confirm true', manual confirmation should not kick in."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -168,7 +174,7 @@ class SettingsCommandTestCase(TestBase):
@skipUnlessArch(['x86_64', 'i386', 'i686'])
def test_disassembler_settings(self):
"""Test that user options for the disassembler take effect."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -199,22 +205,10 @@ class SettingsCommandTestCase(TestBase):
self.expect("disassemble -n numberfn",
substrs = ["5ah"])
- @skipUnlessDarwin
- @dsym_test
- def test_run_args_and_env_vars_with_dsym(self):
- """Test that run-args and env-vars are passed to the launched process."""
- self.buildDsym()
- self.pass_run_args_and_env_vars()
-
- @dwarf_test
@expectedFailureWindows("llvm.org/pr24579")
- def test_run_args_and_env_vars_with_dwarf(self):
- """Test that run-args and env-vars are passed to the launched process."""
- self.buildDwarf()
- self.pass_run_args_and_env_vars()
-
- def pass_run_args_and_env_vars(self):
+ def test_run_args_and_env_vars(self):
"""Test that run-args and env-vars are passed to the launched process."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -244,7 +238,7 @@ class SettingsCommandTestCase(TestBase):
@skipIfRemote # it doesn't make sense to send host env to remote target
def test_pass_host_env_vars(self):
"""Test that the host env vars are passed to the launched process."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -277,7 +271,7 @@ class SettingsCommandTestCase(TestBase):
def test_set_error_output_path(self):
"""Test that setting target.error/output-path for the launched process works."""
- self.buildDefault()
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -328,6 +322,7 @@ class SettingsCommandTestCase(TestBase):
self.expect(output, exe=False,
startstr = "This message should go to standard out.")
+ @no_debug_info_test
def test_print_dictionary_setting(self):
self.runCmd ("settings clear target.env-vars")
self.runCmd ("settings set target.env-vars [\"MY_VAR\"]=some-value")
@@ -335,6 +330,7 @@ class SettingsCommandTestCase(TestBase):
substrs = [ "MY_VAR=some-value" ])
self.runCmd ("settings clear target.env-vars")
+ @no_debug_info_test
def test_print_array_setting(self):
self.runCmd ("settings clear target.run-args")
self.runCmd ("settings set target.run-args gobbledy-gook")
@@ -342,6 +338,7 @@ class SettingsCommandTestCase(TestBase):
substrs = [ '[0]: "gobbledy-gook"' ])
self.runCmd ("settings clear target.run-args")
+ @no_debug_info_test
def test_settings_with_quotes (self):
self.runCmd ("settings clear target.run-args")
self.runCmd ("settings set target.run-args a b c")
@@ -368,6 +365,7 @@ class SettingsCommandTestCase(TestBase):
self.expect ("settings show thread-format", 'thread-format (format-string) = "abc def "')
self.runCmd ('settings clear thread-format')
+ @no_debug_info_test
def test_settings_with_trailing_whitespace (self):
# boolean
@@ -450,6 +448,7 @@ class SettingsCommandTestCase(TestBase):
substrs = [ 'disassembly-format (format-string) = "foo "'])
self.runCmd("settings clear disassembly-format", check=False)
+ @no_debug_info_test
def test_all_settings_exist (self):
self.expect ("settings show",
substrs = [ "auto-confirm",
diff --git a/lldb/test/settings/quoting/TestQuoting.py b/lldb/test/settings/quoting/TestQuoting.py
index 995f88763d6..44fb01ffdef 100644
--- a/lldb/test/settings/quoting/TestQuoting.py
+++ b/lldb/test/settings/quoting/TestQuoting.py
@@ -16,42 +16,53 @@ class SettingsCommandTestCase(TestBase):
"""Cleanup the test byproducts."""
cls.RemoveTempFile("stdout.txt")
+ @no_debug_info_test
def test_no_quote(self):
self.do_test_args("a b c", "a\0b\0c\0")
@expectedFailureWindows("http://llvm.org/pr24557")
+ @no_debug_info_test
def test_single_quote(self):
self.do_test_args("'a b c'", "a b c\0")
+ @no_debug_info_test
def test_double_quote(self):
self.do_test_args('"a b c"', "a b c\0")
@expectedFailureWindows("http://llvm.org/pr24557")
+ @no_debug_info_test
def test_single_quote_escape(self):
self.do_test_args("'a b\\' c", "a b\\\0c\0")
@expectedFailureWindows("http://llvm.org/pr24557")
+ @no_debug_info_test
def test_double_quote_escape(self):
self.do_test_args('"a b\\" c"', 'a b" c\0')
@expectedFailureWindows("http://llvm.org/pr24557")
+ @no_debug_info_test
def test_double_quote_escape2(self):
self.do_test_args('"a b\\\\" c', 'a b\\\0c\0')
+ @no_debug_info_test
def test_single_in_double(self):
self.do_test_args('"a\'b"', "a'b\0")
@expectedFailureWindows("http://llvm.org/pr24557")
+ @no_debug_info_test
def test_double_in_single(self):
self.do_test_args("'a\"b'", 'a"b\0')
+ @no_debug_info_test
def test_combined(self):
self.do_test_args('"a b"c\'d e\'', 'a bcd e\0')
+ @no_debug_info_test
def test_bare_single(self):
self.do_test_args("a\\'b", "a'b\0")
@expectedFailureWindows("http://llvm.org/pr24557")
+ @no_debug_info_test
def test_bare_double(self):
self.do_test_args('a\\"b', 'a"b\0')
diff --git a/lldb/test/source-manager/TestSourceManager.py b/lldb/test/source-manager/TestSourceManager.py
index 5be75cb2601..c4f7131ec0b 100644
--- a/lldb/test/source-manager/TestSourceManager.py
+++ b/lldb/test/source-manager/TestSourceManager.py
@@ -28,21 +28,7 @@ class SourceManagerTestCase(TestBase):
@python_api_test
def test_display_source_python(self):
"""Test display of source using the SBSourceManager API."""
- self.buildDefault()
- self.display_source_python()
-
- def test_move_and_then_display_source(self):
- """Test that target.source-map settings work by moving main.c to hidden/main.c."""
- self.buildDefault()
- self.move_and_then_display_source()
-
- def test_modify_source_file_while_debugging(self):
- """Modify a source file while debugging the executable."""
- self.buildDefault()
- self.modify_source_file_while_debugging()
-
- def display_source_python(self):
- """Display source using the SBSourceManager API."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -81,8 +67,9 @@ class SourceManagerTestCase(TestBase):
stream.Print(None)
stream.RedirectToFile(None, True)
- def move_and_then_display_source(self):
+ def test_move_and_then_display_source(self):
"""Test that target.source-map settings work by moving main.c to hidden/main.c."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
@@ -108,8 +95,9 @@ class SourceManagerTestCase(TestBase):
self.expect("source list -n main", SOURCE_DISPLAYED_CORRECTLY,
substrs = ['Hello world'])
- def modify_source_file_while_debugging(self):
+ def test_modify_source_file_while_debugging(self):
"""Modify a source file while debugging the executable."""
+ self.build()
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
diff --git a/lldb/test/terminal/TestSTTYBeforeAndAfter.py b/lldb/test/terminal/TestSTTYBeforeAndAfter.py
index a671bf52d39..d3acccafa3a 100644
--- a/lldb/test/terminal/TestSTTYBeforeAndAfter.py
+++ b/lldb/test/terminal/TestSTTYBeforeAndAfter.py
@@ -20,6 +20,7 @@ class CommandLineCompletionTestCase(TestBase):
cls.RemoveTempFile("child_read2.txt")
@expectedFailureHostWindows("llvm.org/pr22274: need a pexpect replacement for windows")
+ @no_debug_info_test
def test_stty_dash_a_before_and_afetr_invoking_lldb_command(self):
"""Test that 'stty -a' displays the same output before and after running the lldb command."""
import pexpect
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py b/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py
index 7bea891d845..dab3ff44ca3 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteAttach.py
@@ -43,18 +43,16 @@ class TestGdbRemoteAttach(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEqual(reported_pid, inferior.pid)
@debugserver_test
- @dsym_test
- def test_attach_with_vAttach_debugserver_dsym(self):
+ def test_attach_with_vAttach_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach_manually()
self.attach_with_vAttach()
@llgs_test
- @dwarf_test
- def test_attach_with_vAttach_llgs_dwarf(self):
+ def test_attach_with_vAttach_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach_manually()
self.attach_with_vAttach()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py b/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py
index e6b8cea1de0..0a185b58923 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteAuxvSupport.py
@@ -87,10 +87,9 @@ class TestGdbRemoteAuxvSupport(gdbremote_testcase.GdbRemoteTestCaseBase):
#
@llgs_test
- @dwarf_test
- def test_supports_auxv_llgs_dwarf(self):
+ def test_supports_auxv_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.supports_auxv()
@@ -103,18 +102,16 @@ class TestGdbRemoteAuxvSupport(gdbremote_testcase.GdbRemoteTestCaseBase):
# print "auxv contains {} entries".format(len(auxv_data) / (2*word_size))
@debugserver_test
- @dsym_test
- def test_auxv_data_is_correct_size_debugserver_dsym(self):
+ def test_auxv_data_is_correct_size_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.auxv_data_is_correct_size()
@llgs_test
- @dwarf_test
- def test_auxv_data_is_correct_size_llgs_dwarf(self):
+ def test_auxv_data_is_correct_size_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.auxv_data_is_correct_size()
@@ -143,18 +140,16 @@ class TestGdbRemoteAuxvSupport(gdbremote_testcase.GdbRemoteTestCaseBase):
# print "auxv dict: {}".format(auxv_dict)
@debugserver_test
- @dsym_test
- def test_auxv_keys_look_valid_debugserver_dsym(self):
+ def test_auxv_keys_look_valid_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.auxv_keys_look_valid()
@llgs_test
- @dwarf_test
- def test_auxv_keys_look_valid_llgs_dwarf(self):
+ def test_auxv_keys_look_valid_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.auxv_keys_look_valid()
@@ -190,18 +185,16 @@ class TestGdbRemoteAuxvSupport(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(auxv_dict_iterated, auxv_dict)
@debugserver_test
- @dsym_test
- def test_auxv_chunked_reads_work_debugserver_dsym(self):
+ def test_auxv_chunked_reads_work_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.auxv_chunked_reads_work()
@llgs_test
- @dwarf_test
- def test_auxv_chunked_reads_work_llgs_dwarf(self):
+ def test_auxv_chunked_reads_work_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.auxv_chunked_reads_work()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py b/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
index 57189a9df83..06b103d8e2d 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteExpeditedRegisters.py
@@ -55,18 +55,16 @@ class TestGdbRemoteExpeditedRegisters(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertTrue(len(expedited_registers) > 0)
@debugserver_test
- @dsym_test
- def test_stop_notification_contains_any_registers_debugserver_dsym(self):
+ def test_stop_notification_contains_any_registers_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_any_registers()
@llgs_test
- @dwarf_test
- def test_stop_notification_contains_any_registers_llgs_dwarf(self):
+ def test_stop_notification_contains_any_registers_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_any_registers()
@@ -79,18 +77,16 @@ class TestGdbRemoteExpeditedRegisters(gdbremote_testcase.GdbRemoteTestCaseBase):
self.fail("expedited register number {} specified more than once ({} times)".format(reg_num, len(value)))
@debugserver_test
- @dsym_test
- def test_stop_notification_contains_no_duplicate_registers_debugserver_dsym(self):
+ def test_stop_notification_contains_no_duplicate_registers_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_no_duplicate_registers()
@llgs_test
- @dwarf_test
- def test_stop_notification_contains_no_duplicate_registers_llgs_dwarf(self):
+ def test_stop_notification_contains_no_duplicate_registers_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_no_duplicate_registers()
@@ -98,18 +94,16 @@ class TestGdbRemoteExpeditedRegisters(gdbremote_testcase.GdbRemoteTestCaseBase):
self.stop_notification_contains_generic_register("pc")
@debugserver_test
- @dsym_test
- def test_stop_notification_contains_pc_register_debugserver_dsym(self):
+ def test_stop_notification_contains_pc_register_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_pc_register()
@llgs_test
- @dwarf_test
- def test_stop_notification_contains_pc_register_llgs_dwarf(self):
+ def test_stop_notification_contains_pc_register_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_pc_register()
@@ -117,18 +111,16 @@ class TestGdbRemoteExpeditedRegisters(gdbremote_testcase.GdbRemoteTestCaseBase):
self.stop_notification_contains_generic_register("fp")
@debugserver_test
- @dsym_test
- def test_stop_notification_contains_fp_register_debugserver_dsym(self):
+ def test_stop_notification_contains_fp_register_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_fp_register()
@llgs_test
- @dwarf_test
- def test_stop_notification_contains_fp_register_llgs_dwarf(self):
+ def test_stop_notification_contains_fp_register_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_fp_register()
@@ -136,18 +128,16 @@ class TestGdbRemoteExpeditedRegisters(gdbremote_testcase.GdbRemoteTestCaseBase):
self.stop_notification_contains_generic_register("sp")
@debugserver_test
- @dsym_test
- def test_stop_notification_contains_sp_register_debugserver_dsym(self):
+ def test_stop_notification_contains_sp_register_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_sp_register()
@llgs_test
- @dwarf_test
- def test_stop_notification_contains_sp_register_llgs_dwarf(self):
+ def test_stop_notification_contains_sp_register_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.stop_notification_contains_sp_register()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteKill.py b/lldb/test/tools/lldb-server/TestGdbRemoteKill.py
index 273ab3589a1..459879e700c 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteKill.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteKill.py
@@ -36,18 +36,16 @@ class TestGdbRemoteKill(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertFalse(lldbgdbserverutils.process_is_running(procs["inferior"].pid, False))
@debugserver_test
- @dsym_test
- def test_attach_commandline_kill_after_initial_stop_debugserver_dsym(self):
+ def test_attach_commandline_kill_after_initial_stop_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach()
self.attach_commandline_kill_after_initial_stop()
@llgs_test
- @dwarf_test
- def test_attach_commandline_kill_after_initial_stop_llgs_dwarf(self):
+ def test_attach_commandline_kill_after_initial_stop_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach()
self.attach_commandline_kill_after_initial_stop()
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py b/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py
index b7db6983448..4aa9218de36 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteProcessInfo.py
@@ -31,17 +31,15 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertTrue(lldbgdbserverutils.process_is_running(pid, True))
@debugserver_test
- @dsym_test
- def test_qProcessInfo_returns_running_process_debugserver_dsym(self):
+ def test_qProcessInfo_returns_running_process_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.qProcessInfo_returns_running_process()
@llgs_test
- @dwarf_test
- def test_qProcessInfo_returns_running_process_llgs_dwarf(self):
+ def test_qProcessInfo_returns_running_process_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qProcessInfo_returns_running_process()
def attach_commandline_qProcessInfo_reports_correct_pid(self):
@@ -64,18 +62,16 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEqual(reported_pid, procs["inferior"].pid)
@debugserver_test
- @dsym_test
- def test_attach_commandline_qProcessInfo_reports_correct_pid_debugserver_dsym(self):
+ def test_attach_commandline_qProcessInfo_reports_correct_pid_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach()
self.attach_commandline_qProcessInfo_reports_correct_pid()
@llgs_test
- @dwarf_test
- def test_attach_commandline_qProcessInfo_reports_correct_pid_llgs_dwarf(self):
+ def test_attach_commandline_qProcessInfo_reports_correct_pid_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach()
self.attach_commandline_qProcessInfo_reports_correct_pid()
@@ -97,17 +93,15 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertTrue(endian in ["little", "big", "pdp"])
@debugserver_test
- @dsym_test
- def test_qProcessInfo_reports_valid_endian_debugserver_dsym(self):
+ def test_qProcessInfo_reports_valid_endian_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.qProcessInfo_reports_valid_endian()
@llgs_test
- @dwarf_test
- def test_qProcessInfo_reports_valid_endian_llgs_dwarf(self):
+ def test_qProcessInfo_reports_valid_endian_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qProcessInfo_reports_valid_endian()
def qProcessInfo_contains_keys(self, expected_key_set):
@@ -152,26 +146,23 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
@skipUnlessDarwin
@debugserver_test
- @dsym_test
def test_qProcessInfo_contains_cputype_cpusubtype_debugserver_darwin(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.qProcessInfo_contains_keys(set(['cputype', 'cpusubtype']))
@skipUnlessPlatform(["linux"])
@llgs_test
- @dwarf_test
def test_qProcessInfo_contains_triple_llgs_linux(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qProcessInfo_contains_keys(set(['triple']))
@skipUnlessDarwin
@debugserver_test
- @dsym_test
def test_qProcessInfo_does_not_contain_triple_debugserver_darwin(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
# We don't expect to see triple on darwin. If we do, we'll prefer triple
# to cputype/cpusubtype and skip some darwin-based ProcessGDBRemote ArchSpec setup
# for the remote Host and Process.
@@ -179,10 +170,9 @@ class TestGdbRemoteProcessInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
@skipUnlessPlatform(["linux"])
@llgs_test
- @dwarf_test
def test_qProcessInfo_does_not_contain_cputype_cpusubtype_llgs_linux(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qProcessInfo_does_not_contain_keys(set(['cputype', 'cpusubtype']))
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py b/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py
index da5a89642af..a6d62221fba 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteRegisterState.py
@@ -92,38 +92,34 @@ class TestGdbRemoteRegisterState(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(final_reg_values, initial_reg_values)
@debugserver_test
- @dsym_test
- def test_grp_register_save_restore_works_with_suffix_debugserver_dsym(self):
+ def test_grp_register_save_restore_works_with_suffix_debugserver(self):
USE_THREAD_SUFFIX = True
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.grp_register_save_restore_works(USE_THREAD_SUFFIX)
@llgs_test
- @dwarf_test
- def test_grp_register_save_restore_works_with_suffix_llgs_dwarf(self):
+ def test_grp_register_save_restore_works_with_suffix_llgs(self):
USE_THREAD_SUFFIX = True
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.grp_register_save_restore_works(USE_THREAD_SUFFIX)
@debugserver_test
- @dsym_test
- def test_grp_register_save_restore_works_no_suffix_debugserver_dsym(self):
+ def test_grp_register_save_restore_works_no_suffix_debugserver(self):
USE_THREAD_SUFFIX = False
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.grp_register_save_restore_works(USE_THREAD_SUFFIX)
@llgs_test
- @dwarf_test
- def test_grp_register_save_restore_works_no_suffix_llgs_dwarf(self):
+ def test_grp_register_save_restore_works_no_suffix_llgs(self):
USE_THREAD_SUFFIX = False
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.grp_register_save_restore_works(USE_THREAD_SUFFIX)
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py b/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py
index df3164897c6..53aa4b5392f 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteSingleStep.py
@@ -8,19 +8,17 @@ class TestGdbRemoteSingleStep(gdbremote_testcase.GdbRemoteTestCaseBase):
mydir = TestBase.compute_mydir(__file__)
@debugserver_test
- @dsym_test
- def test_single_step_only_steps_one_instruction_with_s_debugserver_dsym(self):
+ def test_single_step_only_steps_one_instruction_with_s_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.single_step_only_steps_one_instruction(use_Hc_packet=True, step_instruction="s")
@llgs_test
- @dwarf_test
@expectedFailureAndroid(bugnumber="llvm.com/pr24739", archs=["arm", "aarch64"])
- def test_single_step_only_steps_one_instruction_with_s_llgs_dwarf(self):
+ def test_single_step_only_steps_one_instruction_with_s_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.single_step_only_steps_one_instruction(use_Hc_packet=True, step_instruction="s")
diff --git a/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py b/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
index 55cff08341e..7e3f4ddd041 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
@@ -76,18 +76,16 @@ class TestGdbRemoteThreadsInStopReply(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertIsNotNone(context)
@debugserver_test
- @dsym_test
- def test_QListThreadsInStopReply_supported_debugserver_dsym(self):
+ def test_QListThreadsInStopReply_supported_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.QListThreadsInStopReply_supported()
@llgs_test
- @dwarf_test
- def test_QListThreadsInStopReply_supported_llgs_dwarf(self):
+ def test_QListThreadsInStopReply_supported_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.QListThreadsInStopReply_supported()
@@ -97,18 +95,16 @@ class TestGdbRemoteThreadsInStopReply(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(len(stop_reply_threads), thread_count)
@debugserver_test
- @dsym_test
- def test_stop_reply_reports_multiple_threads_debugserver_dsym(self):
+ def test_stop_reply_reports_multiple_threads_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.stop_reply_reports_multiple_threads(5)
@llgs_test
- @dwarf_test
- def test_stop_reply_reports_multiple_threads_llgs_dwarf(self):
+ def test_stop_reply_reports_multiple_threads_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.stop_reply_reports_multiple_threads(5)
@@ -118,18 +114,16 @@ class TestGdbRemoteThreadsInStopReply(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(len(stop_reply_threads), 0)
@debugserver_test
- @dsym_test
- def test_no_QListThreadsInStopReply_supplies_no_threads_debugserver_dsym(self):
+ def test_no_QListThreadsInStopReply_supplies_no_threads_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.no_QListThreadsInStopReply_supplies_no_threads(5)
@llgs_test
- @dwarf_test
- def test_no_QListThreadsInStopReply_supplies_no_threads_llgs_dwarf(self):
+ def test_no_QListThreadsInStopReply_supplies_no_threads_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.no_QListThreadsInStopReply_supplies_no_threads(5)
@@ -154,18 +148,16 @@ class TestGdbRemoteThreadsInStopReply(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertTrue(tid in stop_reply_threads)
@debugserver_test
- @dsym_test
- def test_stop_reply_reports_correct_threads_debugserver_dsym(self):
+ def test_stop_reply_reports_correct_threads_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.stop_reply_reports_correct_threads(5)
@llgs_test
- @dwarf_test
- def test_stop_reply_reports_correct_threads_llgs_dwarf(self):
+ def test_stop_reply_reports_correct_threads_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.stop_reply_reports_correct_threads(5)
diff --git a/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py b/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
index 112558bfa37..915b1a1aef9 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemote_qThreadStopInfo.py
@@ -80,18 +80,16 @@ class TestGdbRemote_qThreadStopInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(len(stop_replies), thread_count)
@debugserver_test
- @dsym_test
- def test_qThreadStopInfo_works_for_multiple_threads_debugserver_dsym(self):
+ def test_qThreadStopInfo_works_for_multiple_threads_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadStopInfo_works_for_multiple_threads(self.THREAD_COUNT)
@llgs_test
- @dwarf_test
- def test_qThreadStopInfo_works_for_multiple_threads_llgs_dwarf(self):
+ def test_qThreadStopInfo_works_for_multiple_threads_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadStopInfo_works_for_multiple_threads(self.THREAD_COUNT)
@@ -109,18 +107,16 @@ class TestGdbRemote_qThreadStopInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEqual(with_stop_reason_count, 1)
@debugserver_test
- @dsym_test
- def test_qThreadStopInfo_only_reports_one_thread_stop_reason_during_interrupt_debugserver_dsym(self):
+ def test_qThreadStopInfo_only_reports_one_thread_stop_reason_during_interrupt_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadStopInfo_only_reports_one_thread_stop_reason_during_interrupt(self.THREAD_COUNT)
@llgs_test
- @dwarf_test
- def test_qThreadStopInfo_only_reports_one_thread_stop_reason_during_interrupt_llgs_dwarf(self):
+ def test_qThreadStopInfo_only_reports_one_thread_stop_reason_during_interrupt_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadStopInfo_only_reports_one_thread_stop_reason_during_interrupt(self.THREAD_COUNT)
@@ -135,19 +131,17 @@ class TestGdbRemote_qThreadStopInfo(gdbremote_testcase.GdbRemoteTestCaseBase):
@unittest2.skip("MacOSX doesn't have a default thread name")
@debugserver_test
- @dsym_test
- def test_qThreadStopInfo_has_valid_thread_names_debugserver_dsym(self):
+ def test_qThreadStopInfo_has_valid_thread_names_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadStopInfo_has_valid_thread_names(self.THREAD_COUNT, "a.out")
@skipUnlessPlatform(["linux"]) # test requires OS with set, equal thread names by default.
@llgs_test
- @dwarf_test
- def test_qThreadStopInfo_has_valid_thread_names_llgs_dwarf(self):
+ def test_qThreadStopInfo_has_valid_thread_names_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadStopInfo_has_valid_thread_names(self.THREAD_COUNT, "a.out")
diff --git a/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py b/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py
index 0306bccf42a..8716ee16c5f 100644
--- a/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py
+++ b/lldb/test/tools/lldb-server/TestGdbRemote_vCont.py
@@ -36,91 +36,80 @@ class TestGdbRemote_vCont(gdbremote_testcase.GdbRemoteTestCaseBase):
self.vCont_supports_mode("S")
@debugserver_test
- @dsym_test
- def test_vCont_supports_c_debugserver_dsym(self):
+ def test_vCont_supports_c_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.vCont_supports_c()
@llgs_test
- def test_vCont_supports_c_llgs_dwarf(self):
+ def test_vCont_supports_c_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.vCont_supports_c()
@debugserver_test
- @dsym_test
- def test_vCont_supports_C_debugserver_dsym(self):
+ def test_vCont_supports_C_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.vCont_supports_C()
@llgs_test
- @dwarf_test
- def test_vCont_supports_C_llgs_dwarf(self):
+ def test_vCont_supports_C_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.vCont_supports_C()
@debugserver_test
- @dsym_test
- def test_vCont_supports_s_debugserver_dsym(self):
+ def test_vCont_supports_s_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.vCont_supports_s()
@llgs_test
- @dwarf_test
- def test_vCont_supports_s_llgs_dwarf(self):
+ def test_vCont_supports_s_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.vCont_supports_s()
@debugserver_test
- @dsym_test
- def test_vCont_supports_S_debugserver_dsym(self):
+ def test_vCont_supports_S_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.vCont_supports_S()
@llgs_test
- @dwarf_test
- def test_vCont_supports_S_llgs_dwarf(self):
+ def test_vCont_supports_S_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.vCont_supports_S()
@debugserver_test
- @dsym_test
- def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_debugserver_dsym(self):
+ def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.single_step_only_steps_one_instruction(use_Hc_packet=True, step_instruction="vCont;s")
@llgs_test
- @dwarf_test
@expectedFailureAndroid(bugnumber="llvm.com/pr24739", archs=["arm", "aarch64"])
- def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_llgs_dwarf(self):
+ def test_single_step_only_steps_one_instruction_with_Hc_vCont_s_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.single_step_only_steps_one_instruction(use_Hc_packet=True, step_instruction="vCont;s")
@debugserver_test
- @dsym_test
- def test_single_step_only_steps_one_instruction_with_vCont_s_thread_debugserver_dsym(self):
+ def test_single_step_only_steps_one_instruction_with_vCont_s_thread_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.single_step_only_steps_one_instruction(use_Hc_packet=False, step_instruction="vCont;s:{thread}")
@llgs_test
- @dwarf_test
@expectedFailureAndroid(bugnumber="llvm.com/pr24739", archs=["arm", "aarch64"])
- def test_single_step_only_steps_one_instruction_with_vCont_s_thread_llgs_dwarf(self):
+ def test_single_step_only_steps_one_instruction_with_vCont_s_thread_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.single_step_only_steps_one_instruction(use_Hc_packet=False, step_instruction="vCont;s:{thread}")
diff --git a/lldb/test/tools/lldb-server/TestLldbGdbServer.py b/lldb/test/tools/lldb-server/TestLldbGdbServer.py
index 03dcc84b614..bbe8e776ca1 100644
--- a/lldb/test/tools/lldb-server/TestLldbGdbServer.py
+++ b/lldb/test/tools/lldb-server/TestLldbGdbServer.py
@@ -116,17 +116,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.expect_gdbremote_sequence()
@debugserver_test
- @dsym_test
- def test_start_inferior_debugserver_dsym(self):
+ def test_start_inferior_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.start_inferior()
@llgs_test
- @dwarf_test
- def test_start_inferior_llgs_dwarf(self):
+ def test_start_inferior_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.start_inferior()
def inferior_exit_0(self):
@@ -145,17 +143,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.expect_gdbremote_sequence()
@debugserver_test
- @dsym_test
- def test_inferior_exit_0_debugserver_dsym(self):
+ def test_inferior_exit_0_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.inferior_exit_0()
@llgs_test
- @dwarf_test
- def test_inferior_exit_0_llgs_dwarf(self):
+ def test_inferior_exit_0_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.inferior_exit_0()
def inferior_exit_42(self):
@@ -179,17 +175,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.expect_gdbremote_sequence()
@debugserver_test
- @dsym_test
- def test_inferior_exit_42_debugserver_dsym(self):
+ def test_inferior_exit_42_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.inferior_exit_42()
@llgs_test
- @dwarf_test
- def test_inferior_exit_42_llgs_dwarf(self):
+ def test_inferior_exit_42_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.inferior_exit_42()
def c_packet_works(self):
@@ -208,17 +202,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.expect_gdbremote_sequence()
@debugserver_test
- @dsym_test
- def test_c_packet_works_debugserver_dsym(self):
+ def test_c_packet_works_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.c_packet_works()
@llgs_test
- @dwarf_test
- def test_c_packet_works_llgs_dwarf(self):
+ def test_c_packet_works_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.c_packet_works()
def inferior_print_exit(self):
@@ -242,17 +234,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertIsNotNone(context)
@debugserver_test
- @dsym_test
- def test_inferior_print_exit_debugserver_dsym(self):
+ def test_inferior_print_exit_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.inferior_print_exit()
@llgs_test
- @dwarf_test
- def test_inferior_print_exit_llgs_dwarf(self):
+ def test_inferior_print_exit_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.inferior_print_exit()
def first_launch_stop_reply_thread_matches_first_qC(self):
@@ -275,17 +265,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.expect_gdbremote_sequence()
@debugserver_test
- @dsym_test
- def test_first_launch_stop_reply_thread_matches_first_qC_debugserver_dsym(self):
+ def test_first_launch_stop_reply_thread_matches_first_qC_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.first_launch_stop_reply_thread_matches_first_qC()
@llgs_test
- @dwarf_test
- def test_first_launch_stop_reply_thread_matches_first_qC_llgs_dwarf(self):
+ def test_first_launch_stop_reply_thread_matches_first_qC_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.first_launch_stop_reply_thread_matches_first_qC()
def attach_commandline_continue_app_exits(self):
@@ -308,18 +296,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertFalse(lldbgdbserverutils.process_is_running(procs["inferior"].pid, False))
@debugserver_test
- @dsym_test
- def test_attach_commandline_continue_app_exits_debugserver_dsym(self):
+ def test_attach_commandline_continue_app_exits_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach()
self.attach_commandline_continue_app_exits()
@llgs_test
- @dwarf_test
- def test_attach_commandline_continue_app_exits_llgs_dwarf(self):
+ def test_attach_commandline_continue_app_exits_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach()
self.attach_commandline_continue_app_exits()
@@ -346,17 +332,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assert_valid_reg_info(lldbgdbserverutils.parse_reg_info_response(reg_info_packet))
@debugserver_test
- @dsym_test
- def test_qRegisterInfo_returns_one_valid_result_debugserver_dsym(self):
+ def test_qRegisterInfo_returns_one_valid_result_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.qRegisterInfo_returns_one_valid_result()
@llgs_test
- @dwarf_test
- def test_qRegisterInfo_returns_one_valid_result_llgs_dwarf(self):
+ def test_qRegisterInfo_returns_one_valid_result_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qRegisterInfo_returns_one_valid_result()
def qRegisterInfo_returns_all_valid_results(self):
@@ -379,17 +363,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assert_valid_reg_info(reg_info)
@debugserver_test
- @dsym_test
- def test_qRegisterInfo_returns_all_valid_results_debugserver_dsym(self):
+ def test_qRegisterInfo_returns_all_valid_results_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.qRegisterInfo_returns_all_valid_results()
@llgs_test
- @dwarf_test
- def test_qRegisterInfo_returns_all_valid_results_llgs_dwarf(self):
+ def test_qRegisterInfo_returns_all_valid_results_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qRegisterInfo_returns_all_valid_results()
def qRegisterInfo_contains_required_generics(self):
@@ -426,17 +408,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertTrue('flags' in generic_regs)
@debugserver_test
- @dsym_test
- def test_qRegisterInfo_contains_required_generics_debugserver_dsym(self):
+ def test_qRegisterInfo_contains_required_generics_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.qRegisterInfo_contains_required_generics()
@llgs_test
- @dwarf_test
- def test_qRegisterInfo_contains_required_generics_llgs_dwarf(self):
+ def test_qRegisterInfo_contains_required_generics_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qRegisterInfo_contains_required_generics()
def qRegisterInfo_contains_at_least_one_register_set(self):
@@ -462,17 +442,15 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertTrue(len(register_sets) >= 1)
@debugserver_test
- @dsym_test
- def test_qRegisterInfo_contains_at_least_one_register_set_debugserver_dsym(self):
+ def test_qRegisterInfo_contains_at_least_one_register_set_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.qRegisterInfo_contains_at_least_one_register_set()
@llgs_test
- @dwarf_test
- def test_qRegisterInfo_contains_at_least_one_register_set_llgs_dwarf(self):
+ def test_qRegisterInfo_contains_at_least_one_register_set_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qRegisterInfo_contains_at_least_one_register_set()
def targetHasAVX(self):
@@ -518,10 +496,9 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(self.targetHasAVX(), "Advanced Vector Extensions" in register_sets)
@llgs_test
- @dwarf_test
- def test_qRegisterInfo_contains_avx_registers_llgs_dwarf(self):
+ def test_qRegisterInfo_contains_avx_registers_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.qRegisterInfo_contains_avx_registers()
def qThreadInfo_contains_thread(self):
@@ -540,34 +517,30 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEqual(len(threads), 1)
@debugserver_test
- @dsym_test
- def test_qThreadInfo_contains_thread_launch_debugserver_dsym(self):
+ def test_qThreadInfo_contains_thread_launch_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadInfo_contains_thread()
@llgs_test
- @dwarf_test
- def test_qThreadInfo_contains_thread_launch_llgs_dwarf(self):
+ def test_qThreadInfo_contains_thread_launch_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadInfo_contains_thread()
@debugserver_test
- @dsym_test
- def test_qThreadInfo_contains_thread_attach_debugserver_dsym(self):
+ def test_qThreadInfo_contains_thread_attach_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach()
self.qThreadInfo_contains_thread()
@llgs_test
- @dwarf_test
- def test_qThreadInfo_contains_thread_attach_llgs_dwarf(self):
+ def test_qThreadInfo_contains_thread_attach_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach()
self.qThreadInfo_contains_thread()
@@ -600,34 +573,30 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(threads[0], QC_thread_id)
@debugserver_test
- @dsym_test
- def test_qThreadInfo_matches_qC_launch_debugserver_dsym(self):
+ def test_qThreadInfo_matches_qC_launch_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadInfo_matches_qC()
@llgs_test
- @dwarf_test
- def test_qThreadInfo_matches_qC_launch_llgs_dwarf(self):
+ def test_qThreadInfo_matches_qC_launch_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qThreadInfo_matches_qC()
@debugserver_test
- @dsym_test
- def test_qThreadInfo_matches_qC_attach_debugserver_dsym(self):
+ def test_qThreadInfo_matches_qC_attach_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach()
self.qThreadInfo_matches_qC()
@llgs_test
- @dwarf_test
- def test_qThreadInfo_matches_qC_attach_llgs_dwarf(self):
+ def test_qThreadInfo_matches_qC_attach_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach()
self.qThreadInfo_matches_qC()
@@ -673,34 +642,30 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
reg_index += 1
@debugserver_test
- @dsym_test
- def test_p_returns_correct_data_size_for_each_qRegisterInfo_launch_debugserver_dsym(self):
+ def test_p_returns_correct_data_size_for_each_qRegisterInfo_launch_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.p_returns_correct_data_size_for_each_qRegisterInfo()
@llgs_test
- @dwarf_test
- def test_p_returns_correct_data_size_for_each_qRegisterInfo_launch_llgs_dwarf(self):
+ def test_p_returns_correct_data_size_for_each_qRegisterInfo_launch_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.p_returns_correct_data_size_for_each_qRegisterInfo()
@debugserver_test
- @dsym_test
- def test_p_returns_correct_data_size_for_each_qRegisterInfo_attach_debugserver_dsym(self):
+ def test_p_returns_correct_data_size_for_each_qRegisterInfo_attach_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach()
self.p_returns_correct_data_size_for_each_qRegisterInfo()
@llgs_test
- @dwarf_test
- def test_p_returns_correct_data_size_for_each_qRegisterInfo_attach_llgs_dwarf(self):
+ def test_p_returns_correct_data_size_for_each_qRegisterInfo_attach_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach()
self.p_returns_correct_data_size_for_each_qRegisterInfo()
@@ -734,34 +699,30 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(int(context.get("thread_id"), 16), thread)
@debugserver_test
- @dsym_test
- def test_Hg_switches_to_3_threads_launch_debugserver_dsym(self):
+ def test_Hg_switches_to_3_threads_launch_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.Hg_switches_to_3_threads()
@llgs_test
- @dwarf_test
- def test_Hg_switches_to_3_threads_launch_llgs_dwarf(self):
+ def test_Hg_switches_to_3_threads_launch_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.Hg_switches_to_3_threads()
@debugserver_test
- @dsym_test
- def test_Hg_switches_to_3_threads_attach_debugserver_dsym(self):
+ def test_Hg_switches_to_3_threads_attach_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_attach()
self.Hg_switches_to_3_threads()
@llgs_test
- @dwarf_test
- def test_Hg_switches_to_3_threads_attach_llgs_dwarf(self):
+ def test_Hg_switches_to_3_threads_attach_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_attach()
self.Hg_switches_to_3_threads()
@@ -867,21 +828,19 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
post_handle_thread_id = int(post_handle_thread_id, 16)
self.assertEquals(post_handle_thread_id, print_thread_id)
- @debugserver_test
- @dsym_test
@unittest2.expectedFailure()
- def test_Hc_then_Csignal_signals_correct_thread_launch_debugserver_dsym(self):
+ @debugserver_test
+ def test_Hc_then_Csignal_signals_correct_thread_launch_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
# Darwin debugserver translates some signals like SIGSEGV into some gdb expectations about fixed signal numbers.
self.Hc_then_Csignal_signals_correct_thread(self.TARGET_EXC_BAD_ACCESS)
@llgs_test
- @dwarf_test
- def test_Hc_then_Csignal_signals_correct_thread_launch_llgs_dwarf(self):
+ def test_Hc_then_Csignal_signals_correct_thread_launch_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.Hc_then_Csignal_signals_correct_thread(lldbutil.get_signal_number('SIGSEGV'))
@@ -932,18 +891,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(read_contents, MEMORY_CONTENTS)
@debugserver_test
- @dsym_test
- def test_m_packet_reads_memory_debugserver_dsym(self):
+ def test_m_packet_reads_memory_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.m_packet_reads_memory()
@llgs_test
- @dwarf_test
- def test_m_packet_reads_memory_llgs_dwarf(self):
+ def test_m_packet_reads_memory_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.m_packet_reads_memory()
@@ -959,18 +916,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.expect_gdbremote_sequence()
@debugserver_test
- @dsym_test
- def test_qMemoryRegionInfo_is_supported_debugserver_dsym(self):
+ def test_qMemoryRegionInfo_is_supported_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_is_supported()
@llgs_test
- @dwarf_test
- def test_qMemoryRegionInfo_is_supported_llgs_dwarf(self):
+ def test_qMemoryRegionInfo_is_supported_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_is_supported()
@@ -1022,18 +977,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assert_address_within_memory_region(code_address, mem_region_dict)
@debugserver_test
- @dsym_test
- def test_qMemoryRegionInfo_reports_code_address_as_executable_debugserver_dsym(self):
+ def test_qMemoryRegionInfo_reports_code_address_as_executable_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_reports_code_address_as_executable()
@llgs_test
- @dwarf_test
- def test_qMemoryRegionInfo_reports_code_address_as_executable_llgs_dwarf(self):
+ def test_qMemoryRegionInfo_reports_code_address_as_executable_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_reports_code_address_as_executable()
@@ -1085,18 +1038,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assert_address_within_memory_region(stack_address, mem_region_dict)
@debugserver_test
- @dsym_test
- def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_debugserver_dsym(self):
+ def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_reports_stack_address_as_readable_writeable()
@llgs_test
- @dwarf_test
- def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_llgs_dwarf(self):
+ def test_qMemoryRegionInfo_reports_stack_address_as_readable_writeable_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_reports_stack_address_as_readable_writeable()
@@ -1149,18 +1100,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
@debugserver_test
- @dsym_test
- def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_debugserver_dsym(self):
+ def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_reports_heap_address_as_readable_writeable()
@llgs_test
- @dwarf_test
- def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_llgs_dwarf(self):
+ def test_qMemoryRegionInfo_reports_heap_address_as_readable_writeable_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qMemoryRegionInfo_reports_heap_address_as_readable_writeable()
@@ -1268,18 +1217,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertIsNotNone(context)
@debugserver_test
- @dsym_test
- def test_software_breakpoint_set_and_remove_work_debugserver_dsym(self):
+ def test_software_breakpoint_set_and_remove_work_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.software_breakpoint_set_and_remove_work()
@llgs_test
- @dwarf_test
- def test_software_breakpoint_set_and_remove_work_llgs_dwarf(self):
+ def test_software_breakpoint_set_and_remove_work_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.software_breakpoint_set_and_remove_work()
@@ -1298,18 +1245,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertTrue(len(supported_dict) > 0)
@debugserver_test
- @dsym_test
- def test_qSupported_returns_known_stub_features_debugserver_dsym(self):
+ def test_qSupported_returns_known_stub_features_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.qSupported_returns_known_stub_features()
@llgs_test
- @dwarf_test
- def test_qSupported_returns_known_stub_features_llgs_dwarf(self):
+ def test_qSupported_returns_known_stub_features_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.qSupported_returns_known_stub_features()
@@ -1358,18 +1303,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(printed_message, TEST_MESSAGE + "X")
@debugserver_test
- @dsym_test
- def test_written_M_content_reads_back_correctly_debugserver_dsym(self):
+ def test_written_M_content_reads_back_correctly_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.written_M_content_reads_back_correctly()
@llgs_test
- @dwarf_test
- def test_written_M_content_reads_back_correctly_llgs_dwarf(self):
+ def test_written_M_content_reads_back_correctly_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.written_M_content_reads_back_correctly()
@@ -1404,18 +1347,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
# Note: as of this moment, a hefty number of the GPR writes are failing with E32 (everything except rax-rdx, rdi, rsi, rbp).
# Come back to this. I have the test rigged to verify that at least some of the bit-flip writes work.
@debugserver_test
- @dsym_test
- def test_P_writes_all_gpr_registers_debugserver_dsym(self):
+ def test_P_writes_all_gpr_registers_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.P_writes_all_gpr_registers()
@llgs_test
- @dwarf_test
- def test_P_writes_all_gpr_registers_llgs_dwarf(self):
+ def test_P_writes_all_gpr_registers_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.P_writes_all_gpr_registers()
@@ -1512,18 +1453,16 @@ class LldbGdbServerTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
# Note: as of this moment, a hefty number of the GPR writes are failing with E32 (everything except rax-rdx, rdi, rsi, rbp).
@debugserver_test
- @dsym_test
- def test_P_and_p_thread_suffix_work_debugserver_dsym(self):
+ def test_P_and_p_thread_suffix_work_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.set_inferior_startup_launch()
self.P_and_p_thread_suffix_work()
@llgs_test
- @dwarf_test
- def test_P_and_p_thread_suffix_work_llgs_dwarf(self):
+ def test_P_and_p_thread_suffix_work_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.set_inferior_startup_launch()
self.P_and_p_thread_suffix_work()
diff --git a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
index 11bccd3ea33..2948aff2a7e 100644
--- a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
+++ b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteAbort.py
@@ -25,18 +25,16 @@ class TestGdbRemoteAbort(gdbremote_testcase.GdbRemoteTestCaseBase):
lldbutil.get_signal_number('SIGABRT'))
@debugserver_test
- @dsym_test
- def test_inferior_abort_received_debugserver_dsym(self):
+ def test_inferior_abort_received_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.inferior_abort_received()
@llgs_test
- @dwarf_test
# std::abort() on <= API 16 raises SIGSEGV - b.android.com/179836
@expectedFailureAndroid(api_levels=range(16 + 1))
- def test_inferior_abort_received_llgs_dwarf(self):
+ def test_inferior_abort_received_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.inferior_abort_received()
diff --git a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
index 9f330383082..322f41cd336 100644
--- a/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
+++ b/lldb/test/tools/lldb-server/inferior-crash/TestGdbRemoteSegFault.py
@@ -26,15 +26,13 @@ class TestGdbRemoteSegFault(gdbremote_testcase.GdbRemoteTestCaseBase):
self.assertEquals(int(hex_exit_code, 16), expected_signo)
@debugserver_test
- @dsym_test
- def test_inferior_seg_fault_received_debugserver_dsym(self):
+ def test_inferior_seg_fault_received_debugserver(self):
self.init_debugserver_test()
- self.buildDsym()
+ self.build()
self.inferior_seg_fault_received(self.GDB_REMOTE_STOP_CODE_BAD_ACCESS)
@llgs_test
- @dwarf_test
- def test_inferior_seg_fault_received_llgs_dwarf(self):
+ def test_inferior_seg_fault_received_llgs(self):
self.init_llgs_test()
- self.buildDwarf()
+ self.build()
self.inferior_seg_fault_received(lldbutil.get_signal_number('SIGSEGV'))
diff --git a/lldb/test/types/AbstractBase.py b/lldb/test/types/AbstractBase.py
index 0d1279398d8..5b1d9b88c69 100644
--- a/lldb/test/types/AbstractBase.py
+++ b/lldb/test/types/AbstractBase.py
@@ -59,22 +59,19 @@ class GenericTester(TestBase):
# 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)
diff --git a/lldb/test/types/HideTestFailures.py b/lldb/test/types/HideTestFailures.py
index 63facdfcc2d..38adfc5b349 100644
--- a/lldb/test/types/HideTestFailures.py
+++ b/lldb/test/types/HideTestFailures.py
@@ -39,103 +39,41 @@ class DebugIntegerTypesFailures(TestBase):
# Call super's tearDown().
TestBase.tearDown(self)
- @skipUnlessDarwin
- def test_char_type_with_dsym(self):
+ def test_char_type(self):
"""Test that char-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'char.cpp'}
- self.buildDsym(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- self.char_type()
-
- def test_char_type_with_dwarf(self):
- """Test that char-type variables are displayed correctly."""
- d = {'CXX_SOURCES': 'char.cpp'}
- self.buildDwarf(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.char_type()
-
- @skipUnlessDarwin
- def test_short_type_with_dsym(self):
- """Test that short-type variables are displayed correctly."""
- d = {'CXX_SOURCES': 'short.cpp'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.short_type()
+ self.generic_type_tester(set(['char']), quotedDisplay=True)
- def test_short_type_with_dwarf(self):
+ def test_short_type(self):
"""Test that short-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'short.cpp'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- self.short_type()
-
- @skipUnlessDarwin
- def test_int_type_with_dsym(self):
- """Test that int-type variables are displayed correctly."""
- d = {'CXX_SOURCES': 'int.cpp'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.int_type()
+ self.generic_type_tester(set(['short']))
- def test_int_type_with_dwarf(self):
+ def test_int_type(self):
"""Test that int-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'int.cpp'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- self.int_type()
-
- @skipUnlessDarwin
- def test_long_type_with_dsym(self):
- """Test that long-type variables are displayed correctly."""
- d = {'CXX_SOURCES': 'long.cpp'}
- print self.id()
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.long_type()
+ self.generic_type_tester(set(['int']))
- def test_long_type_with_dwarf(self):
+ def test_long_type(self):
"""Test that long-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'long.cpp'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- self.long_type()
-
- @skipUnlessDarwin
- def test_long_long_type_with_dsym(self):
- """Test that 'long long'-type variables are displayed correctly."""
- d = {'CXX_SOURCES': 'long_long.cpp'}
- self.buildDsym(dictionary=d)
- self.setTearDownCleanup(dictionary=d)
- self.long_long_type()
+ self.generic_type_tester(set(['long']))
- def test_long_long_type_with_dwarf(self):
+ def test_long_long_type(self):
"""Test that 'long long'-type variables are displayed correctly."""
d = {'CXX_SOURCES': 'long_long.cpp'}
- self.buildDwarf(dictionary=d)
+ self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- self.long_long_type()
-
- def char_type(self):
- """Test that char-type variables are displayed correctly."""
- self.generic_type_tester(set(['char']), quotedDisplay=True)
-
- def int_type(self):
- """Test that int-type variables are displayed correctly."""
- self.generic_type_tester(set(['int']))
-
- def short_type(self):
- """Test that short-type variables are displayed correctly."""
- self.generic_type_tester(set(['short']))
-
- def long_type(self):
- """Test that long-type variables are displayed correctly."""
- self.generic_type_tester(set(['long']))
-
- def long_long_type(self):
- """Test that long long-type variables are displayed correctly."""
self.generic_type_tester(set(['long long']))
-
if __name__ == '__main__':
import atexit
lldb.SBDebugger.Initialize()
diff --git a/lldb/test/types/TestFloatTypes.py b/lldb/test/types/TestFloatTypes.py
index 7f403fecd7a..ee2239b13a9 100644
--- a/lldb/test/types/TestFloatTypes.py
+++ b/lldb/test/types/TestFloatTypes.py
@@ -19,42 +19,24 @@ class FloatTypesTestCase(AbstractBase.GenericTester):
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):
+ 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()
diff --git a/lldb/test/types/TestFloatTypesExpr.py b/lldb/test/types/TestFloatTypesExpr.py
index 33ff0c5c393..27ae16ef9e3 100644
--- a/lldb/test/types/TestFloatTypesExpr.py
+++ b/lldb/test/types/TestFloatTypesExpr.py
@@ -22,41 +22,24 @@ class FloatTypesExprTestCase(AbstractBase.GenericTester):
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()
diff --git a/lldb/test/types/TestIntegerTypes.py b/lldb/test/types/TestIntegerTypes.py
index 58e85133061..69b1af5a8e3 100644
--- a/lldb/test/types/TestIntegerTypes.py
+++ b/lldb/test/types/TestIntegerTypes.py
@@ -19,179 +19,96 @@ class IntegerTypesTestCase(AbstractBase.GenericTester):
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
diff --git a/lldb/test/types/TestIntegerTypesExpr.py b/lldb/test/types/TestIntegerTypesExpr.py
index 4cada92b42a..3162c416138 100644
--- a/lldb/test/types/TestIntegerTypesExpr.py
+++ b/lldb/test/types/TestIntegerTypesExpr.py
@@ -19,179 +19,96 @@ class IntegerTypesExprTestCase(AbstractBase.GenericTester):
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
diff --git a/lldb/test/types/TestRecursiveTypes.py b/lldb/test/types/TestRecursiveTypes.py
index 08e4e91fcd3..97795a8a0bb 100644
--- a/lldb/test/types/TestRecursiveTypes.py
+++ b/lldb/test/types/TestRecursiveTypes.py
@@ -25,33 +25,15 @@ class RecursiveTypesTestCase(TestBase):
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()
diff --git a/lldb/test/warnings/uuid/TestAddDsymCommand.py b/lldb/test/warnings/uuid/TestAddDsymCommand.py
index 9b94d8cfc74..774e7725baf 100644
--- a/lldb/test/warnings/uuid/TestAddDsymCommand.py
+++ b/lldb/test/warnings/uuid/TestAddDsymCommand.py
@@ -16,6 +16,7 @@ class AddDsymCommandCase(TestBase):
self.source = 'main.cpp'
self.teardown_hook_added = False
+ @no_debug_info_test
def test_add_dsym_command_with_error(self):
"""Test that the 'add-dsym' command informs the user about failures."""
@@ -32,6 +33,7 @@ class AddDsymCommandCase(TestBase):
self.exe_name = 'a.out'
self.do_add_dsym_with_error(self.exe_name)
+ @no_debug_info_test
def test_add_dsym_command_with_success(self):
"""Test that the 'add-dsym' command informs the user about success."""
@@ -42,6 +44,7 @@ class AddDsymCommandCase(TestBase):
self.exe_name = 'a.out'
self.do_add_dsym_with_success(self.exe_name)
+ @no_debug_info_test
def test_add_dsym_with_dSYM_bundle(self):
"""Test that the 'add-dsym' command informs the user about success."""
OpenPOWER on IntegriCloud