<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Warren,<div><br></div><div>If you look in the '<span class="Apple-style-span" style="font-family: Calibri, sans-serif; font-size: 14px; ">2011-01-28-12_17_51' </span>directory, you should see some files explaining the detailed traces</div><div>which lead to the failure reporting.  For example,</div><div><br></div><div><div>[10:04:58] johnny:/Volumes/data/lldb/svn/trunk/test $ ls -l 2011-01-28-09_57_01</div><div>total 64</div><div>-rw-r--r--  1 johnny  admin  3171 Jan 28 10:00 ExpectedFailure-TestNamespace.NamespaceTestCase.test_with_dsym_and_run_command.log</div><div>-rw-r--r--  1 johnny  admin  3129 Jan 28 10:00 ExpectedFailure-TestNamespace.NamespaceTestCase.test_with_dwarf_and_run_command.log</div><div>-rw-r--r--  1 johnny  admin  2173 Jan 28 09:59 ExpectedFailure-TestObjCMethods2.FoundationTestCase2.test_NSArray_expr_commands_with_dsym.log</div><div>-rw-r--r--  1 johnny  admin  2130 Jan 28 09:59 ExpectedFailure-TestObjCMethods2.FoundationTestCase2.test_NSArray_expr_commands_with_dwarf.log</div><div>-rw-r--r--  1 johnny  admin  2639 Jan 28 09:59 ExpectedFailure-TestObjCMethods2.FoundationTestCase2.test_NSString_expr_commands_with_dsym.log</div><div>-rw-r--r--  1 johnny  admin  2596 Jan 28 09:59 ExpectedFailure-TestObjCMethods2.FoundationTestCase2.test_NSString_expr_commands_with_dwarf.log</div><div>-rw-r--r--  1 johnny  admin  1492 Jan 28 09:58 Failure-TestClassTypes.ClassTypesTestCase.test_with_dsym_and_expr_parser.log</div><div>-rw-r--r--  1 johnny  admin  1450 Jan 28 09:58 Failure-TestClassTypes.ClassTypesTestCase.test_with_dwarf_and_expr_parser.log</div><div>[10:53:21] johnny:/Volumes/data/lldb/svn/trunk/test $ tail -20 2011-01-28-09_57_01/Failure-TestClassTypes.ClassTypesTestCase.test_with_dwarf_and_expr_parser.log</div><div><br></div><div><br></div><div>Expecting start string: Breakpoint created: 1: name = 'C', locations = 1</div><div>Not matched</div><div><br></div><div>FAIL</div><div><br></div><div>Traceback (most recent call last):</div><div>  File "/Volumes/data/lldb/svn/trunk/test/class_types/TestClassTypes.py", line 53, in test_with_dwarf_and_expr_parser</div><div>    self.class_types_expr_parser()</div><div>  File "/Volumes/data/lldb/svn/trunk/test/class_types/TestClassTypes.py", line 165, in class_types_expr_parser</div><div>    startstr = "Breakpoint created: 1: name = 'C', locations = 1")</div><div>  File "/Volumes/data/lldb/svn/trunk/test/lldbtest.py", line 802, in expect</div><div>    msg if msg else EXP_MSG(str, exe))</div><div>AssertionError: False is not True : Breakpoint created successfully</div><div><br></div><div><br></div><div>To rerun this test, issue the following command from the 'test' directory:</div><div><br></div><div>./dotest.py -A i386 -C clang -v -t -f ClassTypesTestCase.test_with_dwarf_and_expr_parser</div><div>[10:54:35] johnny:/Volumes/data/lldb/svn/trunk/test $ </div><div><br></div><div>You can do further debugging from the Python stack traceback to have some idea of how/why the test failed.</div><div>It could even be that the Test*.py itself is incorrect. :-)</div><div><br></div><div>Right now, the test suite runs as a single Python invocation, so if there is a seg fault, the test suite aborts abruptly.</div><div>You can exclude certain test cases from being run while investigating the seg faults, however, by customizing</div><div>your own copy of blacklist.py in the test directory.  The file contains some example usages.</div><div><br></div><div>For lldb loggings, you can look at the lldbLoggings() function within dotest.py file, it currently use some environment</div><div>variables to set the logging destination and the logging options.  I'll ask Greg whether there are any specific thing to</div><div>turn on just for Dwarf reader things.</div><div><br></div><div>Thanks.</div><div><br></div><div><div>On Jan 28, 2011, at 10:37 AM, <a href="mailto:Warren.Paul@nokia.com">Warren.Paul@nokia.com</a> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; "><div>I've been playing around with LLDB and trying to get it to load some symbol files generated by the toolchains we support.  So far so good, but I need to start doing more lookups, etc. and would like to script these tests.  I thought I'd start with the LLDB tests and build up from there.  But when I run the tests I get mostly failures followed by a crash.  :(  Am I running them incorrectly, or missing some steps, … ??  Any help would be greatly appreciated.  Also, I haven't seen any logging in the Dwarf reader yet but have hit a few asserts.  Any tips for having my test scripts report anything the debugger doesn't like or expect in the Dwarf?</div><div><br></div><div>Thanks,</div><div>Warren</div><div><br></div><div>Here's the output of the tests:</div><div><br></div><div><div>./dotest.py -v</div><div><br></div><div>Session logs for test failures/errors will go into directory '2011-01-28-12_17_51'</div><div>----------------------------------------------------------------------</div><div>Collected 178 tests</div><div><br></div><div>  1: test_nonrunning_command_abbreviations (TestAbbreviations.AbbreviationsTestCase) ... </div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Hello!</div><div><br></div><div>ok</div><div>  2: test_with_dsym (TestAbbreviations.AbbreviationsTestCase) ... FAIL</div><div>  3: test_with_dwarf (TestAbbreviations.AbbreviationsTestCase) ... FAIL</div><div>  4: test_with_dsym (TestAliases.AliasTestCase) ... </div><div><br></div><div><br></div><div>Whoopee!</div><div><br></div><div><br></div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">       </span>hello</div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>hello</div><div><br></div><div>FAIL</div><div>  5: test_with_dwarf (TestAliases.AliasTestCase) ... </div><div><br></div><div><br></div><div>Whoopee!</div><div><br></div><div><br></div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>hello</div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>hello</div><div><br></div><div>FAIL</div><div>  6: test_with_dsym_and_python_api (TestArrayTypes.ArrayTypesTestCase)</div><div>     Use Python APIs to inspect variables with array types. ... FAIL</div><div>  7: test_with_dsym_and_run_command (TestArrayTypes.ArrayTypesTestCase)</div><div>     Test 'frame variable var_name' on some variables with array types. ... FAIL</div><div>  8: test_with_dwarf_and_python_api (TestArrayTypes.ArrayTypesTestCase)</div><div>     Use Python APIs to inspect variables with array types. ... FAIL</div><div>  9: test_with_dwarf_and_run_command (TestArrayTypes.ArrayTypesTestCase)</div><div>     Test 'frame variable var_name' on some variables with array types. ... FAIL</div><div> 10: test_with_dsym_and_python_api (TestBitfields.BitfieldsTestCase)</div><div>     Use Python APIs to inspect a bitfields variable. ... FAIL</div><div> 11: test_with_dsym_and_run_command (TestBitfields.BitfieldsTestCase)</div><div>     Test 'frame variable ...' on a variable with bitfields. ... FAIL</div><div> 12: test_with_dwarf_and_python_api (TestBitfields.BitfieldsTestCase)</div><div>     Use Python APIs to inspect a bitfields variable. ... FAIL</div><div> 13: test_with_dwarf_and_run_command (TestBitfields.BitfieldsTestCase)</div><div>     Test 'frame variable ...' on a variable with bitfields. ... FAIL</div><div> 14: test_with_dsym (TestBreakpointCommand.BreakpointCommandTestCase)</div><div>     Test a sequence of breakpoint command add, list, and remove. ... FAIL</div><div> 15: test_with_dwarf (TestBreakpointCommand.BreakpointCommandTestCase)</div><div>     Test a sequence of breakpoint command add, list, and remove. ... FAIL</div><div> 16: test_with_dsym_and_python_api (TestBreakpointConditions.BreakpointConditionsTestCase)</div><div>     Use Python APIs to set breakpoint conditions. ... FAIL</div><div> 17: test_with_dsym_and_run_command (TestBreakpointConditions.BreakpointConditionsTestCase)</div><div>     Exercise breakpoint condition with 'breakpoint modify -c <expr> id'. ... FAIL</div><div> 18: test_with_dwarf_and_python_api (TestBreakpointConditions.BreakpointConditionsTestCase)</div><div>     Use Python APIs to set breakpoint conditions. ... FAIL</div><div> 19: test_with_dwarf_and_run_command (TestBreakpointConditions.BreakpointConditionsTestCase)</div><div>     Exercise breakpoint condition with 'breakpoint modify -c <expr> id'. ... FAIL</div><div> 20: test_with_dsym_and_python_api (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)</div><div>     Use Python APIs to set breakpoint ignore count. ... FAIL</div><div> 21: test_with_dsym_and_run_command (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)</div><div>     Exercise breakpoint ignore count with 'breakpoint set -i <count>'. ... FAIL</div><div> 22: test_with_dwarf_and_python_api (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)</div><div>     Use Python APIs to set breakpoint ignore count. ... FAIL</div><div> 23: test_with_dwarf_and_run_command (TestBreakpointIgnoreCount.BreakpointIgnoreCountTestCase)</div><div>     Exercise breakpoint ignore count with 'breakpoint set -i <count>'. ... FAIL</div><div> 24: test_with_dsym (TestBreakpointLocations.BreakpointLocationsTestCase)</div><div>     Test breakpoint enable/disable for a breakpoint ID with multiple locations. ... FAIL</div><div> 25: test_with_dwarf (TestBreakpointLocations.BreakpointLocationsTestCase)</div><div>     Test breakpoint enable/disable for a breakpoint ID with multiple locations. ... FAIL</div><div> 26: test_with_dsym_and_python_api (TestStaticVariables.StaticVariableTestCase)</div><div>     Test Python APIs on file and class static variables. ... FAIL</div><div> 27: test_with_dsym_and_run_command (TestStaticVariables.StaticVariableTestCase)</div><div>     Test that file and class static variables display correctly. ... FAIL</div><div> 28: test_with_dwarf_and_python_api (TestStaticVariables.StaticVariableTestCase)</div><div>     Test Python APIs on file and class static variables. ... FAIL</div><div> 29: test_with_dwarf_and_run_command (TestStaticVariables.StaticVariableTestCase)</div><div>     Test that file and class static variables display correctly. ... FAIL</div><div> 30: test_with_dsym_and_expr_parser (TestClassTypes.ClassTypesTestCase)</div><div>     Test 'frame variable this' and 'expr this' when stopped inside a constructor. ... FAIL</div><div> 31: test_with_dsym_and_python_api (TestClassTypes.ClassTypesTestCase)</div><div>     Use Python APIs to create a breakpoint by (filespec, line). ... FAIL</div><div> 32: test_with_dsym_and_run_command (TestClassTypes.ClassTypesTestCase)</div><div>     Test 'frame variable this' when stopped on a class constructor. ... FAIL</div><div> 33: test_with_dwarf_and_expr_parser (TestClassTypes.ClassTypesTestCase)</div><div>     Test 'frame variable this' and 'expr this' when stopped inside a constructor. ... FAIL</div><div> 34: test_with_dwarf_and_python_api (TestClassTypes.ClassTypesTestCase)</div><div>     Use Python APIs to create a breakpoint by (filespec, line). ... FAIL</div><div> 35: test_with_dwarf_and_run_command (TestClassTypes.ClassTypesTestCase)</div><div>     Test 'frame variable this' when stopped on a class constructor. ... FAIL</div><div> 36: test_with_dsym_and_python_api (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)</div><div>     Disassemble each call frame when stopped on C's constructor. ... FAIL</div><div> 37: test_with_dsym_and_run_command (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)</div><div>     Disassemble each call frame when stopped on C's constructor. ... FAIL</div><div> 38: test_with_dwarf_and_python_api (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)</div><div>     Disassemble each call frame when stopped on C's constructor. ... FAIL</div><div> 39: test_with_dwarf_and_run_command (TestClassTypesDisassembly.IterateFrameAndDisassembleTestCase)</div><div>     Disassemble each call frame when stopped on C's constructor. ... FAIL</div><div> 40: test_command_source (TestCommandSource.CommandSourceTestCase)</div><div>     Test that lldb command "command source" works correctly. ... 2011-01-28</div><div>ok</div><div> 41: test_with_dsym_command (TestConditionalBreak.ConditionalBreakTestCase)</div><div>     Simulate a user using lldb commands to break on c() if called from a(). ... FAIL</div><div> 42: test_with_dsym_python (TestConditionalBreak.ConditionalBreakTestCase)</div><div>     Exercise some thread and frame APIs to break if c() is called by a(). ... FAIL</div><div> 43: test_with_dwarf_command (TestConditionalBreak.ConditionalBreakTestCase)</div><div>     Simulate a user using lldb commands to break on c() if called from a(). ... FAIL</div><div> 44: test_with_dwarf_python (TestConditionalBreak.ConditionalBreakTestCase)</div><div>     Exercise some thread and frame APIs to break if c() is called by a(). ... FAIL</div><div> 45: test_with_dsym (TestDeadStrip.DeadStripTestCase)</div><div>     Test breakpoint works correctly with dead-code stripping. ... FAIL</div><div> 46: test_with_dwarf (TestDeadStrip.DeadStripTestCase)</div><div>     Test breakpoint works correctly with dead-code stripping. ... FAIL</div><div> 47: test_with_dsym (TestEnumTypes.EnumTypesTestCase)</div><div>     Test 'image lookup -t days' and check for correct display. ... FAIL</div><div> 48: test_with_dwarf (TestEnumTypes.EnumTypesTestCase)</div><div>     Test 'image lookup -t days' and check for correct display. ... FAIL</div><div> 49: test_choice (TestSequenceFunctions.SequenceFunctionsTestCase) ... ok</div><div> 50: test_sample (TestSequenceFunctions.SequenceFunctionsTestCase) ... ok</div><div> 51: test_shuffle (TestSequenceFunctions.SequenceFunctionsTestCase) ... ok</div><div> 52: test_persistent_variables (TestPersistentVariables.PersistentVariablesTestCase)</div><div>     Test that lldb persistent variables works correctly. ... FAIL</div><div> 53: test_expr_commands (Test8638051.Radar8638051TestCase)</div><div>     The following expression commands should not crash. ... FAIL</div><div> 54: test_evaluate_expression_python (TestExprs.BasicExprCommandsTestCase)</div><div>     Test SBFrame.EvaluateExpression() API for evaluating an expression. ... FAIL</div><div> 55: test_expr_commands_can_handle_quotes (TestExprs.BasicExprCommandsTestCase)</div><div>     Throw some expression commands with quotes at lldb. ... Stack dump:</div><div>0.<span class="Apple-tab-span" style="white-space:pre"> </span><eof> parser at end of file</div><div>1.<span class="Apple-tab-span" style="white-space:pre">  </span>Parse:2:1: Generating code for declaration '$__lldb_valid_pointer_check'</div><div>Segmentation fault</div></div><div><br></div></div>
_______________________________________________<br>lldb-dev mailing list<br><a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev<br></blockquote></div><br></div></body></html>