mirror of
https://github.com/intel/llvm.git
synced 2026-01-13 19:08:21 +08:00
[lldb] Inherit host environment when running shell commands
Summary: On most hosts we were running shell commands with an empty environment. The only exception was windows, which was inheriting the host enviroment mostly by accident. Running the commands in an empty environment does not sound like a sensible default, so this patch changes Host::RunShellCommand to inherit the host environment. This impacts both commands run via SBPlatform::Run (in case of host platforms), as well as the "platform shell" CLI command. Reviewers: jingham, friss Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77123
This commit is contained in:
@@ -501,6 +501,8 @@ Status Host::RunShellCommand(const Args &args, const FileSpec &working_dir,
|
||||
launch_info.SetArguments(args, first_arg_is_executable);
|
||||
}
|
||||
|
||||
launch_info.GetEnvironment() = Host::GetEnvironment();
|
||||
|
||||
if (working_dir)
|
||||
launch_info.SetWorkingDirectory(working_dir);
|
||||
llvm::SmallString<64> output_file_path;
|
||||
|
||||
3
lldb/test/API/python_api/sbplatform/Makefile
Normal file
3
lldb/test/API/python_api/sbplatform/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
CXX_SOURCES := main.cpp
|
||||
|
||||
include Makefile.rules
|
||||
22
lldb/test/API/python_api/sbplatform/TestSBPlatform.py
Normal file
22
lldb/test/API/python_api/sbplatform/TestSBPlatform.py
Normal file
@@ -0,0 +1,22 @@
|
||||
"""Test the SBPlatform APIs."""
|
||||
|
||||
from lldbsuite.test.decorators import *
|
||||
from lldbsuite.test.lldbtest import *
|
||||
|
||||
class SBPlatformAPICase(TestBase):
|
||||
|
||||
mydir = TestBase.compute_mydir(__file__)
|
||||
NO_DEBUG_INFO_TESTCASE = True
|
||||
|
||||
@add_test_categories(['pyapi'])
|
||||
def test_run(self):
|
||||
self.build()
|
||||
plat = lldb.SBPlatform.GetHostPlatform()
|
||||
|
||||
os.environ["MY_TEST_ENV_VAR"]="SBPlatformAPICase.test_run"
|
||||
def cleanup():
|
||||
del os.environ["MY_TEST_ENV_VAR"]
|
||||
self.addTearDownHook(cleanup)
|
||||
cmd = lldb.SBPlatformShellCommand(self.getBuildArtifact("a.out"))
|
||||
self.assertTrue(plat.Run(cmd).Success())
|
||||
self.assertIn("MY_TEST_ENV_VAR=SBPlatformAPICase.test_run", cmd.GetOutput())
|
||||
8
lldb/test/API/python_api/sbplatform/main.cpp
Normal file
8
lldb/test/API/python_api/sbplatform/main.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
|
||||
int main() {
|
||||
printf("MY_TEST_ENV_VAR=%s\n", getenv("MY_TEST_ENV_VAR"));
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user