Author: tfaber
Date: Thu Jun 14 17:48:14 2012
New Revision: 56733
URL:
http://svn.reactos.org/svn/reactos?rev=56733&view=rev
Log:
[KMTESTS]
- Centralize frequently used macros
Modified:
trunk/rostests/kmtests/include/kmt_test.h
trunk/rostests/kmtests/ntos_mm/MmSection.c
trunk/rostests/kmtests/rtl/RtlException.c
trunk/rostests/kmtests/rtl/RtlUnicodeString.c
Modified: trunk/rostests/kmtests/include/kmt_test.h
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/include/kmt_test.…
==============================================================================
--- trunk/rostests/kmtests/include/kmt_test.h [iso-8859-1] (original)
+++ trunk/rostests/kmtests/include/kmt_test.h [iso-8859-1] Thu Jun 14 17:48:14 2012
@@ -173,6 +173,20 @@
#define MILLISECOND (1000 * MICROSECOND)
#define SECOND (1000 * MILLISECOND)
+#define KmtInvalidPointer ((PVOID)0x5555555555555555ULL)
+
+#define KmtStartSeh() \
+ ExceptionStatus = STATUS_SUCCESS; \
+ _SEH2_TRY \
+ {
+#define KmtEndSeh(ExpectedStatus) \
+ } \
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) \
+ { \
+ ExceptionStatus = _SEH2_GetExceptionCode(); \
+ } _SEH2_END; \
+ ok_eq_hex(ExceptionStatus, ExpectedStatus)
+
#if defined KMT_DEFINE_TEST_FUNCTIONS
#if defined KMT_KERNEL_MODE
Modified: trunk/rostests/kmtests/ntos_mm/MmSection.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_mm/MmSection…
==============================================================================
--- trunk/rostests/kmtests/ntos_mm/MmSection.c [iso-8859-1] (original)
+++ trunk/rostests/kmtests/ntos_mm/MmSection.c [iso-8859-1] Thu Jun 14 17:48:14 2012
@@ -6,9 +6,6 @@
*/
#include <kmt_test.h>
-
-#define StartSeh() ExceptionStatus = STATUS_SUCCESS; _SEH2_TRY {
-#define EndSeh(ExpectedStatus) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
ExceptionStatus = _SEH2_GetExceptionCode(); } _SEH2_END; ok_eq_hex(ExceptionStatus,
ExpectedStatus)
#define CheckObject(Handle, Pointers, Handles) do \
{ \
@@ -81,106 +78,105 @@
{
NTSTATUS Status = STATUS_SUCCESS;
NTSTATUS ExceptionStatus;
- const PVOID InvalidPointer = (PVOID)0x5555555555555555ULL;
PVOID SectionObject;
LARGE_INTEGER MaximumSize;
ULONG PointerCount1, PointerCount2;
- StartSeh()
+ KmtStartSeh()
Status = MmCreateSection(NULL, 0, NULL, NULL, 0, SEC_RESERVE, NULL, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PAGE_PROTECTION);
if (!KmtIsCheckedBuild)
{
/* PAGE_NOACCESS and missing SEC_RESERVE/SEC_COMMIT/SEC_IMAGE assert */
- StartSeh()
+ KmtStartSeh()
Status = MmCreateSection(NULL, 0, NULL, NULL, PAGE_NOACCESS, SEC_RESERVE,
NULL, NULL);
- EndSeh(STATUS_ACCESS_VIOLATION);
-
- StartSeh()
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
+
+ KmtStartSeh()
Status = MmCreateSection(NULL, 0, NULL, NULL, PAGE_NOACCESS, 0, NULL, NULL);
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
}
- SectionObject = InvalidPointer;
- StartSeh()
+ SectionObject = KmtInvalidPointer;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, NULL, 0, SEC_RESERVE, NULL,
NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PAGE_PROTECTION);
- ok_eq_pointer(SectionObject, InvalidPointer);
-
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- StartSeh()
+ ok_eq_pointer(SectionObject, KmtInvalidPointer);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ KmtStartSeh()
Status = MmCreateSection(NULL, 0, NULL, NULL, PAGE_READONLY, SEC_RESERVE, NULL,
NULL);
- EndSeh(STATUS_ACCESS_VIOLATION);
-
- SectionObject = InvalidPointer;
- StartSeh()
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
+
+ SectionObject = KmtInvalidPointer;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, NULL, PAGE_READONLY,
SEC_RESERVE, NULL, NULL);
- EndSeh(STATUS_ACCESS_VIOLATION);
- ok_eq_pointer(SectionObject, InvalidPointer);
-
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- SectionObject = InvalidPointer;
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
+ ok_eq_pointer(SectionObject, KmtInvalidPointer);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ SectionObject = KmtInvalidPointer;
MaximumSize.QuadPart = 0;
- StartSeh()
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, NULL, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_FILE_FOR_SECTION);
ok_eq_longlong(MaximumSize.QuadPart, 0LL);
- ok_eq_pointer(SectionObject, InvalidPointer);
-
- if (SectionObject && SectionObject != InvalidPointer)
+ ok_eq_pointer(SectionObject, KmtInvalidPointer);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
MaximumSize.QuadPart = 0;
- StartSeh()
+ KmtStartSeh()
Status = MmCreateSection(NULL, 0, NULL, &MaximumSize, PAGE_READONLY,
SEC_RESERVE, NULL, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PARAMETER_4);
ok_eq_longlong(MaximumSize.QuadPart, 0LL);
- if (SectionObject && SectionObject != InvalidPointer)
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
MaximumSize.QuadPart = 1;
- StartSeh()
+ KmtStartSeh()
Status = MmCreateSection(NULL, 0, NULL, &MaximumSize, PAGE_READONLY,
SEC_RESERVE, NULL, NULL);
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- SectionObject = InvalidPointer;
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ SectionObject = KmtInvalidPointer;
MaximumSize.QuadPart = 0;
- StartSeh()
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_RESERVE, NULL, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PARAMETER_4);
ok_eq_longlong(MaximumSize.QuadPart, 0LL);
- ok_eq_pointer(SectionObject, InvalidPointer);
-
- if (SectionObject && SectionObject != InvalidPointer)
+ ok_eq_pointer(SectionObject, KmtInvalidPointer);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
/* page file section */
- SectionObject = InvalidPointer;
+ SectionObject = KmtInvalidPointer;
MaximumSize.QuadPart = 1;
- StartSeh()
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_RESERVE, NULL, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_SUCCESS);
ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer untouched\n");
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
ok(SectionObject != NULL, "Section object pointer NULL\n");
- if (SectionObject && SectionObject != InvalidPointer)
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
if (!skip(FileHandle1 != NULL && FileObject1 != NULL &&
@@ -190,196 +186,196 @@
PointerCount2 = 3;
/* image section */
CheckObject(FileHandle2, PointerCount2, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, FileHandle2, NULL);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
ok(SectionObject != NULL, "Section object pointer NULL\n");
CheckObject(FileHandle2, PointerCount2, 1L);
CheckSection(SectionObject, SEC_IMAGE);
TestMapView(SectionObject, FALSE, TRUE);
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- CheckObject(FileHandle2, PointerCount2, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ CheckObject(FileHandle2, PointerCount2, 1L);
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, NULL, FileObject2);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
ok(SectionObject != NULL, "Section object pointer NULL\n");
++PointerCount2;
CheckObject(FileHandle2, PointerCount2, 1L);
CheckSection(SectionObject, 0);
TestMapView(SectionObject, TRUE, TRUE);
- if (SectionObject && SectionObject != InvalidPointer)
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
//--PointerCount2; // ????
CheckObject(FileHandle2, PointerCount2, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, FileHandle2, FileObject2);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
ok(SectionObject != NULL, "Section object pointer NULL\n");
CheckObject(FileHandle2, PointerCount2, 1L);
CheckSection(SectionObject, 0);
TestMapView(SectionObject, TRUE, TRUE);
- if (SectionObject && SectionObject != InvalidPointer)
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
/* image section with inappropriate file */
CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, FileHandle1, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_IMAGE_NOT_MZ);
ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok_eq_pointer(SectionObject, InvalidPointer);
- CheckObject(FileHandle1, PointerCount1, 1L);
-
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ ok_eq_pointer(SectionObject, KmtInvalidPointer);
+ CheckObject(FileHandle1, PointerCount1, 1L);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, NULL, FileObject1);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
ok(SectionObject != NULL, "Section object pointer NULL\n");
++PointerCount1;
CheckObject(FileHandle1, PointerCount1, 1L);
CheckSection(SectionObject, 0);
TestMapView(SectionObject, TRUE, FALSE);
- if (SectionObject && SectionObject != InvalidPointer)
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
//--PointerCount1; // ????
CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, FileHandle1, FileObject1);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
- ok(SectionObject != NULL, "Section object pointer NULL\n");
- CheckObject(FileHandle1, PointerCount1, 1L);
- CheckSection(SectionObject, 0);
- TestMapView(SectionObject, TRUE, FALSE);
-
- if (SectionObject && SectionObject != InvalidPointer)
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
+ ok(SectionObject != NULL, "Section object pointer NULL\n");
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ CheckSection(SectionObject, 0);
+ TestMapView(SectionObject, TRUE, FALSE);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
/* image section with two different files */
CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, FileHandle1, FileObject2);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
ok(SectionObject != NULL, "Section object pointer NULL\n");
CheckObject(FileHandle1, PointerCount1, 1L);
CheckObject(FileHandle2, PointerCount2, 1L);
CheckSection(SectionObject, 0);
TestMapView(SectionObject, TRUE, TRUE);
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_IMAGE, FileHandle2, FileObject1);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
- ok(SectionObject != NULL, "Section object pointer NULL\n");
- CheckObject(FileHandle1, PointerCount1, 1L);
- CheckObject(FileHandle2, PointerCount2, 1L);
- CheckSection(SectionObject, 0);
- TestMapView(SectionObject, TRUE, FALSE);
-
- if (SectionObject && SectionObject != InvalidPointer)
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
+ ok(SectionObject != NULL, "Section object pointer NULL\n");
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ CheckObject(FileHandle2, PointerCount2, 1L);
+ CheckSection(SectionObject, 0);
+ TestMapView(SectionObject, TRUE, FALSE);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
/* data file section */
CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_RESERVE, FileHandle1, NULL);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
- ok(SectionObject != NULL, "Section object pointer NULL\n");
- CheckObject(FileHandle1, PointerCount1, 1L);
- CheckSection(SectionObject, 0);
- TestMapView(SectionObject, TRUE, FALSE);
-
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
+ ok(SectionObject != NULL, "Section object pointer NULL\n");
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ CheckSection(SectionObject, 0);
+ TestMapView(SectionObject, TRUE, FALSE);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_RESERVE, NULL, FileObject1);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
- ok(SectionObject != NULL, "Section object pointer NULL\n");
- CheckObject(FileHandle1, PointerCount1, 1L);
- CheckSection(SectionObject, 0);
- TestMapView(SectionObject, TRUE, FALSE);
-
- if (SectionObject && SectionObject != InvalidPointer)
- ObDereferenceObject(SectionObject);
-
- CheckObject(FileHandle1, PointerCount1, 1L);
- SectionObject = InvalidPointer;
- MaximumSize.QuadPart = 1;
- StartSeh()
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
+ ok(SectionObject != NULL, "Section object pointer NULL\n");
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ CheckSection(SectionObject, 0);
+ TestMapView(SectionObject, TRUE, FALSE);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
+ ObDereferenceObject(SectionObject);
+
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ SectionObject = KmtInvalidPointer;
+ MaximumSize.QuadPart = 1;
+ KmtStartSeh()
Status = MmCreateSection(&SectionObject, 0, NULL, &MaximumSize,
PAGE_READONLY, SEC_RESERVE, FileHandle1, FileObject1);
- EndSeh(STATUS_SUCCESS);
- ok_eq_hex(Status, STATUS_SUCCESS);
- ok_eq_longlong(MaximumSize.QuadPart, 1LL);
- ok(SectionObject != InvalidPointer, "Section object pointer
untouched\n");
- ok(SectionObject != NULL, "Section object pointer NULL\n");
- CheckObject(FileHandle1, PointerCount1, 1L);
- CheckSection(SectionObject, 0);
- TestMapView(SectionObject, TRUE, FALSE);
-
- if (SectionObject && SectionObject != InvalidPointer)
+ KmtEndSeh(STATUS_SUCCESS);
+ ok_eq_hex(Status, STATUS_SUCCESS);
+ ok_eq_longlong(MaximumSize.QuadPart, 1LL);
+ ok(SectionObject != KmtInvalidPointer, "Section object pointer
untouched\n");
+ ok(SectionObject != NULL, "Section object pointer NULL\n");
+ CheckObject(FileHandle1, PointerCount1, 1L);
+ CheckSection(SectionObject, 0);
+ TestMapView(SectionObject, TRUE, FALSE);
+
+ if (SectionObject && SectionObject != KmtInvalidPointer)
ObDereferenceObject(SectionObject);
CheckObject(FileHandle1, PointerCount1, 1L);
Modified: trunk/rostests/kmtests/rtl/RtlException.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/rtl/RtlException.…
==============================================================================
--- trunk/rostests/kmtests/rtl/RtlException.c [iso-8859-1] (original)
+++ trunk/rostests/kmtests/rtl/RtlException.c [iso-8859-1] Thu Jun 14 17:48:14 2012
@@ -7,9 +7,6 @@
#include <kmt_test.h>
-#define StartSeh() ExceptionStatus = STATUS_SUCCESS; _SEH2_TRY {
-#define EndSeh(ExpectedStatus) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
ExceptionStatus = _SEH2_GetExceptionCode(); } _SEH2_END; ok_eq_hex(ExceptionStatus,
ExpectedStatus)
-
START_TEST(RtlException)
{
NTSTATUS ExceptionStatus;
@@ -17,38 +14,38 @@
CHAR Value;
/* Access a valid pointer - must not trigger SEH */
- StartSeh()
+ KmtStartSeh()
RtlFillMemory(Buffer, sizeof(Buffer), 0x12);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
/* Read from a NULL pointer - must cause an access violation */
- StartSeh()
+ KmtStartSeh()
Value = *(volatile CHAR *)NULL;
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
/* Write to a NULL pointer - must cause an access violation */
- StartSeh()
+ KmtStartSeh()
*(volatile CHAR *)NULL = 5;
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
/* TODO: Find where MmBadPointer is defined - gives an unresolved external */
#if 0 //def KMT_KERNEL_MODE
/* Read from MmBadPointer - must cause an access violation */
- StartSeh()
+ KmtStartSeh()
Value = *(volatile CHAR *)MmBadPointer;
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
/* Write to MmBadPointer - must cause an access violation */
- StartSeh()
+ KmtStartSeh()
*(volatile CHAR *)MmBadPointer = 5;
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
#endif
/* We cannot test this in kernel mode easily - the stack is just
"somewhere"
* in system space, and there's no guard page below it */
#ifdef KMT_USER_MODE
/* Overflow the stack - must cause a special exception */
- StartSeh()
+ KmtStartSeh()
PCHAR Pointer;
while (1)
@@ -56,6 +53,6 @@
Pointer = _alloca(1024);
*Pointer = 5;
}
- EndSeh(STATUS_STACK_OVERFLOW);
+ KmtEndSeh(STATUS_STACK_OVERFLOW);
#endif
}
Modified: trunk/rostests/kmtests/rtl/RtlUnicodeString.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/rtl/RtlUnicodeStr…
==============================================================================
--- trunk/rostests/kmtests/rtl/RtlUnicodeString.c [iso-8859-1] (original)
+++ trunk/rostests/kmtests/rtl/RtlUnicodeString.c [iso-8859-1] Thu Jun 14 17:48:14 2012
@@ -7,9 +7,6 @@
#define KMT_EMULATE_KERNEL
#include <kmt_test.h>
-
-#define StartSeh() ExceptionStatus = STATUS_SUCCESS; _SEH2_TRY {
-#define EndSeh(ExpectedStatus) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
ExceptionStatus = _SEH2_GetExceptionCode(); } _SEH2_END; ok_eq_hex(ExceptionStatus,
ExpectedStatus)
static
VOID
@@ -116,32 +113,32 @@
/* NULL for SearchString */
Position = 123;
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(0, NULL, &String, &Position);
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
ok_eq_uint(Position, 0);
/* NULL for SearchString and invalid flags */
Position = 123;
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(8, NULL, &String, &Position);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PARAMETER);
ok_eq_uint(Position, 0);
ok_eq_uint(Position, 0);
/* NULL for SearchString with zero-length MatchString */
Position = 123;
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(0, NULL, &ZeroLengthString,
&Position);
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
ok_eq_uint(Position, 0);
/* NULL for MatchString */
Position = 123;
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(0, &String, NULL, &Position);
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
ok_eq_uint(Position, 0);
/* This crashes in Windows, but not in ROS. I see no reason to add
@@ -149,30 +146,30 @@
#if 0
/* NULL for MatchString with zero-length SearchString */
Position = 123;
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(0, &ZeroLengthString, NULL,
&Position);
- EndSeh(STATUS_ACCESS_VIOLATION);
+ KmtEndSeh(STATUS_ACCESS_VIOLATION);
ok_eq_uint(Position, 0);
#endif
/* NULL for MatchString and invalid flags */
Position = 123;
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(8, &String, NULL, &Position);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PARAMETER);
ok_eq_uint(Position, 0);
/* NULL for Position */
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(0, &String, &String, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PARAMETER);
/* NULL for all three */
- StartSeh()
+ KmtStartSeh()
Status = RtlFindCharInUnicodeString(0, NULL, NULL, NULL);
- EndSeh(STATUS_SUCCESS);
+ KmtEndSeh(STATUS_SUCCESS);
ok_eq_hex(Status, STATUS_INVALID_PARAMETER);
#endif
}