[Lldb-commits] [lldb] d25fb4e - [lldb-vscode] Make tests not wait for 'launch' process events if launch fails.

Jorge Gorbe Moya via lldb-commits lldb-commits at lists.llvm.org
Mon May 22 10:59:00 PDT 2023


Author: Jorge Gorbe Moya
Date: 2023-05-22T10:41:11-07:00
New Revision: d25fb4e90c96f8fcb22fbed9009295026f1d20cf

URL: https://github.com/llvm/llvm-project/commit/d25fb4e90c96f8fcb22fbed9009295026f1d20cf
DIFF: https://github.com/llvm/llvm-project/commit/d25fb4e90c96f8fcb22fbed9009295026f1d20cf.diff

LOG: [lldb-vscode] Make tests not wait for 'launch' process events if launch fails.

After https://reviews.llvm.org/D147831, lldb-vscode doesn't send a
process event after launch/attach in case of failure. I believe this is
the right interpretation of the spec, because the description of the
event says:

> The event indicates that the debugger has begun debugging a new
> process.

and we haven't started debugging a process if there's no process because
we failed to launch it. This is also supported by the fact that
`request_launch` in vscode.py doesn't wait for the event if passed
`expectFailure=True`. However, this doesn't take into account
*unexpected* launch failures. In that case, `request_launch` will hang
indefinitely waiting for the process event.

This patch changes it so we'll only wait for these events if
`request["success"]` is true, independently of whether any failure was
expected or not.

Differential Revision: https://reviews.llvm.org/D150470

Added: 
    

Modified: 
    lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
    lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py

Removed: 
    


################################################################################
diff  --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
index d87c95b152a55..d6ed0ee737d4d 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
@@ -322,7 +322,6 @@ def cleanup():
             launchCommands=launchCommands,
             sourceMap=sourceMap,
             runInTerminal=runInTerminal,
-            expectFailure=expectFailure,
             postRunCommands=postRunCommands)
 
         if expectFailure:

diff  --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
index d3b7867359b39..3cfc88871ede8 100644
--- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -661,8 +661,7 @@ def request_launch(self, program, args=None, cwd=None, env=None,
                        stopCommands=None, exitCommands=None,
                        terminateCommands=None ,sourcePath=None,
                        debuggerRoot=None, launchCommands=None, sourceMap=None,
-                       runInTerminal=False, expectFailure=False,
-                       postRunCommands=None):
+                       runInTerminal=False, postRunCommands=None):
         args_dict = {
             'program': program
         }
@@ -712,7 +711,7 @@ def request_launch(self, program, args=None, cwd=None, env=None,
         }
         response = self.send_recv(command_dict)
 
-        if not expectFailure:
+        if response['success']:
             # Wait for a 'process' and 'initialized' event in any order
             self.wait_for_event(filter=['process', 'initialized'])
             self.wait_for_event(filter=['process', 'initialized'])


        


More information about the lldb-commits mailing list