<div dir="ltr">I am at CppCon all week.  If you need to get this in before Monday, can you have Oleksiy or Chaoren test on Windows?  Otherwise I can take a look next week.</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 22, 2015 at 9:51 AM Tamas Berghammer <<a href="mailto:tberghammer@google.com">tberghammer@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">tberghammer retitled this revision from "[RFC] Merge dsym and dwarf test cases" to "Merge dsym and dwarf test cases".<br>
tberghammer updated the summary for this revision.<br>
tberghammer updated this revision to Diff 35378.<br>
tberghammer added a comment.<br>
<br>
Update all tests to use the new dsym/dwarf generation method where applicable and do minor cleanups on the tests:<br>
<br>
- Inline methods where the number of call sites decreased to 1<br>
- Remove trivial setUp() methods<br>
- Fix incorrect skip/xfail markings<br>
<br>
At the current stage there are no regression on Linux (x86_64, i386) /Android (arm).<br>
<br>
On OSX there are 3 new test what are failing after this change because beforehand they were running only with dsym and currently the dwarf version of them is failing (we haven't tested them before). The list of test cases where this issue happens:<br>
<br>
- TestHiddenIvars<br>
- TestObjCIvarStripped<br>
- TestObjCStaticMethodStripped<br>
<br>
Greg: What should I do with these cases? (Should I disable them as they shouldn't run with dwarf, should I XFAIL them or should I just let them being failed?)<br>
<br>
Ed, Zachary: I haven't tested this change on FreeBSD/Windows. I expect no regression there but it would be good if you can try it out and let me know how it goes.<br>
<br>
Further plans with the test suit (based on available resources):<br>
<br>
- Add logic to run tests with dwo debug info<br>
- Possibly implement the suggestion of Zachary about moving the build stage into the wrapper function (I am nor sure it will help the readability too much)<br>
- Possibly remove the setUp functions from the test cases where their content can be moved to other functions without code duplication (in several case it just initialize a line_number variable)<br>
<br>
<br>
<a href="http://reviews.llvm.org/D13028" rel="noreferrer" target="_blank">http://reviews.llvm.org/D13028</a><br>
<br>
Files:<br>
  test/arm_emulation/TestEmulations.py<br>
  test/benchmarks/continue/TestBenchmarkContinue.py<br>
  test/benchmarks/disassembly/TestDisassembly.py<br>
  test/benchmarks/disassembly/TestDoAttachThenDisassembly.py<br>
  test/benchmarks/disassembly/TestXcode41Vs42GDBDisassembly.py<br>
  test/benchmarks/expression/TestExpressionCmd.py<br>
  test/benchmarks/expression/TestRepeatedExprs.py<br>
  test/benchmarks/frame_variable/TestFrameVariableResponse.py<br>
  test/benchmarks/startup/TestStartupDelays.py<br>
  test/benchmarks/stepping/TestRunHooksThenSteppings.py<br>
  test/benchmarks/stepping/TestSteppingSpeed.py<br>
  test/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py<br>
  test/driver/batch_mode/TestBatchMode.py<br>
  test/expression_command/call-function/TestCallStdStringFunction.py<br>
  test/expression_command/call-function/TestCallStopAndContinue.py<br>
  test/expression_command/call-function/TestCallUserDefinedFunction.py<br>
  test/expression_command/call-restarts/TestCallThatRestarts.py<br>
  test/expression_command/call-throws/TestCallThatThrows.py<br>
  test/expression_command/char/TestExprsChar.py<br>
  test/expression_command/expr-in-syscall/TestExpressionInSyscall.py<br>
  test/expression_command/formatters/TestFormatters.py<br>
  test/expression_command/issue_11588/Test11588.py<br>
  test/expression_command/options/TestExprOptions.py<br>
  test/expression_command/persist_objc_pointeetype/TestPersistObjCPointeeType.py<br>
  test/expression_command/persistent_ptr_update/TestPersistentPtrUpdate.py<br>
  test/expression_command/persistent_types/TestNestedPersistentTypes.py<br>
  test/expression_command/persistent_types/TestPersistentTypes.py<br>
  test/expression_command/persistent_variables/TestPersistentVariables.py<br>
  test/expression_command/po_verbosity/TestPoVerbosity.py<br>
  test/expression_command/radar_8638051/Test8638051.py<br>
  test/expression_command/radar_9531204/TestPrintfAfterUp.py<br>
  test/expression_command/radar_9673664/TestExprHelpExamples.py<br>
  test/expression_command/test/TestExprs.py<br>
  test/expression_command/test/TestExprs2.py<br>
  test/expression_command/timeout/TestCallWithTimeout.py<br>
  test/expression_command/two-files/TestObjCTypeQueryFromOtherCompileUnit.py<br>
  test/functionalities/abbreviation/TestAbbreviations.py<br>
  test/functionalities/abbreviation/TestCommonShortSpellings.py<br>
  test/functionalities/archives/TestBSDArchives.py<br>
  test/functionalities/asan/TestMemoryHistory.py<br>
  test/functionalities/asan/TestReportData.py<br>
  test/functionalities/attach_resume/TestAttachResume.py<br>
  test/functionalities/avoids-fd-leak/TestFdLeak.py<br>
  test/functionalities/backticks/TestBackticksWithoutATarget.py<br>
  test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py<br>
  test/functionalities/breakpoint/breakpoint_command/TestBreakpointCommandsFromPython.py<br>
  test/functionalities/breakpoint/breakpoint_command/TestRegexpBreakCommand.py<br>
  test/functionalities/breakpoint/breakpoint_conditions/TestBreakpointConditions.py<br>
  test/functionalities/breakpoint/breakpoint_ids/TestBreakpointIDs.py<br>
  test/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py<br>
  test/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py<br>
  test/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py<br>
  test/functionalities/breakpoint/comp_dir_symlink/TestCompDirSymLink.py<br>
  test/functionalities/breakpoint/consecutive_breakpoins/TestConsecutiveBreakpoints.py<br>
  test/functionalities/breakpoint/cpp/TestCPPBreakpointLocations.py<br>
  test/functionalities/breakpoint/cpp_exception/TestCPPExceptionBreakpoint.py<br>
  test/functionalities/breakpoint/dummy_target_breakpoints/TestBreakpointsWithNoTargets.py<br>
  test/functionalities/breakpoint/inlined_breakpoints/TestInlinedBreakpoints.py<br>
  test/functionalities/breakpoint/objc/TestObjCBreakpoints.py<br>
  test/functionalities/command_history/TestCommandHistory.py<br>
  test/functionalities/command_regex/TestCommandRegex.py<br>
  test/functionalities/command_script/TestCommandScript.py<br>
  test/functionalities/command_script/import/TestImport.py<br>
  test/functionalities/command_script/import/rdar-12586188/TestRdar12586188.py<br>
  test/functionalities/command_source/TestCommandSource.py<br>
  test/functionalities/completion/TestCompletion.py<br>
  test/functionalities/conditional_break/TestConditionalBreak.py<br>
  test/functionalities/connect_remote/TestConnectRemote.py<br>
  test/functionalities/data-formatter/boolreference/TestFormattersBoolRefPtr.py<br>
  test/functionalities/data-formatter/compactvectors/TestCompactVectors.py<br>
  test/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py<br>
  test/functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py<br>
  test/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py<br>
  test/functionalities/data-formatter/data-formatter-disabling/TestDataFormatterDisabling.py<br>
  test/functionalities/data-formatter/data-formatter-enum-format/TestDataFormatterEnumFormat.py<br>
  test/functionalities/data-formatter/data-formatter-globals/TestDataFormatterGlobals.py<br>
  test/functionalities/data-formatter/data-formatter-named-summaries/TestDataFormatterNamedSummaries.py<br>
  test/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjC.py<br>
  test/functionalities/data-formatter/data-formatter-objc/nsstring/TestDataFormatterNSString.py<br>
  test/functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py<br>
  test/functionalities/data-formatter/data-formatter-ptr-to-array/TestPtrToArrayFormatting.py<br>
  test/functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py<br>
  test/functionalities/data-formatter/data-formatter-script/TestDataFormatterScript.py<br>
  test/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py<br>
  test/functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libstdcpp/iterator/TestDataFormatterStdIterator.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libstdcpp/list/TestDataFormatterStdList.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libstdcpp/map/TestDataFormatterStdMap.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libstdcpp/string/TestDataFormatterStdString.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vbool/TestDataFormatterStdVBool.py<br>
  test/functionalities/data-formatter/data-formatter-stl/libstdcpp/vector/TestDataFormatterStdVector.py<br>
  test/functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py<br>
  test/functionalities/data-formatter/data-formatter-synthval/TestDataFormatterSynthVal.py<br>
  test/functionalities/data-formatter/format-propagation/TestFormatPropagation.py<br>
  test/functionalities/data-formatter/frameformat_smallstruct/TestFrameFormatSmallStruct.py<br>
  test/functionalities/data-formatter/hexcaps/TestDataFormatterHexCaps.py<br>
  test/functionalities/data-formatter/nsarraysynth/TestNSArraySynthetic.py<br>
  test/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py<br>
  test/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py<br>
  test/functionalities/data-formatter/ostypeformatting/TestFormattersBoolRefPtr.py<br>
  test/functionalities/data-formatter/ptr_ref_typedef/TestPtrRef2Typedef.py<br>
  test/functionalities/data-formatter/refpointer-recursion/TestDataFormatterRefPtrRecursion.py<br>
  test/functionalities/data-formatter/summary-string-onfail/Test-rdar-9974002.py<br>
  test/functionalities/data-formatter/synthcapping/TestSyntheticCapping.py<br>
  test/functionalities/data-formatter/synthupdate/TestSyntheticFilterRecompute.py<br>
  test/functionalities/data-formatter/user-format-vs-summary/TestUserFormatVsSummary.py<br>
  test/functionalities/data-formatter/var-in-aggregate-misuse/TestVarInAggregateMisuse.py<br>
  test/functionalities/data-formatter/varscript_formatting/TestDataFormatterVarScriptFormatting.py<br>
  test/functionalities/data-formatter/vector-types/TestVectorTypesFormatting.py<br>
  test/functionalities/dead-strip/TestDeadStrip.py<br>
  test/functionalities/disassembly/TestDisassembleBreakpoint.py<br>
  test/functionalities/dynamic_value_child_count/TestDynamicValueChildCount.py<br>
  test/functionalities/embedded_interpreter/TestConvenienceVariables.py<br>
  test/functionalities/exec/TestExec.py<br>
  test/functionalities/expr-doesnt-deadlock/TestExprDoesntBlock.py<br>
  test/functionalities/fat_archives/TestFatArchives.py<br>
  test/functionalities/format/TestFormats.py<br>
  test/functionalities/inferior-assert/TestInferiorAssert.py<br>
  test/functionalities/inferior-changed/TestInferiorChanged.py<br>
  test/functionalities/inferior-crashing/TestInferiorCrashing.py<br>
  test/functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py<br>
  test/functionalities/inline-stepping/TestInlineStepping.py<br>
  test/functionalities/jitloader_gdb/TestJITLoaderGDB.py<br>
  test/functionalities/launch_with_shellexpand/TestLaunchWithShellExpand.py<br>
  test/functionalities/load_unload/TestLoadUnload.py<br>
  test/functionalities/longjmp/TestLongjmp.py<br>
  test/functionalities/memory/read/TestMemoryRead.py<br>
  test/functionalities/non-overlapping-index-variable-i/TestIndexVariable.py<br>
  test/functionalities/nosucharch/TestNoSuchArch.py<br>
  test/functionalities/object-file/TestImageListMultiArchitecture.py<br>
  test/functionalities/paths/TestPaths.py<br>
  test/functionalities/platform/TestPlatformCommand.py<br>
  test/functionalities/plugins/commands/TestPluginCommands.py<br>
  test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py<br>
  test/functionalities/postmortem/minidump/TestMiniDump.py<br>
  test/functionalities/process_attach/TestProcessAttach.py<br>
  test/functionalities/process_attach/attach_denied/TestAttachDenied.py<br>
  test/functionalities/process_group/TestChangeProcessGroup.py<br>
  test/functionalities/process_launch/TestProcessLaunch.py<br>
  test/functionalities/recursion/TestValueObjectRecursion.py<br>
  test/functionalities/register/TestRegisters.py<br>
  test/functionalities/rerun/TestRerun.py<br>
  test/functionalities/return-value/TestReturnValue.py<br>
  test/functionalities/set-data/TestSetData.py<br>
  test/functionalities/signal/TestSendSignal.py<br>
  test/functionalities/signal/handle-segv/TestHandleSegv.py<br>
  test/functionalities/signal/raise/TestRaise.py<br>
  test/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py<br>
  test/functionalities/step-avoids-no-debug/TestStepNoDebug.py<br>
  test/functionalities/stop-hook/TestStopHookCmd.py<br>
  test/functionalities/stop-hook/TestStopHookMechanism.py<br>
  test/functionalities/stop-hook/multiple_threads/TestStopHookMultipleThreads.py<br>
  test/functionalities/target_command/TestTargetCommand.py<br>
  test/functionalities/thread/TestNumThreads.py<br>
  test/functionalities/thread/break_after_join/TestBreakAfterJoin.py<br>
  test/functionalities/thread/concurrent_events/TestConcurrentEvents.py<br>
  test/functionalities/thread/crash_during_step/TestCrashDuringStep.py<br>
  test/functionalities/thread/create_after_attach/TestCreateAfterAttach.py<br>
  test/functionalities/thread/create_during_step/TestCreateDuringStep.py<br>
  test/functionalities/thread/exit_during_break/TestExitDuringBreak.py<br>
  test/functionalities/thread/exit_during_step/TestExitDuringStep.py<br>
  test/functionalities/thread/jump/TestThreadJump.py<br>
  test/functionalities/thread/multi_break/TestMultipleBreakpoints.py<br>
  test/functionalities/thread/state/TestThreadStates.py<br>
  test/functionalities/thread/step_out/TestThreadStepOut.py<br>
  test/functionalities/thread/thread_exit/TestThreadExit.py<br>
  test/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py<br>
  test/functionalities/tty/TestTerminal.py<br>
  test/functionalities/type_completion/TestTypeCompletion.py<br>
  test/functionalities/unwind/noreturn/TestNoreturnUnwind.py<br>
  test/functionalities/unwind/sigtramp/TestSigtrampUnwind.py<br>
  test/functionalities/value_md5_crash/TestValueMD5Crash.py<br>
  test/functionalities/watchpoint/hello_watchlocation/TestWatchLocation.py<br>
  test/functionalities/watchpoint/hello_watchpoint/TestMyFirstWatchpoint.py<br>
  test/functionalities/watchpoint/multiple_threads/TestWatchpointMultipleThreads.py<br>
  test/functionalities/watchpoint/step_over_watchpoint/TestStepOverWatchpoint.py<br>
  test/functionalities/watchpoint/variable_out_of_scope/TestWatchedVarHitWhenInScope.py<br>
  test/functionalities/watchpoint/watchpoint_commands/TestWatchpointCommands.py<br>
  test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandLLDB.py<br>
  test/functionalities/watchpoint/watchpoint_commands/command/TestWatchpointCommandPython.py<br>
  test/functionalities/watchpoint/watchpoint_commands/condition/TestWatchpointConditionCmd.py<br>
  test/functionalities/watchpoint/watchpoint_events/TestWatchpointEvents.py<br>
  test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py<br>
  test/functionalities/watchpoint/watchpoint_set_command/TestWatchpointSetErrorCases.py<br>
  test/help/TestHelp.py<br>
  test/lang/c/anonymous/TestAnonymous.py<br>
  test/lang/c/array_types/TestArrayTypes.py<br>
  test/lang/c/bitfields/TestBitfields.py<br>
  test/lang/c/blocks/TestBlocks.py<br>
  test/lang/c/const_variables/TestConstVariables.py<br>
  test/lang/c/enum_types/TestEnumTypes.py<br>
  test/lang/c/forward/TestForwardDeclaration.py<br>
  test/lang/c/function_types/TestFunctionTypes.py<br>
  test/lang/c/global_variables/TestGlobalVariables.py<br>
  test/lang/c/modules/TestCModules.py<br>
  test/lang/c/register_variables/TestRegisterVariables.py<br>
  test/lang/c/set_values/TestSetValues.py<br>
  test/lang/c/shared_lib/TestSharedLib.py<br>
  test/lang/c/shared_lib_stripped_symbols/TestSharedLibStrippedSymbols.py<br>
  test/lang/c/stepping/TestStepAndBreakpoints.py<br>
  test/lang/c/stepping/TestThreadStepping.py<br>
  test/lang/c/strings/TestCStrings.py<br>
  test/lang/c/tls_globals/TestTlsGlobals.py<br>
  test/lang/cpp/bool/TestCPPBool.py<br>
  test/lang/cpp/breakpoint-commands/TestCPPBreakpointCommands.py<br>
  test/lang/cpp/call-function/TestCallCPPFunction.py<br>
  test/lang/cpp/chained-calls/TestCppChainedCalls.py<br>
  test/lang/cpp/char1632_t/TestChar1632T.py<br>
  test/lang/cpp/class_static/TestStaticVariables.py<br>
  test/lang/cpp/class_types/TestClassTypes.py<br>
  test/lang/cpp/class_types/TestClassTypesDisassembly.py<br>
  test/lang/cpp/diamond/TestDiamond.py<br>
  test/lang/cpp/dynamic-value/TestCppValueCast.py<br>
  test/lang/cpp/dynamic-value/TestDynamicValue.py<br>
  test/lang/cpp/enum_types/TestCPP11EnumTypes.py<br>
  test/lang/cpp/exceptions/TestCPPExceptionBreakpoints.py<br>
  test/lang/cpp/global_operators/TestCppGlobalOperators.py<br>
  test/lang/cpp/namespace/TestNamespace.py<br>
  test/lang/cpp/nsimport/TestCppNsImport.py<br>
  test/lang/cpp/overloaded-functions/TestOverloadedFunctions.py<br>
  test/lang/cpp/rdar12991846/TestRdar12991846.py<br>
  test/lang/cpp/rvalue-references/TestRvalueReferences.py<br>
  test/lang/cpp/scope/TestCppScope.py<br>
  test/lang/cpp/signed_types/TestSignedTypes.py<br>
  test/lang/cpp/static_members/TestCPPStaticMembers.py<br>
  test/lang/cpp/static_methods/TestCPPStaticMethods.py<br>
  test/lang/cpp/stl/TestSTL.py<br>
  test/lang/cpp/stl/TestStdCXXDisassembly.py<br>
  test/lang/cpp/this/TestCPPThis.py<br>
  test/lang/cpp/unique-types/TestUniqueTypes.py<br>
  test/lang/cpp/unsigned_types/TestUnsignedTypes.py<br>
  test/lang/cpp/virtual/TestVirtual.py<br>
  test/lang/cpp/wchar_t/TestCxxWCharT.py<br>
  test/lang/go/goroutines/TestGoroutines.py<br>
  test/lang/go/types/TestGoASTContext.py<br>
  test/lang/mixed/TestMixedLanguages.py<br>
  test/lang/objc/blocks/TestObjCIvarsInBlocks.py<br>
  test/lang/objc/forward-decl/TestForwardDecl.py<br>
  test/lang/objc/foundation/TestConstStrings.py<br>
  (115 more files...)<br>
<br>
</blockquote></div>