[Lldb-commits] [lldb] d77b04e - [lldb/test] Move and improve TestPlatformProcessConnect.py

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 10 12:01:41 PST 2021


Author: Pavel Labath
Date: 2021-02-10T21:01:26+01:00
New Revision: d77b04e4edc00da3be2e0d2c8a0c80ae3ce0d829

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

LOG: [lldb/test] Move and improve TestPlatformProcessConnect.py

Although it is located under tools/lldb-server, this test is very
different that other lldb-server tests. The most important distinction
is that it does not test lldb-server directly, but rather interacts with
it through the lldb client. It also tests the relevant client
functionality (the platform connect command, which is even admitted in
the test name). The fact that this test is structured as a lldb-server
test means it cannot access most of the goodies available to the
"normal" lldb tests (the runCmd function, which it reimplements; the
run_break_set_by_symbol utility function; etc.).

This patch makes it a full-fledged lldb this, and rewrites the relevant
bits to make use of the standard features. I also move the test into the
"commands" subtree to better reflect its new status.

Added: 
    lldb/test/API/commands/platform/connect/Makefile
    lldb/test/API/commands/platform/connect/TestPlatformConnect.py
    lldb/test/API/commands/platform/connect/main.cpp

Modified: 
    

Removed: 
    lldb/test/API/tools/lldb-server/platform-process-connect/Makefile
    lldb/test/API/tools/lldb-server/platform-process-connect/TestPlatformProcessConnect.py
    lldb/test/API/tools/lldb-server/platform-process-connect/main.cpp


################################################################################
diff  --git a/lldb/test/API/tools/lldb-server/platform-process-connect/Makefile b/lldb/test/API/commands/platform/connect/Makefile
similarity index 100%
rename from lldb/test/API/tools/lldb-server/platform-process-connect/Makefile
rename to lldb/test/API/commands/platform/connect/Makefile

diff  --git a/lldb/test/API/tools/lldb-server/platform-process-connect/TestPlatformProcessConnect.py b/lldb/test/API/commands/platform/connect/TestPlatformConnect.py
similarity index 70%
rename from lldb/test/API/tools/lldb-server/platform-process-connect/TestPlatformProcessConnect.py
rename to lldb/test/API/commands/platform/connect/TestPlatformConnect.py
index 74b5f2e16eeb..cc9726ad303a 100644
--- a/lldb/test/API/tools/lldb-server/platform-process-connect/TestPlatformProcessConnect.py
+++ b/lldb/test/API/commands/platform/connect/TestPlatformConnect.py
@@ -5,14 +5,16 @@
 from lldbsuite.test.lldbtest import *
 from lldbsuite.test import lldbutil
 
-class TestPlatformProcessConnect(gdbremote_testcase.GdbRemoteTestCaseBase):
+class TestPlatformProcessConnect(TestBase):
     mydir = TestBase.compute_mydir(__file__)
+    NO_DEBUG_INFO_TESTCASE = True
 
     @skipIfRemote
     @expectedFailureAll(hostoslist=["windows"], triple='.*-android')
     @skipIfWindows # lldb-server does not terminate correctly
     @skipIfDarwin # lldb-server not found correctly
     @skipIf(oslist=["linux"], archs=["arm", "aarch64"])  # Fails randomly
+    @add_test_categories(["lldb-server"])
     def test_platform_process_connect(self):
         self.build()
 
@@ -35,28 +37,18 @@ def test_platform_process_connect(self):
 
         socket_id = lldbutil.wait_for_file_on_target(self, port_file)
 
-        self.dbg.SetAsync(False)
         new_platform = lldb.SBPlatform("remote-" + self.getPlatform())
         self.dbg.SetSelectedPlatform(new_platform)
 
         connect_url = "connect://[%s]:%s" % (hostname, socket_id)
+        self.runCmd("platform connect %s" % connect_url)
 
-        command = "platform connect %s" % (connect_url)
-        result = lldb.SBCommandReturnObject()
-        self.dbg.GetCommandInterpreter().HandleCommand(command, result)
-        self.assertTrue(
-            result.Succeeded(),
-            "platform process connect failed: %s" %
-            result.GetError())
+        lldbutil.run_break_set_by_symbol(self, "main")
+        process = self.process()
 
-        target = self.dbg.GetSelectedTarget()
-        process = target.GetProcess()
-        thread = process.GetThreadAtIndex(0)
-
-        breakpoint = target.BreakpointCreateByName("main")
         process.Continue()
 
-        frame = thread.GetFrameAtIndex(0)
+        frame = self.frame()
         self.assertEqual(frame.GetFunction().GetName(), "main")
         self.assertEqual(frame.FindVariable("argc").GetValueAsSigned(), 2)
         process.Continue()

diff  --git a/lldb/test/API/tools/lldb-server/platform-process-connect/main.cpp b/lldb/test/API/commands/platform/connect/main.cpp
similarity index 100%
rename from lldb/test/API/tools/lldb-server/platform-process-connect/main.cpp
rename to lldb/test/API/commands/platform/connect/main.cpp


        


More information about the lldb-commits mailing list