added environment variable-related Args gtests
Also fixed up a couple misbehaving functions. It is perfectly
legal to have env vars with no values (i.e. the '=' and following
need not be present).
llvm-svn: 282171
diff --git a/lldb/source/Interpreter/Args.cpp b/lldb/source/Interpreter/Args.cpp
index 36ea78c..25bcac8 100644
--- a/lldb/source/Interpreter/Args.cpp
+++ b/lldb/source/Interpreter/Args.cpp
@@ -976,13 +976,15 @@
void Args::AddOrReplaceEnvironmentVariable(llvm::StringRef env_var_name,
llvm::StringRef new_value) {
- if (env_var_name.empty() || new_value.empty())
+ if (env_var_name.empty())
return;
// Build the new entry.
std::string var_string(env_var_name);
- var_string += "=";
- var_string += new_value;
+ if (!new_value.empty()) {
+ var_string += "=";
+ var_string += new_value;
+ }
size_t index = 0;
if (ContainsEnvironmentVariable(env_var_name, &index)) {
@@ -1006,7 +1008,7 @@
llvm::StringRef name, value;
std::tie(name, value) = arg_value.split('=');
- if (name == env_var_name && !value.empty()) {
+ if (name == env_var_name) {
if (argument_index)
*argument_index = i;
return true;