[PATCH 3/5] ntdll/tests: Make the zero_bits parameter explicit in all tests
Rémi Bernon
rbernon at codeweavers.com
Fri Jun 14 07:03:08 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 be1f82f4d53..2dc423355e5 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,64 +226,73 @@ 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,
"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);
@@ -283,23 +302,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,
@@ -310,8 +332,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,
@@ -321,8 +344,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,
@@ -334,8 +358,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