[Lldb-commits] test/lldbtest.py fix

jingham at apple.com jingham at apple.com
Fri Oct 24 12:04:41 PDT 2014


Ooh, thanks!  I had noticed that the spawned lldb's were getting stranded when I wrote the batch mode tests, and figuring out what was wrong there was on my list of things to do, so thanks for saving me the detective work.  This looks right, and moreover works!  I checked it in as r220583.

Jim

> On Oct 24, 2014, at 10:43 AM, Oleksiy Vyalov <ovyalov at google.com> wrote:
> 
> Hello,
> 
> I'm new to LLDB community and recently started to dive into LLDB.
> I was running tests on my Ubuntu and noticed that sometimes lldb and inferior process remained in process list after test run is completed:
> 
>  ps -elf | grep lldb
> 0 S ovyalov  13653  4457  0  80   0 - 125362 futex_ 11:09 ?       00:00:00 /usr/local/home/ovyalov/projects/lldb/git/build/bin/lldb --no-lldbinit -b -o break set -n main -o run -o continue /usr/local/home/ovyalov/projects/lldb/git/lldb/test/driver/batch_mode/a.out -- CRASH
> 0 t ovyalov  13783 13653  0  80   0 -  1049 ptrace 11:09 pts/60   00:00:00 /usr/local/home/ovyalov/projects/lldb/git/lldb/test/driver/batch_mode/a.out CRASH
> 0 S ovyalov  14124  4457  0  80   0 - 125362 futex_ 11:43 ?       00:00:00 /usr/local/home/ovyalov/projects/lldb/git/build/bin/lldb --no-lldbinit -b -o break set -n main -o run -o continue /usr/local/home/ovyalov/projects/lldb/git/lldb/test/driver/batch_mode/a.out -- CRASH
> 0 t ovyalov  14299 14124  0  80   0 -  1049 ptrace 11:43 pts/67   00:00:00 /usr/local/home/ovyalov/projects/lldb/git/lldb/test/driver/batch_mode/a.out CRASH
> 0 S ovyalov  14803 14689  0  80   0 - 125297 futex_ 17:15 pts/55  00:00:00 ./lldb --no-lldbinit -b -o break set -n main -o run -o continue /usr/local/home/ovyalov/projects/lldb/git/lldb/test/driver/batch_mode/a.out -- NOCRASH
> 0 t ovyalov  14809 14803  0  80   0 -  1048 ptrace 17:15 pts/58   00:00:00 /usr/local/home/ovyalov/projects/lldb/git/lldb/test/driver/batch_mode/a.out NOCRASH
> 0 S ovyalov  14837 28698  0  80   0 -  5936 pipe_w 17:16 pts/57   00:00:00 grep --color=auto lldb
> 
> As I found out, the problem is in lldbtest.py which improperly handles exceptions. I've attached a patch to address this issue - please let me know whether it looks okay.
> 
> diff --git a/test/lldbtest.py b/test/lldbtest.py
> index 3c626fd..ed11ef8 100644
> --- a/test/lldbtest.py
> +++ b/test/lldbtest.py
> @@ -1014,12 +1014,12 @@ class Base(unittest2.TestCase):
>                  self.child.sendline('settings set interpreter.prompt-on-quit false')
>                  self.child.sendline('quit')
>                  self.child.expect(pexpect.EOF)
> -            except ValueError, ExceptionPexpect:
> +            except (ValueError, pexpect.ExceptionPexpect):
>                  # child is already terminated
>                  pass
> -
> -            # Give it one final blow to make sure the child is terminated.
> -            self.child.close()
> +	    finally:
> +		# Give it one final blow to make sure the child is terminated.
> +		self.child.close()
>  
>  
>      def tearDown(self):
> 
> 
> Thank you.
> 
> 
> -- 
> Oleksiy Vyalov | Software Engineer | ovyalov at google.com
> <lldbtest.py.patch>_______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits





More information about the lldb-commits mailing list