[Lldb-commits] [lldb] r327924 - Modernize a test.
Jim Ingham via lldb-commits
lldb-commits at lists.llvm.org
Mon Mar 19 18:38:55 PDT 2018
Yes, I should have written this function much earlier. I've been trying to convert over to it every time a tests draws my attention (in this case 'cause I pointed it out for you to copy...)
It is the way to make a test in the sample_test/TestSampleTest.py. That seemed the most effective way to draw it to people's attention.
We could also document it in the README-testsuite as well, after the line recommending that you use the sample_test, but my experience is that people don't much read that doc?
Might also be worth a mention in the Projects doc - convert all relevant tests to use run_to_source_breakpoint...
I can't think of another prominent place to put docs for it. Maybe if lldbutil.py had a header that lists the most important routines that module provides, people might run across it there.
As a new person coming to the code base, where would you have looked to find this?
> On Mar 19, 2018, at 6:31 PM, Davide Italiano <dccitaliano at gmail.com> wrote:
> On Mon, Mar 19, 2018 at 4:15 PM, Jim Ingham via lldb-commits
> <lldb-commits at lists.llvm.org> wrote:
>> Author: jingham
>> Date: Mon Mar 19 16:15:06 2018
>> New Revision: 327924
>> URL: http://llvm.org/viewvc/llvm-project?rev=327924&view=rev
>> Modernize a test.
>> Modified: lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py
>> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py?rev=327924&r1=327923&r2=327924&view=diff
>> --- lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py (original)
>> +++ lldb/trunk/packages/Python/lldbsuite/test/lang/cpp/incomplete-types/TestCppIncompleteTypes.py Mon Mar 19 16:15:06 2018
>> @@ -48,35 +48,8 @@ class TestCppIncompleteTypes(TestBase):
>> # Get main source file
>> src_file = "main.cpp"
>> src_file_spec = lldb.SBFileSpec(src_file)
>> - self.assertTrue(src_file_spec.IsValid(), "Main source file")
>> - # Get the path of the executable
>> - exe_path = self.getBuildArtifact(exe)
>> - # Load the executable
>> - target = self.dbg.CreateTarget(exe_path)
>> - self.assertTrue(target.IsValid(), VALID_TARGET)
>> - # Break on main function
>> - main_breakpoint = target.BreakpointCreateBySourceRegex(
>> - "break here", src_file_spec)
>> - self.assertTrue(
>> - main_breakpoint.IsValid() and main_breakpoint.GetNumLocations() >= 1,
>> - VALID_BREAKPOINT)
>> - # Launch the process
>> - args = None
>> - env = None
>> - process = target.LaunchSimple(
>> - args, env, self.get_process_working_directory())
>> - self.assertTrue(process.IsValid(), PROCESS_IS_VALID)
>> - # Get the thread of the process
>> - self.assertTrue(
>> - process.GetState() == lldb.eStateStopped,
>> - PROCESS_STOPPED)
>> - thread = lldbutil.get_stopped_thread(
>> - process, lldb.eStopReasonBreakpoint)
>> + (target, process, thread, main_breakpoint) = lldbutil.run_to_source_breakpoint(self,
>> + "break here", src_file_spec, exe_name = exe)
>> # Get frame for current thread
>> return thread.GetSelectedFrame()
> Thanks. I was actually adding a new test and complaining to myself
> that there was too much boilerplate.
> This helper clearly makes things much better. It's probably worth
> documenting it somewhere? What do you think?
More information about the lldb-commits