Commit d1dc7e5b authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

kernel32: Fix test failures on NT4.

parent 705cdc88
...@@ -245,13 +245,14 @@ static void test_ExpandEnvironmentStringsA(void) ...@@ -245,13 +245,14 @@ static void test_ExpandEnvironmentStringsA(void)
SetEnvironmentVariableA("EnvVar", value); SetEnvironmentVariableA("EnvVar", value);
ret_size = ExpandEnvironmentStringsA(NULL, buf1, sizeof(buf1)); ret_size = ExpandEnvironmentStringsA(NULL, buf1, sizeof(buf1));
ok(ret_size == 1 || ret_size == 0 /* Win9x */, ok(ret_size == 1 || ret_size == 0 /* Win9x */ || ret_size == 2 /* NT4 */,
"ExpandEnvironmentStrings returned %d\n", ret_size); "ExpandEnvironmentStrings returned %d\n", ret_size);
/* Try to get the required buffer size 'the natural way' */ /* Try to get the required buffer size 'the natural way' */
strcpy(buf, "%EnvVar%"); strcpy(buf, "%EnvVar%");
ret_size = ExpandEnvironmentStringsA(buf, NULL, 0); ret_size = ExpandEnvironmentStringsA(buf, NULL, 0);
ok(ret_size == strlen(value)+1 || /* win98 */ ok(ret_size == strlen(value)+1 || /* win98 */
ret_size == (strlen(value)+1)*2 || /* NT4 */
ret_size == strlen(value)+2 || /* win2k, XP, win2k3 */ ret_size == strlen(value)+2 || /* win2k, XP, win2k3 */
ret_size == 0 /* Win95 */, ret_size == 0 /* Win95 */,
"ExpandEnvironmentStrings returned %d instead of %d, %d or %d\n", "ExpandEnvironmentStrings returned %d instead of %d, %d or %d\n",
...@@ -260,21 +261,24 @@ static void test_ExpandEnvironmentStringsA(void) ...@@ -260,21 +261,24 @@ static void test_ExpandEnvironmentStringsA(void)
/* Again, side-stepping the Win95 bug */ /* Again, side-stepping the Win95 bug */
ret_size = ExpandEnvironmentStringsA(buf, buf1, 0); ret_size = ExpandEnvironmentStringsA(buf, buf1, 0);
/* v5.1.2600.2945 (XP SP2) returns len + 2 here! */ /* v5.1.2600.2945 (XP SP2) returns len + 2 here! */
ok(ret_size == strlen(value)+1 || ret_size == strlen(value)+2, ok(ret_size == strlen(value)+1 || ret_size == strlen(value)+2 ||
ret_size == (strlen(value)+1)*2 /* NT4 */,
"ExpandEnvironmentStrings returned %d instead of %d\n", "ExpandEnvironmentStrings returned %d instead of %d\n",
ret_size, lstrlenA(value)+1); ret_size, lstrlenA(value)+1);
/* Try with a buffer that's too small */ /* Try with a buffer that's too small */
ret_size = ExpandEnvironmentStringsA(buf, buf1, 12); ret_size = ExpandEnvironmentStringsA(buf, buf1, 12);
/* v5.1.2600.2945 (XP SP2) returns len + 2 here! */ /* v5.1.2600.2945 (XP SP2) returns len + 2 here! */
ok(ret_size == strlen(value)+1 || ret_size == strlen(value)+2, ok(ret_size == strlen(value)+1 || ret_size == strlen(value)+2 ||
ret_size == (strlen(value)+1)*2 /* NT4 */,
"ExpandEnvironmentStrings returned %d instead of %d\n", "ExpandEnvironmentStrings returned %d instead of %d\n",
ret_size, lstrlenA(value)+1); ret_size, lstrlenA(value)+1);
/* Try with a buffer of just the right size */ /* Try with a buffer of just the right size */
/* v5.1.2600.2945 (XP SP2) needs and returns len + 2 here! */ /* v5.1.2600.2945 (XP SP2) needs and returns len + 2 here! */
ret_size = ExpandEnvironmentStringsA(buf, buf1, ret_size); ret_size = ExpandEnvironmentStringsA(buf, buf1, ret_size);
ok(ret_size == strlen(value)+1 || ret_size == strlen(value)+2, ok(ret_size == strlen(value)+1 || ret_size == strlen(value)+2 ||
ret_size == strlen(value)*2 /* NT4 */,
"ExpandEnvironmentStrings returned %d instead of %d\n", "ExpandEnvironmentStrings returned %d instead of %d\n",
ret_size, lstrlenA(value)+1); ret_size, lstrlenA(value)+1);
ok(!strcmp(buf1, value), "ExpandEnvironmentStrings returned [%s]\n", buf1); ok(!strcmp(buf1, value), "ExpandEnvironmentStrings returned [%s]\n", buf1);
...@@ -282,7 +286,9 @@ static void test_ExpandEnvironmentStringsA(void) ...@@ -282,7 +286,9 @@ static void test_ExpandEnvironmentStringsA(void)
/* Try with an unset environment variable */ /* Try with an unset environment variable */
strcpy(buf, not_an_env_var); strcpy(buf, not_an_env_var);
ret_size = ExpandEnvironmentStringsA(buf, buf1, sizeof(buf1)); ret_size = ExpandEnvironmentStringsA(buf, buf1, sizeof(buf1));
ok(ret_size == strlen(not_an_env_var)+1, "ExpandEnvironmentStrings returned %d instead of %d\n", ret_size, lstrlenA(value)+1); ok(ret_size == strlen(not_an_env_var)+1 ||
ret_size == (strlen(not_an_env_var)+1)*2 /* NT4 */,
"ExpandEnvironmentStrings returned %d instead of %d\n", ret_size, lstrlenA(not_an_env_var)+1);
ok(!strcmp(buf1, not_an_env_var), "ExpandEnvironmentStrings returned [%s]\n", buf1); ok(!strcmp(buf1, not_an_env_var), "ExpandEnvironmentStrings returned [%s]\n", buf1);
/* test a large destination size */ /* test a large destination size */
...@@ -303,7 +309,9 @@ static void test_ExpandEnvironmentStringsA(void) ...@@ -303,7 +309,9 @@ static void test_ExpandEnvironmentStringsA(void)
strcpy(buf, "Indirect-%IndirectVar%-Indirect"); strcpy(buf, "Indirect-%IndirectVar%-Indirect");
strcpy(buf2, "Indirect-Foo%EnvVar%Bar-Indirect"); strcpy(buf2, "Indirect-Foo%EnvVar%Bar-Indirect");
ret_size = ExpandEnvironmentStringsA(buf, buf1, sizeof(buf1)); ret_size = ExpandEnvironmentStringsA(buf, buf1, sizeof(buf1));
ok(ret_size == strlen(buf2)+1, "ExpandEnvironmentStrings returned %d instead of %d\n", ret_size, lstrlen(buf2)+1); ok(ret_size == strlen(buf2)+1 ||
ret_size == (strlen(buf2)+1)*2 /* NT4 */,
"ExpandEnvironmentStrings returned %d instead of %d\n", ret_size, lstrlen(buf2)+1);
ok(!strcmp(buf1, buf2), "ExpandEnvironmentStrings returned [%s]\n", buf1); ok(!strcmp(buf1, buf2), "ExpandEnvironmentStrings returned [%s]\n", buf1);
SetEnvironmentVariableA("IndirectVar", NULL); SetEnvironmentVariableA("IndirectVar", NULL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment