diff options
author | Ben Dunbobbin <bd1976llvm@gmail.com> | 2017-08-18 16:55:44 +0000 |
---|---|---|
committer | Ben Dunbobbin <bd1976llvm@gmail.com> | 2017-08-18 16:55:44 +0000 |
commit | ac6a5aab45ef721e92a28e1b0515aa2a514d740b (patch) | |
tree | 9002927531e70abfdf8211a04ef548c80314d36c /llvm/unittests/Support/ProcessTest.cpp | |
parent | 849f20e4a2f3ee41e2527413674d8da44a8512a2 (diff) | |
download | bcm5719-llvm-ac6a5aab45ef721e92a28e1b0515aa2a514d740b.tar.gz bcm5719-llvm-ac6a5aab45ef721e92a28e1b0515aa2a514d740b.zip |
[Support] env vars with empty values on windows
An environment variable can be in one of three states:
1. undefined.
2. defined with a non-empty value.
3. defined but with an empty value.
The windows implementation did not support case 3
(it was not handling errors). The Linux implementation
is already correct.
Differential Revision: https://reviews.llvm.org/D36394
llvm-svn: 311174
Diffstat (limited to 'llvm/unittests/Support/ProcessTest.cpp')
-rw-r--r-- | llvm/unittests/Support/ProcessTest.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/unittests/Support/ProcessTest.cpp b/llvm/unittests/Support/ProcessTest.cpp index 298a0a37323..37587bf4799 100644 --- a/llvm/unittests/Support/ProcessTest.cpp +++ b/llvm/unittests/Support/ProcessTest.cpp @@ -42,10 +42,18 @@ TEST(ProcessTest, None) { Optional<std::string> val( Process::GetEnv("__LLVM_TEST_ENVIRON_NO_SUCH_VAR__")); EXPECT_FALSE(val.hasValue()); -} +} #endif #ifdef LLVM_ON_WIN32 + +TEST(ProcessTest, EmptyVal) { + SetEnvironmentVariableA("__LLVM_TEST_ENVIRON_VAR__", ""); + Optional<std::string> val(Process::GetEnv("__LLVM_TEST_ENVIRON_VAR__")); + EXPECT_TRUE(val.hasValue()); + EXPECT_STREQ("", val->c_str()); +} + TEST(ProcessTest, Wchar) { SetEnvironmentVariableW(L"__LLVM_TEST_ENVIRON_VAR__", L"abcdefghijklmnopqrs"); Optional<std::string> val(Process::GetEnv("__LLVM_TEST_ENVIRON_VAR__")); |