[Lldb-commits] [lldb] be09f83 - Revert "[lldb/test] Make category-skipping logic "platform"-independent"

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Tue Mar 15 08:25:41 PDT 2022


Author: Pavel Labath
Date: 2022-03-15T16:23:43+01:00
New Revision: be09f83760ebe7cf698746d5504976ad82679815

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

LOG: Revert "[lldb/test] Make category-skipping logic "platform"-independent"

This reverts commit dddf4ce034a8e06cc1351492dceece3fa2344c14. It breaks
a couple of tests on macos.

Added: 
    

Modified: 
    lldb/packages/Python/lldbsuite/test/dotest.py
    lldb/packages/Python/lldbsuite/test/lldbplatformutil.py

Removed: 
    


################################################################################
diff  --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py
index 2d8bf5311a699..ce01146055b2c 100644
--- a/lldb/packages/Python/lldbsuite/test/dotest.py
+++ b/lldb/packages/Python/lldbsuite/test/dotest.py
@@ -822,9 +822,9 @@ def checkObjcSupport():
         configuration.skip_categories.append("objc")
 
 def checkDebugInfoSupport():
-    from lldbsuite.test import lldbplatformutil
+    import lldb
 
-    platform = lldbplatformutil.getPlatform()
+    platform = lldb.selected_platform.GetTriple().split('-')[2]
     compiler = configuration.compiler
     for cat in test_categories.debug_info_categories:
         if cat in configuration.categories_list:
@@ -840,14 +840,14 @@ def checkDebugServerSupport():
     skip_msg = "Skipping %s tests, as they are not compatible with remote testing on this platform"
     if lldbplatformutil.platformIsDarwin():
         configuration.skip_categories.append("llgs")
-        if configuration.lldb_platform_name:
+        if lldb.remote_platform:
             # <rdar://problem/34539270>
             configuration.skip_categories.append("debugserver")
             if configuration.verbose:
                 print(skip_msg%"debugserver");
     else:
         configuration.skip_categories.append("debugserver")
-        if configuration.lldb_platform_name and lldbplatformutil.getPlatform() == "windows":
+        if lldb.remote_platform and lldbplatformutil.getPlatform() == "windows":
             configuration.skip_categories.append("llgs")
             if configuration.verbose:
                 print(skip_msg%"lldb-server");
@@ -881,16 +881,7 @@ def run_suite():
     import lldb
     lldb.SBDebugger.Initialize()
 
-    checkLibcxxSupport()
-    checkLibstdcxxSupport()
-    checkWatchpointSupport()
-    checkDebugInfoSupport()
-    checkDebugServerSupport()
-    checkObjcSupport()
-    checkForkVForkSupport()
-
     # Use host platform by default.
-    lldb.remote_platform = None
     lldb.selected_platform = lldb.SBPlatform.GetHostPlatform()
 
     # Now we can also import lldbutil
@@ -901,7 +892,6 @@ def run_suite():
               (configuration.lldb_platform_name))
         lldb.remote_platform = lldb.SBPlatform(
             configuration.lldb_platform_name)
-        lldb.selected_platform = lldb.remote_platform
         if not lldb.remote_platform.IsValid():
             print(
                 "error: unable to create the LLDB platform named '%s'." %
@@ -948,6 +938,14 @@ def run_suite():
     # Note that it's not dotest's job to clean this directory.
     lldbutil.mkdir_p(configuration.test_build_dir)
 
+    checkLibcxxSupport()
+    checkLibstdcxxSupport()
+    checkWatchpointSupport()
+    checkDebugInfoSupport()
+    checkDebugServerSupport()
+    checkObjcSupport()
+    checkForkVForkSupport()
+
     print("Skipping the following test categories: {}".format(configuration.skip_categories))
 
     for testdir in configuration.testdirs:

diff  --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
index 6b93dcf38bbe6..94b133589dcc5 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
@@ -57,7 +57,12 @@ def _run_adb_command(cmd, device_id):
 
 
 def target_is_android():
-    return configuration.lldb_platform_name == "remote-android"
+    if not hasattr(target_is_android, 'result'):
+        triple = lldb.selected_platform.GetTriple()
+        match = re.match(".*-.*-.*-android", triple)
+        target_is_android.result = match is not None
+    return target_is_android.result
+
 
 def android_device_api():
     if not hasattr(android_device_api, 'result'):
@@ -134,16 +139,18 @@ def getPlatform():
             platform = 'ios'
         return platform
 
-    platform = configuration.lldb_platform_name
-    if platform is None:
-        platform = "host"
-    if platform == "qemu-user":
-        platform = "host"
-    if platform == "host":
-        return getHostPlatform()
-    if platform.startswith("remote-"):
-        return platform[7:]
-    return platform
+    # Use the triple to determine the platform if set.
+    triple = lldb.selected_platform.GetTriple()
+    if triple:
+        platform = triple.split('-')[2]
+        if platform.startswith('freebsd'):
+            platform = 'freebsd'
+        elif platform.startswith('netbsd'):
+            platform = 'netbsd'
+        return platform
+
+    # It still might be an unconnected remote platform.
+    return ''
 
 
 def platformIsDarwin():


        


More information about the lldb-commits mailing list