Andrew Nguyen : kernel32/tests: Add tests to examine output file part pointer behavior for GetFullPathNameW .
Alexandre Julliard
julliard at winehq.org
Thu Jun 17 11:17:15 CDT 2010
Module: wine
Branch: master
Commit: 1029167232fa7b5492f3cc0537120a911cbf4080
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1029167232fa7b5492f3cc0537120a911cbf4080
Author: Andrew Nguyen <anguyen at codeweavers.com>
Date: Wed Jun 16 23:40:26 2010 -0500
kernel32/tests: Add tests to examine output file part pointer behavior for GetFullPathNameW.
---
dlls/kernel32/tests/path.c | 60 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 60 insertions(+), 0 deletions(-)
diff --git a/dlls/kernel32/tests/path.c b/dlls/kernel32/tests/path.c
index 6fa4d93..e6d7e56 100644
--- a/dlls/kernel32/tests/path.c
+++ b/dlls/kernel32/tests/path.c
@@ -1624,6 +1624,65 @@ static void test_GetFullPathNameA(void)
}
}
+static void test_GetFullPathNameW(void)
+{
+ static const WCHAR emptyW[] = {0};
+ static const WCHAR deadbeefW[] = {'d','e','a','d','b','e','e','f',0};
+
+ WCHAR output[MAX_PATH], *filepart;
+ DWORD ret;
+ int i;
+
+ const struct
+ {
+ LPCWSTR name;
+ DWORD len;
+ LPWSTR buffer;
+ LPWSTR *lastpart;
+ int win7_expect;
+ } invalid_parameters[] =
+ {
+ {NULL, 0, NULL, NULL},
+ {NULL, 0, NULL, &filepart, 1},
+ {NULL, MAX_PATH, NULL, NULL},
+ {NULL, MAX_PATH, output, NULL},
+ {NULL, MAX_PATH, output, &filepart, 1},
+ {emptyW, 0, NULL, NULL},
+ {emptyW, 0, NULL, &filepart, 1},
+ {emptyW, MAX_PATH, NULL, NULL},
+ {emptyW, MAX_PATH, output, NULL},
+ {emptyW, MAX_PATH, output, &filepart, 1},
+ };
+
+ SetLastError(0xdeadbeef);
+ ret = GetFullPathNameW(NULL, 0, NULL, NULL);
+ if (!ret && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ win_skip("GetFullPathNameW is not available\n");
+ return;
+ }
+
+ for (i = 0; i < sizeof(invalid_parameters)/sizeof(invalid_parameters[0]); i++)
+ {
+ SetLastError(0xdeadbeef);
+ lstrcpyW(output, deadbeefW);
+ filepart = (WCHAR *)0xdeadbeef;
+ ret = GetFullPathNameW(invalid_parameters[i].name,
+ invalid_parameters[i].len,
+ invalid_parameters[i].buffer,
+ invalid_parameters[i].lastpart);
+ ok(!ret, "[%d] Expected GetFullPathNameW to return 0, got %u\n", i, ret);
+ ok(!lstrcmpW(output, deadbeefW), "[%d] Expected the output buffer to be unchanged, got %s\n", i, wine_dbgstr_w(output));
+ ok(filepart == (WCHAR *)0xdeadbeef ||
+ (invalid_parameters[i].win7_expect && filepart == NULL),
+ "[%d] Expected output file part pointer to be untouched, got %p\n", i, filepart);
+ ok(GetLastError() == 0xdeadbeef ||
+ GetLastError() == ERROR_INVALID_NAME, /* Win7 */
+ "[%d] Expected GetLastError() to return 0xdeadbeef, got %u\n",
+ i, GetLastError());
+ }
+}
+
static void init_pointers(void)
{
HMODULE hKernel32 = GetModuleHandleA("kernel32.dll");
@@ -1666,4 +1725,5 @@ START_TEST(path)
test_SearchPathA();
test_SearchPathW();
test_GetFullPathNameA();
+ test_GetFullPathNameW();
}
More information about the wine-cvs
mailing list