diff options
author | Habib Alamin <ha.alamin@gmail.com> | 2017-07-31 05:48:43 +0100 |
---|---|---|
committer | Tamar Christina <tamar@zhox.com> | 2017-07-31 05:50:52 +0100 |
commit | 49e334c8ea98cd5ecc81cfe10827538182815723 (patch) | |
tree | 498d439ff36af6981fb4626c3395a0af38bd96ce /libraries/base/tests | |
parent | f2c12c391e8c855b208bb9b99d85bbf56b9ebbae (diff) | |
download | haskell-49e334c8ea98cd5ecc81cfe10827538182815723.tar.gz |
Allow Windows to set blank environment variables
Test Plan: ./validate on harbormaster
Reviewers: austin, hvr, bgamari, erikd, Phyx
Reviewed By: Phyx
Subscribers: Phyx, rwbarton, thomie
GHC Trac Issues: #12494
Differential Revision: https://phabricator.haskell.org/D3726
Diffstat (limited to 'libraries/base/tests')
-rw-r--r-- | libraries/base/tests/T12494.hs | 36 | ||||
-rw-r--r-- | libraries/base/tests/T12494.stdout | 8 | ||||
-rw-r--r-- | libraries/base/tests/all.T | 1 |
3 files changed, 45 insertions, 0 deletions
diff --git a/libraries/base/tests/T12494.hs b/libraries/base/tests/T12494.hs new file mode 100644 index 0000000000..544f5ed908 --- /dev/null +++ b/libraries/base/tests/T12494.hs @@ -0,0 +1,36 @@ +import System.Environment.Blank + +main = do + let envVar = "AN_ENVIRONMENT_VARIABLE" + + valueBeforeSettingVariable <- getEnv envVar + print valueBeforeSettingVariable -- Nothing + + valueWithDefaultBeforeSetting <- getEnvDefault envVar "DEFAULT" + print valueWithDefaultBeforeSetting -- "DEFAULT" + + setEnv envVar "" False + + valueAfterSettingVariable <- getEnv envVar + print valueAfterSettingVariable -- Just "" + + valueWithDefaultAfterSetting <- getEnvDefault envVar "DEFAULT" + print valueWithDefaultAfterSetting -- "" + + valueFromGetEnvironment <- lookup envVar <$> getEnvironment + print valueFromGetEnvironment -- Just "" + + setEnv envVar "NO_OVERRIDE" False + + valueAfterSettingWithExistingValueAndOverrideFalse <- getEnv envVar + print valueAfterSettingWithExistingValueAndOverrideFalse -- Just "" + + setEnv envVar "OVERRIDE" True + + valueAfterSettingWithExistingValueAndOverrideTrue <- getEnv envVar + print valueAfterSettingWithExistingValueAndOverrideTrue -- Just "OVERRIDE" + + unsetEnv envVar + + valueAfterUnsettingVariable <- getEnv envVar + print valueAfterUnsettingVariable -- Nothing diff --git a/libraries/base/tests/T12494.stdout b/libraries/base/tests/T12494.stdout new file mode 100644 index 0000000000..a3b77cc271 --- /dev/null +++ b/libraries/base/tests/T12494.stdout @@ -0,0 +1,8 @@ +Nothing +"DEFAULT" +Just "" +"" +Just "" +Just "" +Just "OVERRIDE" +Nothing diff --git a/libraries/base/tests/all.T b/libraries/base/tests/all.T index b52a5d922b..d97d79afe3 100644 --- a/libraries/base/tests/all.T +++ b/libraries/base/tests/all.T @@ -201,6 +201,7 @@ test('T9848', test('T10149', normal, compile_and_run, ['']) test('T11334a', normal, compile_and_run, ['']) test('T11555', normal, compile_and_run, ['']) +test('T12494', normal, compile_and_run, ['']) test('T12852', when(opsys('mingw32'), skip), compile_and_run, ['']) test('lazySTexamples', normal, compile_and_run, ['']) test('T11760', normal, compile_and_run, ['-threaded -with-rtsopts=-N2']) |