From: Zsolt Vadasz zsolt_vadasz@protonmail.com
--- dlls/msvcrt/tests/environ.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/dlls/msvcrt/tests/environ.c b/dlls/msvcrt/tests/environ.c index aab14a422b3..777bc447b66 100644 --- a/dlls/msvcrt/tests/environ.c +++ b/dlls/msvcrt/tests/environ.c @@ -421,6 +421,28 @@ static void test_child_env(char** argv) free( env ); }
+static void test_case_insensitive(void) +{ + const char *uppercase_env = getenv("APPDATA"); + const char *lowercase_env = getenv("appdata"); + const wchar_t *uppercase_wenv = _wgetenv(L"APPDATA"); + const wchar_t *lowercase_wenv = _wgetenv(L"appdata"); + char *bar; + wchar_t *foo; + ok (uppercase_env == lowercase_env, "getenv() must be case insensitive, %p should be %p\n", + lowercase_env, uppercase_env); + ok (uppercase_wenv == lowercase_wenv, "_wgetenv() must be case insensitive, %p should be %p\n", + lowercase_wenv, uppercase_wenv); + ok (!_putenv_s("fOo", "bar"), "Failed to set FOO=bar\n"); + ok (!p_wputenv_s(L"BaR", L"foo"), "Failed to set BAR=foo\n"); + ok (!_putenv_s("FOO", "BAR"), "Failed to set FOO=BAR\n"); + ok (!p_wputenv_s(L"BAR", L"FOO"), "Failed to set BAR=FOO\n"); + foo = _wgetenv(L"BaR"); + bar = getenv("fOo"); + ok (!strnicmp(bar, "BAR", strlen(bar)), "_putenv_s() must be case insensitive\n"); + ok (!_wcsnicmp(foo, L"FOO", wcslen(foo)), "_wputenv_s() must be case insensitive\n"); +} + START_TEST(environ) { char **argv; @@ -443,4 +465,5 @@ START_TEST(environ) test_environment_manipulation(); test_child_env(argv); test_system(); + test_case_insensitive(); }