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;