[PATCH] ntdll/tests: Added tests for ObjectTypeInformation class in NtQueryObject
Austin Lund
austin.lund at gmail.com
Tue Jul 5 20:20:29 CDT 2011
---
dlls/ntdll/tests/om.c | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
index 7c03886..d462203 100644
--- a/dlls/ntdll/tests/om.c
+++ b/dlls/ntdll/tests/om.c
@@ -658,6 +658,8 @@ static void test_query_object(void)
{
static const WCHAR name[] = {'\\','B','a','s','e','N','a','m','e','d','O','b','j','e','c','t','s',
'\\','t','e','s','t','_','e','v','e','n','t'};
+ static const WCHAR type_event[] = {'E','v','e','n','t'};
+ static const WCHAR type_file[] = {'F','i','l','e'};
HANDLE handle;
char buffer[1024];
NTSTATUS status;
@@ -673,11 +675,21 @@ static void test_query_object(void)
ok( len >= sizeof(UNICODE_STRING) + sizeof(name) + sizeof(WCHAR), "unexpected len %u\n", len );
len = 0;
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, 0, &len );
+ todo_wine ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
+ todo_wine ok( len >= sizeof(UNICODE_STRING) + 88 + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
+
+ len = 0;
status = pNtQueryObject( handle, ObjectNameInformation, buffer, sizeof(UNICODE_STRING), &len );
ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
ok( len >= sizeof(UNICODE_STRING) + sizeof(name) + sizeof(WCHAR), "unexpected len %u\n", len );
len = 0;
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(UNICODE_STRING) + 88, &len );
+ todo_wine ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
+ todo_wine ok( len >= sizeof(UNICODE_STRING) + 88 + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
+
+ len = 0;
status = pNtQueryObject( handle, ObjectNameInformation, buffer, sizeof(buffer), &len );
ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
ok( len > sizeof(UNICODE_STRING), "unexpected len %u\n", len );
@@ -693,6 +705,21 @@ static void test_query_object(void)
ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
ok( len >= sizeof(UNICODE_STRING) + sizeof(name) + sizeof(WCHAR), "unexpected len %u\n", len );
+ len = 0;
+ memset( buffer, 0, sizeof(buffer) );
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
+ todo_wine ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
+ todo_wine ok( len > sizeof(UNICODE_STRING) + 88, "unexpected len %u\n", len );
+ str = (UNICODE_STRING *)buffer;
+ todo_wine ok( len >= sizeof(UNICODE_STRING) + 88 + str->Length + sizeof(WCHAR), "unexpected len %u\n", len );
+ todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_event, sizeof(type_file) ),
+ "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
+
+ len -= sizeof(WCHAR);
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, len, &len );
+ todo_wine ok( status == STATUS_INFO_LENGTH_MISMATCH, "NtQueryObject failed %x\n", status );
+ todo_wine ok( len >= sizeof(UNICODE_STRING) + 88 + sizeof(type_event) + sizeof(WCHAR), "unexpected len %u\n", len );
+
pNtClose( handle );
handle = CreateEventA( NULL, FALSE, FALSE, NULL );
@@ -733,6 +760,17 @@ static void test_query_object(void)
ok( len == expected_len || broken(!len),
"unexpected len %u\n", len );
+ len = 0;
+ memset( buffer, 0, sizeof(buffer) );
+ status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len );
+ todo_wine ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status );
+ todo_wine ok( len > sizeof(UNICODE_STRING) + 88, "unexpected len %u\n", len );
+ str = (UNICODE_STRING *)buffer;
+ expected_len = sizeof(UNICODE_STRING) + 88 + str->Length + sizeof(WCHAR);
+ todo_wine ok( len >= expected_len, "unexpected len %u\n", len );
+ todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ),
+ "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer );
+
pNtClose( handle );
}
--
1.7.4.1
More information about the wine-patches
mailing list