[USP10_WINETEST] Sync with Wine Staging 2.9. CORE-13362
[reactos.git] / rostests / kmtests / ntos_mm / NtCreateSection_user.c
index 2966adf..6c68c45 100644 (file)
@@ -33,7 +33,9 @@ START_TEST(NtCreateSection)
     Status = NtCreateSection(&SectionHandle, SECTION_ALL_ACCESS, 0, &MaxFileSize,
                              PAGE_READWRITE, SEC_COMMIT, Handle);
     ok_eq_hex(Status, STATUS_INVALID_FILE_FOR_SECTION);
-    NtClose(Handle);
+    if (NT_SUCCESS(Status)) NtClose(SectionHandle);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 1 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnCreate, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -53,12 +55,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 512);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 2 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnCreate, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -78,12 +84,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 4096);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 3 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnRW, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -103,12 +113,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 512);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 4 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnRW, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -128,12 +142,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 4096);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 10 */
     InitializeObjectAttributes(&ObjectAttributes, &InvalidInit, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -145,7 +163,9 @@ START_TEST(NtCreateSection)
     Status = NtCreateSection(&SectionHandle, SECTION_ALL_ACCESS, 0, &MaxFileSize,
                              PAGE_READWRITE, SEC_COMMIT, Handle);
     ok_eq_hex(Status, STATUS_INVALID_FILE_FOR_SECTION);
-    NtClose(Handle);
+    if (NT_SUCCESS(Status)) NtClose(SectionHandle);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 11 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnCreate, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -165,12 +185,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 512);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 12 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnCreate, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -190,12 +214,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 4096);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 13 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnRW, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -215,12 +243,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 512);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     /* Test 14 */
     InitializeObjectAttributes(&ObjectAttributes, &InitOnRW, OBJ_CASE_INSENSITIVE, NULL, NULL);
@@ -240,12 +272,16 @@ START_TEST(NtCreateSection)
     ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtStartSeh();
+    ok(((PCHAR)Buffer)[0] == 0, "First byte is not null! %x\n", ((PCHAR)Buffer)[0]);
     memset(Buffer, 0xBA, 4096);
     KmtEndSeh(STATUS_SUCCESS);
 
-    NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
-    NtClose(SectionHandle);
-    NtClose(Handle);
+    Status = NtUnmapViewOfSection(NtCurrentProcess(), Buffer);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(SectionHandle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
+    Status = NtClose(Handle);
+    ok_eq_hex(Status, STATUS_SUCCESS);
 
     KmtCloseDriver();
     KmtUnloadDriver();