<div dir="ltr">Hi all,<div><br></div><div>I just thought I'd send out an update on some work I've been doing to get a handle on how much of Linux x86_64 LLDB is/isn't tested.  I recently went through all the Linux x86_64 local-target tests, turning on previously disabled tests that ran, and marking XFAIL those tests that should work but are consistently failing to make this more useful.</div>
<div><br></div><div>A high-level summary of the test run results are as follows, running against lldb TOT r202887:</div><div><br></div><div><div><font face="courier new, monospace">======</font></div><div><font face="courier new, monospace">TOTALS</font></div>
<div><font face="courier new, monospace">======</font></div><div><font face="courier new, monospace">pass:   388 (89.40% of tests run)</font></div><div><font face="courier new, monospace">xfail:   46 (10.60% of tests run)</font></div>
<div><font face="courier new, monospace">fail:     0 ( 0.00% of tests run)</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">===========</font></div><div><font face="courier new, monospace">UNSUPPORTED</font></div>
<div><font face="courier new, monospace">===========</font></div><div><font face="courier new, monospace">unsupported (total):        480</font></div><div><font face="courier new, monospace">unsupported (Darwin-only):  421 (87.71% of unsupported tests)</font></div>
<div><font face="courier new, monospace">unsupported (skip linux):    13 ( 2.71% of unsupported tests)</font></div><div><font face="courier new, monospace">unsupported (other):         46 ( 9.58% of unsupported tests)</font></div>
</div><div><br></div><div><br></div><div>For the expected failures, I then went ahead and took a rough guess as to the underlying area that the expected failure tests were exercising (some of these might be wildly off - they're my best guess for a first pass).  I used this to get a rough idea of which parts of LLDB on Linux x86_64 would be best bang-for-the-buck on investigating and fixing.</div>
<div><br></div><div>Here is a summary of the areas where the expected failures were occurring:</div><div><br></div><div><table cellspacing="0" cellpadding="0" dir="ltr" style="table-layout:fixed;font-size:13px;font-family:arial,sans,sans-serif">
<colgroup><col width="400"><col width="100"><col width="100"></colgroup><tbody><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(0,0,0)">
System Best Guess</td><td style="padding:2px 3px;vertical-align:bottom;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(0,0,0)">Count</td><td style="padding:2px 3px;vertical-align:bottom"></td></tr>
<tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
concurrent</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">17</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
language features</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">9</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
exit handling</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">4</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
thread:state</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">2</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
thread:stack trace</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">2</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
dynamic loader</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">2</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
data formatter</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">2</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
watch variables</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
trap</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
register:iteration</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
misc:stl</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
expressions:function call</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
expressions:floating point</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
breakpoints</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right">1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(0,0,0)">
<unknown></td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);text-align:right;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(0,0,0)">
1</td><td></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(0,0,0);font-weight:bold;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0)">
Grand Total</td><td style="padding:2px 3px;vertical-align:bottom;border-right-width:1px;border-right-style:solid;border-right-color:rgb(0,0,0);border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(0,0,0);text-align:right">
46</td><td></td></tr></tbody></table></div><div><br></div><div>Here is the raw XFAIL test data that generated the summary above:</div><div><table cellspacing="0" cellpadding="0" dir="ltr" border="1" style="table-layout:fixed;font-size:13px;font-family:arial,sans,sans-serif;border-collapse:collapse;border:1px solid rgb(204,204,204)">
<colgroup><col width="394"><col width="414"><col width="337"></colgroup><tbody><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom;font-weight:bold">Test Module</td><td style="padding:2px 3px;vertical-align:bottom;font-weight:bold">
Test Name</td><td style="padding:2px 3px;vertical-align:bottom;font-weight:bold">System (best guess)</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestRdar12991846.Rdar12991846TestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom"><unknown></td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestStepAndBreakpoints.TestCStepping</td>
<td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_python_api</td><td style="padding:2px 3px;vertical-align:bottom">breakpoints</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestExprDoesntBlock.ExprDoesntDeadlockTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px">
<td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_breakpoints_delayed_breakpoint_one_watchpoint_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">
concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_delay_signal_watch_dwarf</td>
<td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_delay_watch_break_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_signal_delay_watch_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_signal_watch_break_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px">
<td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_signal_watch_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">
concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_two_breakpoints_one_watchpoint_dwarf</td>
<td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_two_watchpoint_threads_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_two_watchpoints_one_breakpoint_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_two_watchpoints_one_delay_breakpoint_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr>
<tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_two_watchpoints_one_signal_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">
concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_watch_break_dwarf</td>
<td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_watch_break_dwarf_delay</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestConcurrentEvents.ConcurrentEventsTestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_watchpoint_delay_watchpoint_one_breakpoint_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestConcurrentEvents.ConcurrentEventsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_watchpoint_with_delay_waychpoint_threads_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">concurrent</td>
</tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestMultithreaded.SBBreakpointCallbackCase</td><td style="padding:2px 3px;vertical-align:bottom">test_breakpoint_callback</td><td style="padding:2px 3px;vertical-align:bottom">
concurrent</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestDataFormatterStdVector.StdVectorDataFormatterTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_run_command</td>
<td style="padding:2px 3px;vertical-align:bottom">data formatter</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestDataFormatterStdVBool.StdVBoolDataFormatterTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">data formatter</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestAnonymous.AnonymousTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_expr_null</td><td style="padding:2px 3px;vertical-align:bottom">language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestBitfields.BitfieldsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_with_dwarf_and_python_api</td><td style="padding:2px 3px;vertical-align:bottom">language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestBlocks.BlocksTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_expr_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestNamespace.NamespaceTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestRvalueReferences.RvalueReferencesTestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestCPPStaticMembers.CPPStaticMembersTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">language features</td></tr><tr style="height:21px">
<td style="padding:2px 3px;vertical-align:bottom">TestStaticVariables.StaticVariableTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">
language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestCPPThis.CPPThisTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">
language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestCppValueCast.CppValueCastTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_value_cast_with_dwarf_and_virtual_inheritance</td>
<td style="padding:2px 3px;vertical-align:bottom">language features</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestSharedLib.SharedLibTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_frame_variable_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">dynamic loader</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestSharedLibStrippedSymbols.SharedLibTestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_frame_variable_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">dynamic loader</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestInferiorAssert.AssertingInferiorTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_inferior_asserting_disassemble</td><td style="padding:2px 3px;vertical-align:bottom">exit handling</td></tr><tr style="height:21px">
<td style="padding:2px 3px;vertical-align:bottom">TestRecursiveInferior.CrashingRecursiveInferiorTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_recursive_inferior_crashing_expr_step_and_expr_dwarf</td>
<td style="padding:2px 3px;vertical-align:bottom">exit handling</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestInferiorCrashing.CrashingInferiorTestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_inferior_crashing_expr_step_and_expr_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">exit handling</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestInferiorCrashing.CrashingInferiorTestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_inferior_crashing_step_after_break_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">exit handling</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestExprs.BasicExprCommandsTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_floating_point_expr_commands</td><td style="padding:2px 3px;vertical-align:bottom">expressions:floating point</td></tr><tr style="height:21px">
<td style="padding:2px 3px;vertical-align:bottom">TestCallStdStringFunction.ExprCommandCallFunctionTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">
expressions:function call</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestSTL.STLTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">
misc:stl</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestRegistersIterator.RegistersIteratorTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_iter_registers</td><td style="padding:2px 3px;vertical-align:bottom">
register:iteration</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestPrintStackTraces.ThreadsStackTracesTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_stack_traces</td>
<td style="padding:2px 3px;vertical-align:bottom">thread:stack trace</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestThreadAPI.ThreadAPITestCase</td><td style="padding:2px 3px;vertical-align:bottom">
test_step_out_of_malloc_into_function_b_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">thread:stack trace</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestThreadStates.ThreadStateTestCase</td>
<td style="padding:2px 3px;vertical-align:bottom">test_process_interrupt_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">thread:state</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">
TestThreadStates.ThreadStateTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_process_state_with_dwarf</td><td style="padding:2px 3px;vertical-align:bottom">thread:state</td></tr><tr style="height:21px">
<td style="padding:2px 3px;vertical-align:bottom">TestBuiltinTrap.BuiltinTrapTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_with_dwarf_and_run_command</td><td style="padding:2px 3px;vertical-align:bottom">
trap</td></tr><tr style="height:21px"><td style="padding:2px 3px;vertical-align:bottom">TestWatchedVarHitWhenInScope.WatchedVariableHitWhenInScopeTestCase</td><td style="padding:2px 3px;vertical-align:bottom">test_watched_var_should_only_hit_when_in_scope_with_dwarf</td>
<td style="padding:2px 3px;vertical-align:bottom">watch variables</td></tr></tbody></table></div><div><br></div><div><br></div><div>Note my test runs were done under the following conditions:</div><div><ul><li>Host: Ubuntu 12.04 LTS x86_64</li>
<li>Packages: swig, python-dev, ncurses-dev</li><li>Compiler: hand-built gcc 4.8.2 (required libmpc-dev).</li><li>libstdc++ from gcc 4.8.2</li><li>Libedit (July 2013) from <a href="http://thrysoee.dk/editline/">here</a>.  Note since we grabbed this the link has moved on to a 2014 cut of libedit.</li>
<li>Built with cmake/ninja, debug enabled, assertions enabled.</li><li>Run command: 'ninja check-lldb' within the build directory.</li></ul><div>Observations:</div></div><div><ul><li>Concurrent tests (TestConcurrentEvents) seem to expose the "most broken" area.</li>
<li>Language features (C/C++) are the next largest group of failures (could this be related to building with gcc but using clang's AST engine?  Need to investigate deeper since this is the next most broken area).</li>
<li>There are a set of tests, libc++-based data formatters, that I don't run because (1) I don't have a working libc++-based solution on Ubuntu yet.  Those tests are not included above and represents the largest selection of tests that are currently disabled on local target Linux x86_64 testing.</li>
<li>The areas that are no functioning seem to be fairly narrow - this is reasonably good news.</li><li>The test results do not include running a Linux x86_64 host against a Linux x86_64 remote.  I'll generate a summary for that once I (finally) get to lldb-gdbserver.</li>
</ul><div>Hopefully this is useful info for the following groups of people:<br></div></div><div><div><ul><li>Those wondering what kind of state LLDB is in on Linux (e.g. how many tests run successfully on Linux x86_64 vs. OS X).</li>
<li>Those wondering what areas of Linux could use the most help to make the product better.</li></ul><div>Feel free to ping me if you'd like more details on any of this.  I just figured I'd share these results with the list since I've had a few people ask me about areas this data would help answer.</div>
</div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">
Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px">
 <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34)">tfiala@google.com</span></a> |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px">
<font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div></div>