[APITESTS] Centrally define AllocateGuarded/FreeGuarded instead of duplicating them.
authorThomas Faber <thomas.faber@reactos.org>
Wed, 10 Jul 2019 10:25:36 +0000 (12:25 +0200)
committerThomas Faber <thomas.faber@reactos.org>
Tue, 31 Dec 2019 14:18:41 +0000 (15:18 +0100)
modules/rostests/apitests/crt/sprintf.c
modules/rostests/apitests/include/apitest_guard.h [new file with mode: 0644]
modules/rostests/apitests/ntdll/RtlBitmap.c
modules/rostests/apitests/ntdll/RtlDeleteAce.c
modules/rostests/apitests/ntdll/RtlDetermineDosPathNameType.c
modules/rostests/apitests/ntdll/RtlFirstFreeAce.c
modules/rostests/apitests/ntdll/RtlImageRvaToVa.c
modules/rostests/apitests/ntdll/precomp.h
modules/rostests/apitests/user32/GetUserObjectInformation.c
modules/rostests/apitests/ws2_32/WSAStartup.c

index b612d6d..8d42148 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 #include <apitest.h>
+#include <apitest_guard.h>
 
 #define WIN32_NO_STATUS
 #include <stdio.h>
 #endif
 #endif
 
-static
-PVOID
-AllocateGuarded(
-    SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-FreeGuarded(
-    PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
-
 /* NOTE: This test is not only used for all the CRT apitests, but also for
  *       user32's wsprintf. Make sure to test them all */
 START_TEST(sprintf)
diff --git a/modules/rostests/apitests/include/apitest_guard.h b/modules/rostests/apitests/include/apitest_guard.h
new file mode 100644 (file)
index 0000000..26b8ea0
--- /dev/null
@@ -0,0 +1,79 @@
+#ifndef _APITEST_GUARD_H
+#define _APITEST_GUARD_H
+
+#include <ndk/mmfuncs.h>
+#include <ndk/psfuncs.h>
+
+static
+inline
+PVOID
+AllocateGuarded(
+    _In_ SIZE_T SizeRequested)
+{
+    NTSTATUS Status;
+    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
+    PVOID VirtualMemory = NULL;
+    PCHAR StartOfBuffer;
+
+    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
+
+    if (!NT_SUCCESS(Status))
+        return NULL;
+
+    Size -= PAGE_SIZE;
+    if (Size)
+    {
+        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
+        if (!NT_SUCCESS(Status))
+        {
+            Size = 0;
+            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
+            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
+            return NULL;
+        }
+    }
+
+    StartOfBuffer = VirtualMemory;
+    StartOfBuffer += Size - SizeRequested;
+
+    return StartOfBuffer;
+}
+
+static
+inline
+VOID
+FreeGuarded(
+    _In_ PVOID Pointer)
+{
+    NTSTATUS Status;
+    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
+    SIZE_T Size = 0;
+
+    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
+    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
+}
+
+static
+inline
+VOID
+MakeReadOnly(
+    PVOID Pointer,
+    SIZE_T SizeRequested)
+{
+    NTSTATUS Status;
+    SIZE_T Size = PAGE_ROUND_UP(SizeRequested);
+    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
+
+    if (Size)
+    {
+        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
+        if (!NT_SUCCESS(Status))
+        {
+            Size = 0;
+            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
+            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
+        }
+    }
+}
+
+#endif /* _APITEST_GUARD_H */
index e524872..355ccee 100644 (file)
@@ -4,53 +4,6 @@
 
 static BOOL IsBroken = FALSE;
 
-static
-PVOID
-AllocateGuarded(
-    _In_ SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-FreeGuarded(
-    _In_ PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
-
 void
 Test_RtlFindMostSignificantBit(void)
 {
index 4c4aaf5..327247c 100644 (file)
@@ -7,53 +7,6 @@
 
 #include "precomp.h"
 
-static
-PVOID
-AllocateGuarded(
-    _In_ SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-FreeGuarded(
-    _In_ PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
-
 static
 PACL
 MakeAcl(
index 3f99a38..ed19772 100644 (file)
@@ -30,75 +30,6 @@ ULONG
 //= (PVOID)0x7c830669;
 ;
 
-static
-PVOID
-AllocateGuarded(
-    SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-MakeReadOnly(
-    PVOID Pointer,
-    SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested);
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-        }
-    }
-}
-
-static
-VOID
-FreeGuarded(
-    PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
-
 START_TEST(RtlDetermineDosPathNameType)
 {
     RTL_PATH_TYPE PathType;
index 0022945..654fdb0 100644 (file)
@@ -7,53 +7,6 @@
 
 #include "precomp.h"
 
-static
-PVOID
-AllocateGuarded(
-    _In_ SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-FreeGuarded(
-    _In_ PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
-
 static
 PACL
 MakeAcl(
index 9d15c58..ba9f75d 100644 (file)
@@ -7,53 +7,6 @@
 
 #include "precomp.h"
 
-static
-PVOID
-AllocateGuarded(
-    _In_ SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-FreeGuarded(
-    _In_ PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
-
 START_TEST(RtlImageRvaToVa)
 {
     PIMAGE_NT_HEADERS NtHeader;
index 39ff188..82d3e07 100644 (file)
@@ -8,6 +8,7 @@
 #define COM_NO_WINDOWS_H
 
 #include <apitest.h>
+#include <apitest_guard.h>
 #include <ndk/ntndk.h>
 #include <strsafe.h>
 
index 71c441f..423e3e6 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 #include "precomp.h"
+#include <apitest_guard.h>
 
 #include <ndk/mmfuncs.h>
 #include <ndk/pstypes.h>
@@ -30,53 +31,6 @@ CheckBuffer(
     return TRUE;
 }
 
-static
-PVOID
-AllocateGuarded(
-    SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-FreeGuarded(
-    PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
-
 #define xok ok // Make the test succeed on Win2003
 //#define xok(...) // This should make the test succeed on all Windows versions
 #define NOTSET 1234
index 11e731a..d3b203f 100644 (file)
@@ -6,53 +6,7 @@
  */
 
 #include "ws2_32.h"
-
-static
-PVOID
-AllocateGuarded(
-    SIZE_T SizeRequested)
-{
-    NTSTATUS Status;
-    SIZE_T Size = PAGE_ROUND_UP(SizeRequested + PAGE_SIZE);
-    PVOID VirtualMemory = NULL;
-    PCHAR StartOfBuffer;
-
-    Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_RESERVE, PAGE_NOACCESS);
-
-    if (!NT_SUCCESS(Status))
-        return NULL;
-
-    Size -= PAGE_SIZE;
-    if (Size)
-    {
-        Status = NtAllocateVirtualMemory(NtCurrentProcess(), &VirtualMemory, 0, &Size, MEM_COMMIT, PAGE_READWRITE);
-        if (!NT_SUCCESS(Status))
-        {
-            Size = 0;
-            Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-            ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-            return NULL;
-        }
-    }
-
-    StartOfBuffer = VirtualMemory;
-    StartOfBuffer += Size - SizeRequested;
-
-    return StartOfBuffer;
-}
-
-static
-VOID
-FreeGuarded(
-    PVOID Pointer)
-{
-    NTSTATUS Status;
-    PVOID VirtualMemory = (PVOID)PAGE_ROUND_DOWN((SIZE_T)Pointer);
-    SIZE_T Size = 0;
-
-    Status = NtFreeVirtualMemory(NtCurrentProcess(), &VirtualMemory, &Size, MEM_RELEASE);
-    ok(Status == STATUS_SUCCESS, "Status = %lx\n", Status);
-}
+#include <apitest_guard.h>
 
 static
 BOOLEAN