wallace updated this revision to Diff 251425. wallace added a comment. address comments
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76314/new/ https://reviews.llvm.org/D76314 Files: lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py lldb/tools/lldb-vscode/lldb-vscode.cpp Index: lldb/tools/lldb-vscode/lldb-vscode.cpp =================================================================== --- lldb/tools/lldb-vscode/lldb-vscode.cpp +++ lldb/tools/lldb-vscode/lldb-vscode.cpp @@ -2833,7 +2833,7 @@ } auto request_handlers = GetRequestHandlers(); uint32_t packet_idx = 0; - while (true) { + while (!g_vsc.sent_terminated_event) { std::string json = g_vsc.ReadJSON(); if (json.empty()) break; Index: lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py =================================================================== --- lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py +++ lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py @@ -9,6 +9,7 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil import lldbvscode_testcase +import time import os @@ -37,6 +38,21 @@ @skipIfWindows @skipIfRemote + def test_termination(self): + ''' + Tests the correct termination of lldb-vscode upon a 'disconnect' + request. + ''' + self.create_debug_adaptor() + # The underlying lldb-vscode process must be alive + self.assertEqual(self.vscode.process.poll(), None) + self.vscode.request_disconnect() + # The lldb-vscode process should finish even though + # we didn't close the communication socket explicitly + self.assertEqual(self.vscode.process.wait(), 0) + + @skipIfWindows + @skipIfRemote def test_stopOnEntry(self): ''' Tests the default launch of a simple program that stops at the
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp =================================================================== --- lldb/tools/lldb-vscode/lldb-vscode.cpp +++ lldb/tools/lldb-vscode/lldb-vscode.cpp @@ -2833,7 +2833,7 @@ } auto request_handlers = GetRequestHandlers(); uint32_t packet_idx = 0; - while (true) { + while (!g_vsc.sent_terminated_event) { std::string json = g_vsc.ReadJSON(); if (json.empty()) break; Index: lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py =================================================================== --- lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py +++ lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py @@ -9,6 +9,7 @@ from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil import lldbvscode_testcase +import time import os @@ -37,6 +38,21 @@ @skipIfWindows @skipIfRemote + def test_termination(self): + ''' + Tests the correct termination of lldb-vscode upon a 'disconnect' + request. + ''' + self.create_debug_adaptor() + # The underlying lldb-vscode process must be alive + self.assertEqual(self.vscode.process.poll(), None) + self.vscode.request_disconnect() + # The lldb-vscode process should finish even though + # we didn't close the communication socket explicitly + self.assertEqual(self.vscode.process.wait(), 0) + + @skipIfWindows + @skipIfRemote def test_stopOnEntry(self): ''' Tests the default launch of a simple program that stops at the
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits