30#define ok_w(res, format, szString) \
32 WideCharToMultiByte(CP_ACP, 0, szString, -1, string, MAX_PATH, NULL, NULL); \
33 ok(res, format, string);
49 "GetUserProfileDirectoryA");
65 if (pGetUserProfileDirectoryA ==
NULL)
67 skip(
"Skipping USERPROFILE check\n");
74 ok(NoErr,
"Failed to get user profile dir, error %lu\n",
GetLastError());
79 "Failed to retrieve environment variable USERPROFILE, error %lu\n",
82 "USERPROFILE env var %s doesn't match GetUserProfileDirectory %s\n",
86 skip(
"Skipping USERPROFILE check, can't get user profile dir\n");
96 static const char name[] =
"SomeWildName";
97 static const char name_cased[] =
"sOMEwILDnAME";
98 static const char value[] =
"SomeWildValue";
102 "unexpected error in SetEnvironmentVariableA, GetLastError=%ld\n",
109 "should return length with terminating 0 ret_size=%ld\n", ret_size);
111 "should not fail with zero size but GetLastError=%ld\n",
GetLastError());
115 ok(
lstrcmpA(
buf,
"foo") == 0,
"should not touch the buffer\n");
117 "should return length with terminating 0 ret_size=%ld\n", ret_size);
123 "should return length without terminating 0 ret_size=%ld\n", ret_size);
129 "should return length without terminating 0 ret_size=%ld\n", ret_size);
133 ok(
ret ==
TRUE,
"should erase existing variable\n");
138 ok(
lstrcmpA(
buf,
"foo") == 0,
"should not touch the buffer\n");
140 "should not find variable but ret_size=%ld GetLastError=%ld\n",
146 "unexpected error in SetEnvironmentVariableA, GetLastError=%ld\n",
153 "should return length without terminating 0 ret_size=%ld\n", ret_size);
157 "should not fail with empty value but GetLastError=%ld\n",
GetLastError());
165 "%s should be set to \"\" (NT) or removed (Win9x) but ret_size=%ld GetLastError=%ld and buf=%s\n",
172 "should return 1 for empty string but ret_size=%ld GetLastError=%ld\n",
176 "should not fail with zero size but GetLastError=%ld\n",
GetLastError());
182 "should not find variable but ret_size=%ld GetLastError=%ld\n",
188 "should not find variable but ret_size=%ld GetLastError=%ld\n",
194 "should not find variable but ret_size=%ld GetLastError=%ld\n",
203 static const WCHAR name[] = {
'S',
'o',
'm',
'e',
'W',
'i',
'l',
'd',
'N',
'a',
'm',
'e',0};
204 static const WCHAR value[] = {
'S',
'o',
'm',
'e',
'W',
'i',
'l',
'd',
'V',
'a',
'l',
'u',
'e',0};
205 static const WCHAR name_cased[] = {
's',
'O',
'M',
'E',
'w',
'I',
'L',
'D',
'n',
'A',
'M',
'E',0};
206 static const WCHAR empty_strW[] = { 0 };
207 static const WCHAR fooW[] = {
'f',
'o',
'o',0};
213 win_skip(
"SetEnvironmentVariableW is not implemented\n");
217 "unexpected error in SetEnvironmentVariableW, GetLastError=%ld\n",
224 "should return length with terminating 0 ret_size=%ld\n",
227 "should not fail with zero size but GetLastError=%ld\n",
GetLastError());
233 "Expected untouched or empty buffer, got \"%s\"\n",
buf);
236 "should return length with terminating 0 ret_size=%ld\n", ret_size);
242 "should return length without terminating 0 ret_size=%ld\n", ret_size);
248 "should return length without terminating 0 ret_size=%ld\n", ret_size);
252 ok(
ret ==
TRUE,
"should erase existing variable\n");
259 "should not find variable but ret_size=%ld GetLastError=%ld\n",
265 "unexpected error in SetEnvironmentVariableW, GetLastError=%ld\n",
272 "should return length without terminating 0 ret_size=%ld\n", ret_size);
283 "should be set to \"\" (NT) or removed (Win9x) but ret_size=%ld GetLastError=%ld\n",
285 ok(
lstrcmpW(
buf, empty_strW) == 0,
"should copy an empty string\n");
291 "should return 1 for empty string but ret_size=%ld GetLastError=%ld\n",
295 "should not fail with zero size but GetLastError=%ld\n",
GetLastError());
301 "should not find variable but ret_size=%ld GetLastError=%ld\n",
309 "should not find variable but ret_size=%ld GetLastError=%ld\n",
315 "should fail with NULL, NULL but ret=%d and GetLastError=%ld\n",
322 static const WCHAR nameW[] = {0x540D, 0x524D, 0};
323 static const char name[] =
"\x96\xBC\x91\x4F";
325 static const char value[] =
"\x92\x6C";
333 skip(
"GetACP() == %d, need 932 for A/W tests\n",
GetACP());
391 const WCHAR *expected_str;
393 int expected_count_out;
396 {
L"Long long value",
L"abcdefghijklmnopqrstuv", 0, 16 },
397 {
L"Long long value",
L"abcdefghijklmnopqrstuv", 1, 16 },
398 {
L"Long long value",
L"Lbcdefghijklmnopqrstuv", 2, 16 },
399 {
L"Long long value",
L"Locdefghijklmnopqrstuv", 3, 16 },
400 {
L"Long long value",
L"Long long valuopqrstuv", 15, 16 },
401 {
L"Long long value",
L"Long long value", 16, 16 },
402 {
L"Long long value",
L"Long long value", 17, 16 },
403 {
L"%TVAR% long long",
L"abcdefghijklmnopqrstuv", 0, 15 },
405 {
L"%TVAR% long long",
L"", 1, 15 },
406 {
L"%TVAR% long long",
L"", 2, 15 },
407 {
L"%TVAR% long long",
L"", 4, 15 },
409 {
L"%TVAR% long long",
L"WINE", 5, 15 },
410 {
L"%TVAR% long long",
L"WINE fghijklmnopqrstuv", 6, 15 },
411 {
L"%TVAR% long long",
L"WINE lghijklmnopqrstuv", 7, 15 },
412 {
L"%TVAR% long long",
L"WINE long long", 15, 15 },
413 {
L"%TVAR% long long",
L"WINE long long", 16, 15 },
415 {
L"%TVAR%%TVAR% long",
L"", 4, 14 },
417 {
L"%TVAR%%TVAR% long",
L"WINE", 5, 14 },
418 {
L"%TVAR%%TVAR% long",
L"WINE", 6, 14 },
420 {
L"%TVAR%%TVAR% long",
L"WINE", 8, 14 },
422 {
L"%TVAR%%TVAR% long",
L"WINEWINE", 9, 14 },
423 {
L"%TVAR%%TVAR% long",
L"WINEWINE jklmnopqrstuv", 10, 14 },
424 {
L"%TVAR%%TVAR% long",
L"WINEWINE long", 14, 14 },
425 {
L"%TVAR%%TVAR% long",
L"WINEWINE long", 15, 14 },
426 {
L"%TVAR% %TVAR% long",
L"WINE", 5, 15 },
428 {
L"%TVAR% %TVAR% long",
L"WINE ", 6, 15 },
429 {
L"%TVAR% %TVAR% long",
L"WINE ", 8, 15 },
430 {
L"%TVAR% %TVAR% long",
L"WINE ", 9, 15 },
432 {
L"%TVAR% %TVAR% long",
L"WINE WINE", 10, 15 },
433 {
L"%TVAR% %TVAR% long",
L"WINE WINE klmnopqrstuv", 11, 15 },
434 {
L"%TVAR% %TVAR% long",
L"WINE WINE llmnopqrstuv", 12, 15 },
435 {
L"%TVAR% %TVAR% long",
L"WINE WINE lonnopqrstuv", 14, 15 },
436 {
L"%TVAR% %TVAR% long",
L"WINE WINE long", 15, 15 },
437 {
L"%TVAR% %TVAR% long",
L"WINE WINE long", 16, 15 },
438 {
L"%TVAR2% long long",
L"abcdefghijklmnopqrstuv", 1, 18 },
439 {
L"%TVAR2% long long",
L"%bcdefghijklmnopqrstuv", 2, 18 },
440 {
L"%TVAR2% long long",
L"%TVdefghijklmnopqrstuv", 4, 18 },
441 {
L"%TVAR2% long long",
L"%TVAR2ghijklmnopqrstuv", 7, 18 },
442 {
L"%TVAR2% long long",
L"%TVAR2%hijklmnopqrstuv", 8, 18 },
443 {
L"%TVAR2% long long",
L"%TVAR2% ijklmnopqrstuv", 9, 18 },
444 {
L"%TVAR2% long long",
L"%TVAR2% ljklmnopqrstuv", 10, 18 },
445 {
L"%TVAR2% long long",
L"%TVAR2% long long", 18, 18 },
446 {
L"%TVAR2% long long",
L"%TVAR2% long long", 19, 18 },
447 {
L"%TVAR long long",
L"abcdefghijklmnopqrstuv", 1, 16 },
448 {
L"%TVAR long long",
L"%bcdefghijklmnopqrstuv", 2, 16 },
449 {
L"%TVAR long long",
L"%Tcdefghijklmnopqrstuv", 3, 16 },
450 {
L"%TVAR long long",
L"%TVAR long lonopqrstuv", 15, 16 },
451 {
L"%TVAR long long",
L"%TVAR long long", 16, 16 },
452 {
L"%TVAR long long",
L"%TVAR long long", 17, 16 },
470 ok(
ret ==
test->expected_count_out,
"Test %d: got %lu\n",
i,
ret);
481 const char*
value=
"Long long value";
482 const char* not_an_env_var=
"%NotAnEnvVar%";
483 char buf[256], buf1[256], buf2[0x8000];
484 DWORD ret_size, ret_size1;
491 const char *expected_str;
493 int expected_count_out;
496 {
"Long long value",
"", 0, 17 },
497 {
"Long long value",
"", 1, 17 },
498 {
"Long long value",
"", 2, 17 },
499 {
"Long long value",
"", 3, 17 },
500 {
"Long long value",
"", 15, 17 },
501 {
"Long long value",
"", 16, 17 },
502 {
"Long long value",
"Long long value", 17, 16 },
503 {
"%TVAR% long long",
"", 0, 16 },
504 {
"%TVAR% long long",
"", 1, 16 },
505 {
"%TVAR% long long",
"", 2, 16 },
506 {
"%TVAR% long long",
"", 4, 16 },
507 {
"%TVAR% long long",
"", 5, 16 },
508 {
"%TVAR% long long",
"", 6, 16 },
509 {
"%TVAR% long long",
"", 7, 16 },
510 {
"%TVAR% long long",
"", 15, 16 },
511 {
"%TVAR% long long",
"WINE long long", 16, 15 },
512 {
"%TVAR%%TVAR% long",
"", 4, 15 },
513 {
"%TVAR%%TVAR% long",
"", 5, 15 },
514 {
"%TVAR%%TVAR% long",
"", 6, 15 },
515 {
"%TVAR%%TVAR% long",
"", 8, 15 },
516 {
"%TVAR%%TVAR% long",
"", 9, 15 },
517 {
"%TVAR%%TVAR% long",
"", 10, 15 },
518 {
"%TVAR%%TVAR% long",
"", 14, 15 },
519 {
"%TVAR%%TVAR% long",
"WINEWINE long", 15, 14 },
520 {
"%TVAR% %TVAR% long",
"", 5, 16 },
521 {
"%TVAR% %TVAR% long",
"", 6, 16 },
522 {
"%TVAR% %TVAR% long",
"", 8, 16 },
523 {
"%TVAR% %TVAR% long",
"", 9, 16 },
524 {
"%TVAR% %TVAR% long",
"", 10, 16 },
525 {
"%TVAR% %TVAR% long",
"", 11, 16 },
526 {
"%TVAR% %TVAR% long",
"", 12, 16 },
527 {
"%TVAR% %TVAR% long",
"", 14, 16 },
528 {
"%TVAR% %TVAR% long",
"", 15, 16 },
529 {
"%TVAR% %TVAR% long",
"WINE WINE long", 16, 15 },
530 {
"%TVAR2% long long",
"", 1, 19 },
531 {
"%TVAR2% long long",
"", 2, 19 },
532 {
"%TVAR2% long long",
"", 4, 19 },
533 {
"%TVAR2% long long",
"", 7, 19 },
534 {
"%TVAR2% long long",
"", 8, 19 },
535 {
"%TVAR2% long long",
"", 9, 19 },
536 {
"%TVAR2% long long",
"", 10, 19 },
537 {
"%TVAR2% long long",
"", 18, 19 },
538 {
"%TVAR2% long long",
"%TVAR2% long long", 19, 18 },
539 {
"%TVAR long long",
"", 1, 17 },
540 {
"%TVAR long long",
"", 2, 17 },
541 {
"%TVAR long long",
"", 3, 17 },
542 {
"%TVAR long long",
"", 15, 17 },
543 {
"%TVAR long long",
"", 16, 17 },
544 {
"%TVAR long long",
"%TVAR long long", 17, 16 },
550 ok(ret_size == 1 || ret_size == 0 || ret_size == 2 ,
551 "ExpandEnvironmentStrings returned %ld\n", ret_size);
560 "ExpandEnvironmentStrings returned %ld instead of %d, %d or %d\n",
568 "ExpandEnvironmentStrings returned %ld instead of %d\n",
576 "ExpandEnvironmentStrings returned %ld instead of %d\n",
584 "ExpandEnvironmentStrings returned %ld instead of %d\n",
586 ok(!
strcmp(buf1,
value),
"ExpandEnvironmentStrings returned [%s]\n", buf1);
591 ok(ret_size ==
strlen(not_an_env_var)+1 ||
592 ret_size == (
strlen(not_an_env_var)+1)*2 ,
593 "ExpandEnvironmentStrings returned %ld instead of %d\n", ret_size,
lstrlenA(not_an_env_var)+1);
594 ok(!
strcmp(buf1, not_an_env_var),
"ExpandEnvironmentStrings returned [%s]\n", buf1);
599 ok(!
strcmp(
buf, buf2),
"ExpandEnvironmentStrings failed %s vs %s. ret_size = %ld\n",
buf, buf2, ret_size);
603 ok ((ret_size1 >0) && (ret_size1<256),
"GetWindowsDirectory Failed\n");
607 ok(!
strcmp(
buf, buf1),
"ExpandEnvironmentStrings failed %s vs %s. ret_size = %ld\n",
buf, buf1, ret_size);
612 strcpy(
buf,
"Indirect-%IndirectVar%-Indirect");
613 strcpy(buf2,
"Indirect-Foo%EnvVar%Bar-Indirect");
616 ret_size == (
strlen(buf2)+1)*2 ,
617 "ExpandEnvironmentStrings returned %ld instead of %d\n", ret_size,
lstrlenA(buf2)+1);
618 ok(!
strcmp(buf1, buf2),
"ExpandEnvironmentStrings returned [%s]\n", buf1);
638 ok(
ret ==
test->expected_count_out,
"Test %d: got %lu\n",
i,
ret);
648 const char *japanese_test =
"\x88\xEA\x93\xF1\x8E\x4F\x8E\x6C\x8C\xDC\x98\x5A\x8E\xB5\x94\xAA\x8B\xE3";
649 int japanese_len =
strlen(japanese_test);
654 ok(ret_size >= japanese_len,
"Needed at least %d, got %lu\n", japanese_len, ret_size);
659 ok(ret_size >= japanese_len,
"Needed at least %d, got %lu\n", japanese_len, ret_size);
665 ok(ret_size >= japanese_len,
"Needed at least %d, got %lu\n", japanese_len, ret_size);
669 skip(
"Skipping japanese language tests\n");
704 trace(
"computer name is \"%s\"\n",
name);
706 ok(
size == name_len,
"size should be same as length, name_len=%d, size=%ld\n", name_len,
size);
714 win_skip(
"GetComputerNameW is not implemented\n");
734 static const int MAX_COMP_NAME = 32767;
736 if (!pGetComputerNameExA)
738 win_skip(
"GetComputerNameExA function not implemented\n");
744 ret = pGetComputerNameExA(ComputerNameDnsDomain, (
LPSTR)0xdeadbeef, &
size);
746 ok(
ret == 0,
"Expected 0, got %d\n",
ret);
752 win_skip(
"Win2k doesn't set the size\n");
753 size = MAX_COMP_NAME;
757 ret = pGetComputerNameExA(ComputerNameDnsDomain,
name, &
size);
758 ok(
ret,
"GetComputerNameExA(ComputerNameDnsDomain) failed with error %ld\n",
GetLastError());
764 ret = pGetComputerNameExA(ComputerNameDnsFullyQualified, (
LPSTR)0xdeadbeef, &
size);
766 ok(
ret == 0,
"Expected 0, got %d\n",
ret);
771 size = MAX_COMP_NAME;
774 ret = pGetComputerNameExA(ComputerNameDnsFullyQualified,
name, &
size);
775 ok(
ret,
"GetComputerNameExA(ComputerNameDnsFullyQualified) failed with error %ld\n",
GetLastError());
776 trace(
"fully qualified hostname is \"%s\"\n",
name);
781 ret = pGetComputerNameExA(ComputerNameDnsHostname, (
LPSTR)0xdeadbeef, &
size);
783 ok(
ret == 0,
"Expected 0, got %d\n",
ret);
788 size = MAX_COMP_NAME;
791 ret = pGetComputerNameExA(ComputerNameDnsHostname,
name, &
size);
792 ok(
ret,
"GetComputerNameExA(ComputerNameDnsHostname) failed with error %ld\n",
GetLastError());
798 ret = pGetComputerNameExA(ComputerNameNetBIOS, (
LPSTR)0xdeadbeef, &
size);
800 ok(
ret == 0,
"Expected 0, got %d\n",
ret);
805 ret = pGetComputerNameExA(ComputerNameNetBIOS,
NULL, &
size);
807 ok(
ret == 0,
"Expected 0, got %d\n",
ret);
812 size = MAX_COMP_NAME;
815 ret = pGetComputerNameExA(ComputerNameNetBIOS,
name, &
size);
816 ok(
ret,
"GetComputerNameExA(ComputerNameNetBIOS) failed with error %ld\n",
GetLastError());
828 if (!pGetComputerNameExW)
830 win_skip(
"GetComputerNameExW function not implemented\n");
836 ret = pGetComputerNameExW(ComputerNameDnsDomain, (
LPWSTR)0xdeadbeef, &
size);
841 ret = pGetComputerNameExW(ComputerNameDnsDomain,
nameW, &
size);
842 ok(
ret,
"GetComputerNameExW(ComputerNameDnsDomain) failed with error %ld\n",
GetLastError());
847 ret = pGetComputerNameExW(ComputerNameDnsFullyQualified, (
LPWSTR)0xdeadbeef, &
size);
852 ret = pGetComputerNameExW(ComputerNameDnsFullyQualified,
nameW, &
size);
853 ok(
ret,
"GetComputerNameExW(ComputerNameDnsFullyQualified) failed with error %ld\n",
GetLastError());
858 ret = pGetComputerNameExW(ComputerNameDnsHostname, (
LPWSTR)0xdeadbeef, &
size);
863 ret = pGetComputerNameExW(ComputerNameDnsHostname,
nameW, &
size);
864 ok(
ret,
"GetComputerNameExW(ComputerNameDnsHostname) failed with error %ld\n",
GetLastError());
869 ret = pGetComputerNameExW(ComputerNameNetBIOS, (
LPWSTR)0xdeadbeef, &
size);
874 ret = pGetComputerNameExW(ComputerNameNetBIOS,
nameW, &
size);
875 ok(
ret,
"GetComputerNameExW(ComputerNameNetBIOS) failed with error %ld\n",
GetLastError());
880 ret = pGetComputerNameExW(ComputerNameNetBIOS,
NULL, &
size);
894 "should return different copies\n");
899#define copy_string(dst, src) memcpy(dst, src, sizeof(src))
916#define check_env_var(a, b) check_env_var_(__LINE__, a, b)
920 static const WCHAR testenv[] =
L"testenv1=unus\0testenv3=tres\0";
925 if (!pSetEnvironmentStringsW)
927 win_skip(
"SetEnvironmentStringsW() is not available\n");
939 ret = pSetEnvironmentStringsW(
env);
941 ok(!
memcmp(
env, testenv,
sizeof(testenv)),
"input parameter should not be changed\n");
948 ret = pSetEnvironmentStringsW(old_env);
960 ret = pSetEnvironmentStringsW(
env);
961 ok(!
ret,
"expected failure\n");
966 ret = pSetEnvironmentStringsW(
env);
967 ok(!
ret,
"expected failure\n");
971 ret = pSetEnvironmentStringsW(
env);
976 ret = pSetEnvironmentStringsW(old_env);
static const WCHAR nameW[]
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
static LPCWSTR LPCWSTR LPCWSTR env
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define GetEnvironmentVariableW(x, y, z)
#define GetProcAddress(x, y)
#define GetCurrentProcess()
#define HeapFree(x, y, z)
#define GetEnvironmentVariableA(x, y, z)
static const WCHAR valueW[]
DWORD WINAPI ExpandEnvironmentStringsA(IN LPCSTR lpSrc, IN LPSTR lpDst, IN DWORD nSize)
BOOL WINAPI FreeEnvironmentStringsW(IN LPWSTR EnvironmentStrings)
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableW(IN LPCWSTR lpName, IN LPCWSTR lpValue)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableA(IN LPCSTR lpName, IN LPCSTR lpValue)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
UINT WINAPI GetWindowsDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
LPWSTR WINAPI DECLSPEC_HOTPATCH GetEnvironmentStringsW(void)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
static struct test_info tests[]
static void test_Predefined(void)
#define ok_w(res, format, szString)
static void test_GetComputerNameExA(void)
static void test_ExpandEnvironmentStringsA(void)
static void check_env_var_(int line, const char *var, const char *value)
#define copy_string(dst, src)
#define check_env_var(a, b)
static void test_GetComputerNameExW(void)
static void test_GetSetEnvironmentVariableW(void)
static void init_functionpointers(void)
static void test_GetEnvironmentStringsW(void)
static void test_ExpandEnvironmentStringsW(void)
static void test_GetComputerName(void)
static void test_GetSetEnvironmentVariableA(void)
static void test_GetSetEnvironmentVariableAW(void)
static void test_SetEnvironmentStrings(void)
static const WCHAR fooW[]
static HINSTANCE hkernel32
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
BOOL WINAPI SHIM_OBJ_NAME() GetComputerNameA(LPSTR lpBuffer, LPDWORD lpnSize)
#define success(from, fromstr, to, tostr)
DWORD WINAPI GetLastError(void)
#define MAX_COMPUTERNAME_LENGTH
#define ERROR_BUFFER_OVERFLOW
#define ERROR_ENVVAR_NOT_FOUND