[Lldb-commits] [lldb] [lldb][test] Set target OS for API tests in case of remote testing (PR #96654)
Vladislav Dzhidzhoev via lldb-commits
lldb-commits at lists.llvm.org
Tue Jul 9 03:50:25 PDT 2024
https://github.com/dzhidzhoev updated https://github.com/llvm/llvm-project/pull/96654
>From b6e1aa283d46292556d0edac70eb05d6467497f2 Mon Sep 17 00:00:00 2001
From: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
Date: Wed, 19 Jun 2024 23:50:18 +0000
Subject: [PATCH] [lldb][test] Set target and host OS for API tests in case of
remote testing
Makefile.rules uses HOST_OS and OS variables for determining host and target
OSes for API tests compilation.
This commit starts moving the platform detection logic from Makefile to Python lldb
test suite.
When lldb's target is set to remote-linux, Makefile.rules script should be
executed with the target OS variable set to Linux.
This is useful for the case of Windows-to-Linux cross-testing.
---
.../Python/lldbsuite/test/lldbplatformutil.py | 25 +++++++++++++++++--
.../Python/lldbsuite/test/make/Makefile.rules | 5 +++-
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
index 21f2095db90f8..1e076061c6c43 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
@@ -92,11 +92,28 @@ def match_android_device(device_arch, valid_archs=None, valid_api_levels=None):
def finalize_build_dictionary(dictionary):
+ # Provide uname-like platform name
+ platform_name_to_uname = {
+ "linux": "Linux",
+ "netbsd": "NetBSD",
+ "freebsd": "FreeBSD",
+ "windows": "Windows_NT",
+ "macosx": "Darwin",
+ "darwin": "Darwin",
+ }
+
+ if dictionary is None:
+ dictionary = {}
if target_is_android():
- if dictionary is None:
- dictionary = {}
dictionary["OS"] = "Android"
dictionary["PIE"] = 1
+ elif platformIsDarwin():
+ dictionary["OS"] = "Darwin"
+ else:
+ dictionary["OS"] = platform_name_to_uname[getPlatform()]
+
+ dictionary["HOST_OS"] = platform_name_to_uname[getHostPlatform()]
+
return dictionary
@@ -113,6 +130,10 @@ def _get_platform_os(p):
platform = "openbsd"
return platform
+ # Triple is not available if we're not connected yet
+ if p.GetName() == "remote-linux":
+ return "linux"
+
return ""
diff --git a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
index bd8eea3d6f5a0..3d562285ce9cc 100644
--- a/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+++ b/lldb/packages/Python/lldbsuite/test/make/Makefile.rules
@@ -55,7 +55,10 @@ LLDB_BASE_DIR := $(THIS_FILE_DIR)/../../../../../
# When running tests from Visual Studio, the environment variable isn't
# inherited all the way down to the process spawned for make.
#----------------------------------------------------------------------
-HOST_OS := $(shell uname -s)
+ifeq "$(HOST_OS)" ""
+ HOST_OS := $(shell uname -s)
+endif
+
ifneq (,$(findstring windows32,$(HOST_OS)))
HOST_OS := Windows_NT
endif
More information about the lldb-commits
mailing list