From 68d0db0868a0d003ff3433fdf3fba9d8e00955b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Tue, 12 Jul 2011 17:36:52 +0000 Subject: [PATCH] [APITEST] - add one more test to NtFreeVirtualMemory svn path=/trunk/; revision=52658 --- rostests/apitests/ntdll/NtFreeVirtualMemory.c | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/rostests/apitests/ntdll/NtFreeVirtualMemory.c b/rostests/apitests/ntdll/NtFreeVirtualMemory.c index a2b5dabf698..74a7f65772a 100644 --- a/rostests/apitests/ntdll/NtFreeVirtualMemory.c +++ b/rostests/apitests/ntdll/NtFreeVirtualMemory.c @@ -110,6 +110,28 @@ static void Test_NtFreeVirtualMemory(void) ok(NT_SUCCESS(Status), "NtFreeVirtualMemory failed : 0x%08x\n", Status); ok(Length == PAGE_SIZE, "Length mismatch : 0x08x\n", Length); ok(Buffer2 == (PVOID)((ULONG_PTR)Buffer+PAGE_SIZE), "The buffer is not aligned to PAGE_SIZE.\n"); + + /* Now allocate two pages and try to free them in the middle */ + Length = 2*PAGE_SIZE; + Status = NtAllocateVirtualMemory(NtCurrentProcess(), + &Buffer, + 0, + &Length, + MEM_RESERVE, + PAGE_READWRITE); + ok(NT_SUCCESS(Status), "NtAllocateVirtualMemory failed : 0x%08x\n", Status); + ok(Length == 2*PAGE_SIZE, "Length mismatch : 0x08x\n", Length); + ok(((ULONG_PTR)Buffer % PAGE_SIZE) == 0, "The buffer is not aligned to PAGE_SIZE.\n"); + + Buffer2 = (PVOID)((ULONG_PTR)Buffer+1); + Length = PAGE_SIZE; + Status = NtFreeVirtualMemory(NtCurrentProcess(), + &Buffer2, + &Length, + MEM_RELEASE); + ok(NT_SUCCESS(Status), "NtAllocateVirtualMemory failed : 0x%08x\n", Status); + ok(Length == 2*PAGE_SIZE, "Length mismatch : 0x08x\n", Length); + ok(Buffer2 == Buffer, "The buffer is not aligned to PAGE_SIZE.\n"); } START_TEST(NtFreeVirtualMemory)