diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py --- a/lldb/packages/Python/lldbsuite/test/dotest.py +++ b/lldb/packages/Python/lldbsuite/test/dotest.py @@ -822,9 +822,9 @@ configuration.skip_categories.append("objc") def checkDebugInfoSupport(): - import lldb + from lldbsuite.test import lldbplatformutil - platform = lldb.selected_platform.GetTriple().split('-')[2] + platform = lldbplatformutil.getPlatform() compiler = configuration.compiler for cat in test_categories.debug_info_categories: if cat in configuration.categories_list: @@ -840,14 +840,14 @@ 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 lldb.remote_platform: + if configuration.lldb_platform_name: # configuration.skip_categories.append("debugserver") if configuration.verbose: print(skip_msg%"debugserver"); else: configuration.skip_categories.append("debugserver") - if lldb.remote_platform and lldbplatformutil.getPlatform() == "windows": + if configuration.lldb_platform_name and lldbplatformutil.getPlatform() == "windows": configuration.skip_categories.append("llgs") if configuration.verbose: print(skip_msg%"lldb-server"); @@ -881,7 +881,16 @@ 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 @@ -892,6 +901,7 @@ (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'." % @@ -938,14 +948,6 @@ # 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 --- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py @@ -57,12 +57,7 @@ def target_is_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 - + return configuration.lldb_platform_name == "remote-android" def android_device_api(): if not hasattr(android_device_api, 'result'): @@ -139,18 +134,16 @@ platform = 'ios' 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 '' + 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 def platformIsDarwin():