Alexandre Julliard : ntdll/tests: Fix a few test failures on NT4.
Alexandre Julliard
julliard at winehq.org
Mon Sep 22 07:04:36 CDT 2008
Module: wine
Branch: master
Commit: 733693829a684900eadb40888e38a66d45dc9963
URL: http://source.winehq.org/git/wine.git/?a=commit;h=733693829a684900eadb40888e38a66d45dc9963
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Sep 22 12:14:37 2008 +0200
ntdll/tests: Fix a few test failures on NT4.
---
dlls/ntdll/tests/om.c | 45 +++++++++++++++++++++++++--------------------
1 files changed, 25 insertions(+), 20 deletions(-)
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
index 1999da6..46c9084 100644
--- a/dlls/ntdll/tests/om.c
+++ b/dlls/ntdll/tests/om.c
@@ -451,24 +451,16 @@ static void test_directory(void)
pNtClose(dir);
}
-#define SYMLNK_TEST_CREATE_FAILURE(h,e) \
- status = pNtCreateSymbolicLinkObject(h, SYMBOLIC_LINK_QUERY, &attr, &target);\
- ok(status == e,"NtCreateSymbolicLinkObject should have failed with %s got(%08x)\n", #e, status);
-#define SYMLNK_TEST_OPEN_FAILURE(h,e) \
- status = pNtOpenSymbolicLinkObject(h, SYMBOLIC_LINK_QUERY, &attr);\
- ok(status == e,"NtOpenSymbolicLinkObject should have failed with %s got(%08x)\n", #e, status);
#define SYMLNK_TEST_CREATE_OPEN_FAILURE(h,n,t,e) \
pRtlCreateUnicodeStringFromAsciiz(&str, n);\
pRtlCreateUnicodeStringFromAsciiz(&target, t);\
- SYMLNK_TEST_CREATE_FAILURE(h,e)\
- SYMLNK_TEST_OPEN_FAILURE(h,e)\
+ status = pNtCreateSymbolicLinkObject(h, SYMBOLIC_LINK_QUERY, &attr, &target);\
+ ok(status == e,"NtCreateSymbolicLinkObject should have failed with %s got(%08x)\n", #e, status);\
+ status = pNtOpenSymbolicLinkObject(h, SYMBOLIC_LINK_QUERY, &attr);\
+ ok(status == e,"NtOpenSymbolicLinkObject should have failed with %s got(%08x)\n", #e, status);\
pRtlFreeUnicodeString(&target);\
pRtlFreeUnicodeString(&str);
-#define SYMLNK_TEST_CREATE_SUCCESS(h) \
- status = pNtCreateSymbolicLinkObject(h, SYMBOLIC_LINK_QUERY, &attr, &target); \
- ok(status == STATUS_SUCCESS, "Failed to create SymbolicLink(%08x)\n", status);
-
static void test_symboliclink(void)
{
NTSTATUS status;
@@ -490,26 +482,38 @@ static void test_symboliclink(void)
/* No attributes */
pRtlCreateUnicodeStringFromAsciiz(&target, "\\DosDevices");
status = pNtCreateSymbolicLinkObject(&h, SYMBOLIC_LINK_QUERY, NULL, &target);
- ok(status == STATUS_SUCCESS, "NtCreateSymbolicLinkObject failed(%08x)\n", status);
+ ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_VIOLATION, /* nt4 */
+ "NtCreateSymbolicLinkObject failed(%08x)\n", status);
pRtlFreeUnicodeString(&target);
- pNtClose(h);
+ if (!status) pNtClose(h);
InitializeObjectAttributes(&attr, NULL, 0, 0, NULL);
- SYMLNK_TEST_CREATE_FAILURE(&link, STATUS_INVALID_PARAMETER)
- SYMLNK_TEST_OPEN_FAILURE(&h, STATUS_OBJECT_PATH_SYNTAX_BAD)
+ status = pNtCreateSymbolicLinkObject(&link, SYMBOLIC_LINK_QUERY, &attr, &target);
+ ok(status == STATUS_INVALID_PARAMETER ||
+ broken(status == STATUS_SUCCESS), /* nt4 */
+ "NtCreateSymbolicLinkObject should have failed with STATUS_INVALID_PARAMETER got(%08x)\n", status);
+ if (!status) pNtClose(h);
+ status = pNtOpenSymbolicLinkObject(&h, SYMBOLIC_LINK_QUERY, &attr);
+ ok(status == STATUS_OBJECT_PATH_SYNTAX_BAD,
+ "NtOpenSymbolicLinkObject should have failed with STATUS_OBJECT_PATH_SYNTAX_BAD got(%08x)\n", status);
/* Bad name */
pRtlCreateUnicodeStringFromAsciiz(&target, "anywhere");
InitializeObjectAttributes(&attr, &str, 0, 0, NULL);
pRtlCreateUnicodeStringFromAsciiz(&str, "");
- SYMLNK_TEST_CREATE_SUCCESS(&link)
- SYMLNK_TEST_OPEN_FAILURE(&h, STATUS_OBJECT_PATH_SYNTAX_BAD)
+ status = pNtCreateSymbolicLinkObject(&link, SYMBOLIC_LINK_QUERY, &attr, &target);
+ ok(status == STATUS_SUCCESS, "Failed to create SymbolicLink(%08x)\n", status);
+ status = pNtOpenSymbolicLinkObject(&h, SYMBOLIC_LINK_QUERY, &attr);
+ ok(status == STATUS_OBJECT_PATH_SYNTAX_BAD,
+ "NtOpenSymbolicLinkObject should have failed with STATUS_OBJECT_PATH_SYNTAX_BAD got(%08x)\n", status);
pNtClose(link);
pRtlFreeUnicodeString(&str);
pRtlCreateUnicodeStringFromAsciiz(&str, "\\");
- todo_wine {SYMLNK_TEST_CREATE_FAILURE(&h, STATUS_OBJECT_TYPE_MISMATCH)}
+ status = pNtCreateSymbolicLinkObject(&h, SYMBOLIC_LINK_QUERY, &attr, &target);
+ todo_wine ok(status == STATUS_OBJECT_TYPE_MISMATCH,
+ "NtCreateSymbolicLinkObject should have failed with STATUS_OBJECT_TYPE_MISMATCH got(%08x)\n", status);
pRtlFreeUnicodeString(&str);
pRtlFreeUnicodeString(&target);
@@ -534,7 +538,8 @@ static void test_symboliclink(void)
InitializeObjectAttributes(&attr, &str, 0, dir, NULL);
pRtlCreateUnicodeStringFromAsciiz(&str, "test-link");
pRtlCreateUnicodeStringFromAsciiz(&target, "\\DosDevices");
- SYMLNK_TEST_CREATE_SUCCESS(&link)
+ status = pNtCreateSymbolicLinkObject(&link, SYMBOLIC_LINK_QUERY, &attr, &target);
+ ok(status == STATUS_SUCCESS, "Failed to create SymbolicLink(%08x)\n", status);
pRtlFreeUnicodeString(&str);
pRtlFreeUnicodeString(&target);
More information about the wine-cvs
mailing list