Piotr Caban (@piotr) commented about dlls/msvcrt/tests/environ.c:
- 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");
It's better to avoid _putenv_s function since it may be unavailable in older versions of msvcrt. I have also used strcmp/wcscmp to compare environment variable value since this part is case sensitive. I have also added some white-space changes and cleaned up the environment after the test.
```suggestion:-17+0 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");
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("cAt=bar"), "Failed to set CAT=bar\n" ); ok( !_putenv("CAT=BAR"), "Failed to set CAT=BAR\n" ); ok( !strcmp(getenv("cAt"), "BAR"), "_putenv() must be case insensitive\n" );
ok( !_wputenv(L"cAt=bar"), "Failed to set CAT=bar\n" ); ok( !_wputenv_s(L"CAT=BAR"), "Failed to set CAT=BAR\n" ); ok( !wcscmp(_wgetenv(L"cAt"), L"BAR"), "_wputenv() must be case insensitive\n" );
_putenv("cat="); ```