[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 created this revision.
diazhector98 added a reviewer: wallace.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74636

Files:
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244748.
diazhector98 added a comment.

Add change


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244749.
diazhector98 added a comment.

Adding the test files


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,3 @@
+int main(int argc, char const *argv[]) {
+
+}
Index: 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,21 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings 
aren't working on build bots
+def test_completions(self):
+"""
+Tests the environment variables
+"""


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,3 @@
+int main(int argc, char const *argv[]) {
+
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,21 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_completions(self):
+"""
+Tests the environment variables
+"""
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244763.
diazhector98 added a comment.

Continued repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; 
env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
\ No newline at end of file
Index: 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings 
aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment 
variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
\ No newline at end of file


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
\ No newline at end of file
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
=

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244767.
diazhector98 added a comment.

Continue repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
\ No newline at end of file
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
\ No newline at end of file
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -605,6 +605,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -912,7 +914,8 @@
   initCommands=options.initCmds,
   preRunCommands=options.preRunCmds,
   stopCommands=options.stopCmds,
-  exitCommands=options.exitCmds)
+  exitCommands=options.exitCmds
+  inheritEnvironment=options.inheritEnvironment)
 
 if response['success']:
 if options.sourceBreakpoints:
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===
--

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244769.
diazhector98 added a comment.

Continue repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -605,6 +605,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -912,7 +914,8 @@
   initCommands=options.initCmds,
   preRunCommands=options.preRunCmds,
   stopCommands=options.stopCmds,
-  exitCommands=options.exitCmds)
+  exitCommands=options.exitCmds,
+  inheritEnvironment=options.inheritEnvironment)
 
 if response['success']:
 if options.sourceBreakpoints:
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvsc

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244770.
diazhector98 added a comment.

Continue repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   auto launchCommands = GetStrings(arguments, "launchCommands");
   g_vsc.stop_at_entry = GetBoolean(arguments, "stopOnEntry", false);
   const auto debuggerRoot = GetString(arguments, "debuggerRoot");
+  bool launchWithDebuggerEnvironment = GetBoolean(arguments, "inheritEnvironment", false);
+
 
   // This is a hack for loading DWARF in .o files on Mac where the .o files
   // in the debug map of the main executable have relative paths which require
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, shellExpan

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244771.
diazhector98 added a comment.

Comment


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the debugger environment when launching a process. Only works for binaries launched directly by LLDB.",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   auto launchCommands = GetStrings(arguments, "launchCommands");
   g_vsc.stop_at_entry = GetBoolean(arguments, "stopOnEntry", false);
   const auto debuggerRoot = GetString(arguments, "debuggerRoot");
+  bool launchWithDebuggerEnvironment = GetBoolean(arguments, "inheritEnvironment", false);
+
 
   // This is a hack for loading DWARF in .o files on Mac where the .o files
   // in the debug map of the main executable have relative paths which require
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +57

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244781.
diazhector98 added a comment.

Add Makefile


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the debugger environment when launching a process. Only works for binaries launched directly by LLDB.",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   auto launchCommands = GetStrings(arguments, "launchCommands");
   g_vsc.stop_at_entry = GetBoolean(arguments, "stopOnEntry", false);
   const auto debuggerRoot = GetString(arguments, "debuggerRoot");
+  bool launchWithDebuggerEnvironment = GetBoolean(arguments, "inheritEnvironment", false);
+
 
   // This is a hack for loading DWARF in .o files on Mac where the .o files
   // in the debug map of the main executable have relative paths which require
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,52 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+mydir = TestBase.compute_mydir(__file__)
+
+def checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+print(line)
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=True)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+self.checkIfPathIsSame(lines, path_env_variable)
+
+@skipIfWindows
+@skipIfDarwin
+def test_environment_variable_priority(self):
+"""
+   

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244782.
diazhector98 added a comment.

Removing print


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the debugger environment when launching a process. Only works for binaries launched directly by LLDB.",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   auto launchCommands = GetStrings(arguments, "launchCommands");
   g_vsc.stop_at_entry = GetBoolean(arguments, "stopOnEntry", false);
   const auto debuggerRoot = GetString(arguments, "debuggerRoot");
+  bool launchWithDebuggerEnvironment = GetBoolean(arguments, "inheritEnvironment", false);
+
 
   // This is a hack for loading DWARF in .o files on Mac where the .o files
   // in the debug map of the main executable have relative paths which require
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,51 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+mydir = TestBase.compute_mydir(__file__)
+
+def checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=True)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+self.checkIfPathIsSame(lines, path_env_variable)
+
+@skipIfWindows
+@skipIfDarwin
+def test_environment_variable_priority(self):
+"""
+Tests the environm

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244779.
diazhector98 added a comment.

Adding test for priority


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the debugger environment when launching a process. Only works for binaries launched directly by LLDB.",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   auto launchCommands = GetStrings(arguments, "launchCommands");
   g_vsc.stop_at_entry = GetBoolean(arguments, "stopOnEntry", false);
   const auto debuggerRoot = GetString(arguments, "debuggerRoot");
+  bool launchWithDebuggerEnvironment = GetBoolean(arguments, "inheritEnvironment", false);
+
 
   // This is a hack for loading DWARF in .o files on Mac where the .o files
   // in the debug map of the main executable have relative paths which require
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+char** env_var_pointer = environ;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer) {
+printf("%s\n", env_variable);
+}
+return 0;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,52 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+mydir = TestBase.compute_mydir(__file__)
+
+def checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+print(line)
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=True)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+self.checkIfPathIsSame(lines, path_env_variable)
+
+@skipIfWindows
+@skipIfDarwin
+def test_environment_variable_priority(self):
+"""
+Tests the environment variables priority
+ 

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Jonas Devlieghere via Phabricator via lldb-commits
JDevlieghere added a comment.

Hey Héctor, this is generating a lot of traffic on the lldb-commits mailing 
list. Phabricator is not really designed to iterate quickly. It's not really a 
problem per se, but I figured I'd let you know.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits