[PATCH v2 3/8] ntdll/tests: Make the zero_bits parameter explicit in all tests

Rémi Bernon rbernon at codeweavers.com
Fri Jun 14 08:11:12 CDT 2019


Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/ntdll/tests/virtual.c | 75 +++++++++++++++++++++++++-------------
 1 file changed, 50 insertions(+), 25 deletions(-)

diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c
index 26d058185fd..2a71a561a90 100644
--- a/dlls/ntdll/tests/virtual.c
+++ b/dlls/ntdll/tests/virtual.c
@@ -39,21 +39,24 @@ static void test_AllocateVirtualMemory(void)
     /* simple allocation should success */
     size = 0x1000;
     addr1 = NULL;
-    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr1, 0, &size,
+    zero_bits = 0;
+    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr1, zero_bits, &size,
                                      MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
     ok(status == STATUS_SUCCESS, "NtAllocateVirtualMemory returned %08x\n", status);
 
     /* allocation conflicts because of 64k align */
     size = 0x1000;
     addr2 = (char *)addr1 + 0x1000;
-    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 0, &size,
+    zero_bits = 0;
+    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size,
                                      MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
     ok(status == STATUS_CONFLICTING_ADDRESSES, "NtAllocateVirtualMemory returned %08x\n", status);
 
     /* it should conflict, even when zero_bits is explicitly set */
     size = 0x1000;
     addr2 = (char *)addr1 + 0x1000;
-    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 12, &size,
+    zero_bits = 12;
+    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size,
                                      MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
     ok(status == STATUS_CONFLICTING_ADDRESSES, "NtAllocateVirtualMemory returned %08x\n", status);
     if (status == STATUS_SUCCESS)
@@ -67,7 +70,7 @@ static void test_AllocateVirtualMemory(void)
     size = 0x1000;
     addr2 = NULL;
     zero_bits = 1;
-    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 1, &size,
+    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size,
                                      MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
     ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY ||
        broken(status == STATUS_INVALID_PARAMETER_3) /* winxp */,
@@ -106,7 +109,8 @@ static void test_AllocateVirtualMemory(void)
     /* 21 zero bits never succeeds */
     size = 0x1000;
     addr2 = NULL;
-    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 21, &size,
+    zero_bits = 21;
+    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size,
                                      MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
     todo_wine
     ok(status == STATUS_NO_MEMORY || status == STATUS_INVALID_PARAMETER,
@@ -121,7 +125,8 @@ static void test_AllocateVirtualMemory(void)
     /* 22 zero bits is invalid */
     size = 0x1000;
     addr2 = NULL;
-    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 22, &size,
+    zero_bits = 22;
+    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size,
                                      MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
     ok(status == STATUS_INVALID_PARAMETER_3 || status == STATUS_INVALID_PARAMETER,
        "NtAllocateVirtualMemory returned %08x\n", status);
@@ -157,7 +162,8 @@ static void test_AllocateVirtualMemory(void)
     /* AT_ROUND_TO_PAGE flag is not supported for NtAllocateVirtualMemory */
     size = 0x1000;
     addr2 = (char *)addr1 + 0x1000;
-    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, 0, &size,
+    zero_bits = 0;
+    status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr2, zero_bits, &size,
                                      MEM_RESERVE | MEM_COMMIT | AT_ROUND_TO_PAGE, PAGE_EXECUTE_READWRITE);
     ok(status == STATUS_INVALID_PARAMETER_5 || status == STATUS_INVALID_PARAMETER,
        "NtAllocateVirtualMemory returned %08x\n", status);
@@ -175,6 +181,7 @@ static void test_MapViewOfSection(void)
     DWORD status;
     SIZE_T size;
     LARGE_INTEGER offset, map_size;
+    ULONG zero_bits;
 
     map_size.QuadPart = 0x1000;
     status = NtCreateSection(&mapping, SECTION_MAP_READ | SECTION_MAP_WRITE, NULL,
@@ -184,16 +191,18 @@ static void test_MapViewOfSection(void)
 
     ptr = NULL;
     size = 0;
+    zero_bits = 0;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status);
     ok(!((ULONG_PTR)ptr & 0xffff), "returned memory %p is not aligned to 64k\n", ptr);
 
     /* for some unknown reason NtMapViewOfSection fails with STATUS_NO_MEMORY when zero_bits != 0 ? */
     ptr2 = NULL;
     size = 0;
+    zero_bits = 12;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_SUCCESS || status == STATUS_NO_MEMORY,
        "NtMapViewOfSection returned %08x\n", status);
     if (status == STATUS_SUCCESS)
@@ -204,7 +213,8 @@ static void test_MapViewOfSection(void)
 
     ptr2 = NULL;
     size = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    zero_bits = 16;
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     todo_wine
     ok(status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %08x\n", status);
     if (status == STATUS_SUCCESS)
@@ -216,65 +226,74 @@ static void test_MapViewOfSection(void)
     /* 22 zero bits isn't acceptable */
     ptr2 = NULL;
     size = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 22, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    zero_bits = 22;
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER,
        "NtMapViewOfSection returned %08x\n", status);
 
     /* mapping at the same page conflicts */
     ptr2 = ptr;
     size = 0;
+    zero_bits = 0;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status);
 
     /* offset has to be aligned */
     ptr2 = ptr;
     size = 0;
+    zero_bits = 0;
     offset.QuadPart = 1;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status);
 
     /* ptr has to be aligned */
     ptr2 = (char *)ptr + 42;
     size = 0;
+    zero_bits = 0;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status);
 
     /* still not 64k aligned */
     ptr2 = (char *)ptr + 0x1000;
     size = 0;
+    zero_bits = 0;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %08x\n", status);
 
     /* zero_bits != 0 is not allowed when an address is set */
     ptr2 = (char *)ptr + 0x1000;
     size = 0;
+    zero_bits = 12;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER ||
        broken(STATUS_MAPPED_ALIGNMENT) /* w1064v1809 inconsistently returns STATUS_MAPPED_ALIGNMENT or STATUS_INVALID_PARAMETER */,
        "NtMapViewOfSection returned %08x\n", status);
 
     ptr2 = (char *)ptr + 0x1000;
     size = 0;
+    zero_bits = 16;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER,
        "NtMapViewOfSection returned %08x\n", status);
 
     ptr2 = (char *)ptr + 0x1001;
     size = 0;
+    zero_bits = 16;
     offset.QuadPart = 0;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER,
        "NtMapViewOfSection returned %08x\n", status);
 
     ptr2 = (char *)ptr + 0x1000;
     size = 0;
+    zero_bits = 16;
     offset.QuadPart = 1;
-    status = NtMapViewOfSection(mapping, process, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE);
+    status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset, &size, 1, 0, PAGE_READWRITE);
     ok(status == STATUS_INVALID_PARAMETER_4 || status == STATUS_INVALID_PARAMETER,
        "NtMapViewOfSection returned %08x\n", status);
 
@@ -284,23 +303,26 @@ static void test_MapViewOfSection(void)
         /* new memory region conflicts with previous mapping */
         ptr2 = ptr;
         size = 0;
+        zero_bits = 0;
         offset.QuadPart = 0;
-        status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset,
+        status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset,
                                     &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE);
         ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status);
 
         ptr2 = (char *)ptr + 42;
         size = 0;
+        zero_bits = 0;
         offset.QuadPart = 0;
-        status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset,
+        status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset,
                                     &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE);
         ok(status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %08x\n", status);
 
         /* in contrary to regular NtMapViewOfSection, only 4kb align is enforced */
         ptr2 = (char *)ptr + 0x1000;
         size = 0;
+        zero_bits = 0;
         offset.QuadPart = 0;
-        status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset,
+        status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset,
                                     &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE);
         ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status);
         ok((char *)ptr2 == (char *)ptr + 0x1000,
@@ -311,8 +333,9 @@ static void test_MapViewOfSection(void)
         /* the address is rounded down if not on a page boundary */
         ptr2 = (char *)ptr + 0x1001;
         size = 0;
+        zero_bits = 0;
         offset.QuadPart = 0;
-        status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset,
+        status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset,
                                     &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE);
         ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status);
         ok((char *)ptr2 == (char *)ptr + 0x1000,
@@ -322,8 +345,9 @@ static void test_MapViewOfSection(void)
 
         ptr2 = (char *)ptr + 0x2000;
         size = 0;
+        zero_bits = 0;
         offset.QuadPart = 0;
-        status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset,
+        status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset,
                                     &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE);
         ok(status == STATUS_SUCCESS, "NtMapViewOfSection returned %08x\n", status);
         ok((char *)ptr2 == (char *)ptr + 0x2000,
@@ -335,8 +359,9 @@ static void test_MapViewOfSection(void)
     {
         ptr2 = (char *)ptr + 0x1000;
         size = 0;
+        zero_bits = 0;
         offset.QuadPart = 0;
-        status = NtMapViewOfSection(mapping, process, &ptr2, 0, 0, &offset,
+        status = NtMapViewOfSection(mapping, process, &ptr2, zero_bits, 0, &offset,
                                     &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE);
         todo_wine
         ok(status == STATUS_INVALID_PARAMETER_9 || status == STATUS_INVALID_PARAMETER,
-- 
2.20.1




More information about the wine-devel mailing list