[KMTESTS:KE]
[reactos.git] / rostests / kmtests / ntos_ke / KeEvent.c
index 2446ef6..247fb0b 100644 (file)
@@ -2,7 +2,7 @@
  * PROJECT:         ReactOS kernel-mode tests
  * LICENSE:         GPLv2+ - See COPYING in the top level directory
  * PURPOSE:         Kernel-Mode Test Suite Event test
- * PROGRAMMER:      Thomas Faber <thfabba@gmx.de>
+ * PROGRAMMER:      Thomas Faber <thomas.faber@reactos.org>
  */
 
 #include <kmt_test.h>
@@ -23,7 +23,7 @@
     for (TheIndex = 0; TheIndex < (ThreadCount); ++TheIndex)                    \
     {                                                                           \
         TheThread = CONTAINING_RECORD(TheEntry, KTHREAD,                        \
-                                        WaitBlock[0].WaitListEntry);            \
+                                      WaitBlock[0].WaitListEntry);              \
         ok_eq_pointer(TheThread, (ThreadList)[TheIndex]);                       \
         ok_eq_pointer(TheEntry->Flink->Blink, TheEntry);                        \
         TheEntry = TheEntry->Flink;                                             \
@@ -153,8 +153,8 @@ TestEventConcurrent(
     KPRIORITY Priority;
     LARGE_INTEGER LongTimeout, ShortTimeout;
     INT i;
-    KWAIT_BLOCK WaitBlock[MAXIMUM_WAIT_OBJECTS];
-    PVOID ThreadObjects[MAXIMUM_WAIT_OBJECTS];
+    KWAIT_BLOCK WaitBlock[RTL_NUMBER_OF(Threads)];
+    PVOID ThreadObjects[RTL_NUMBER_OF(Threads)];
     LONG State;
     PKTHREAD Thread = KeGetCurrentThread();
 
@@ -169,7 +169,7 @@ TestEventConcurrent(
         Threads[i].Signal = FALSE;
         Status = PsCreateSystemThread(&Threads[i].Handle, GENERIC_ALL, NULL, NULL, NULL, WaitForEventThread, &Threads[i]);
         ok_eq_hex(Status, STATUS_SUCCESS);
-        Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&Threads[i].Thread, NULL);
+        Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, *PsThreadType, KernelMode, (PVOID *)&Threads[i].Thread, NULL);
         ok_eq_hex(Status, STATUS_SUCCESS);
         ThreadObjects[i] = Threads[i].Thread;
         Priority = KeQueryPriorityThread(Threads[i].Thread);
@@ -225,30 +225,29 @@ START_TEST(KeEvent)
 {
     KEVENT Event;
     KIRQL Irql;
-    KIRQL Irqls[] = { PASSIVE_LEVEL, APC_LEVEL, DISPATCH_LEVEL, HIGH_LEVEL };
-    INT i;
+    KIRQL Irqls[] = { PASSIVE_LEVEL, APC_LEVEL, DISPATCH_LEVEL };
+    ULONG i;
     KPRIORITY PriorityIncrement;
 
-    for (i = 0; i < sizeof Irqls / sizeof Irqls[0]; ++i)
+    for (i = 0; i < RTL_NUMBER_OF(Irqls); ++i)
     {
-        /* DRIVER_IRQL_NOT_LESS_OR_EQUAL (TODO: on MP only?) */
-        if (Irqls[i] > DISPATCH_LEVEL && KmtIsCheckedBuild)
-            return;
         KeRaiseIrql(Irqls[i], &Irql);
         TestEventFunctional(&Event, NotificationEvent, Irqls[i]);
         TestEventFunctional(&Event, SynchronizationEvent, Irqls[i]);
         KeLowerIrql(Irql);
     }
 
-    for (i = 0; i < sizeof Irqls / sizeof Irqls[0]; ++i)
+    for (i = 0; i < RTL_NUMBER_OF(Irqls); ++i)
     {
         /* creating threads above DISPATCH_LEVEL... nope */
-        if (Irqls[i] >= DISPATCH_LEVEL && KmtIsCheckedBuild)
+        if (Irqls[i] >= DISPATCH_LEVEL)
             continue;
         KeRaiseIrql(Irqls[i], &Irql);
         trace("IRQL: %u\n", Irqls[i]);
         for (PriorityIncrement = -1; PriorityIncrement <= 8; ++PriorityIncrement)
         {
+            if (PriorityIncrement < 0 && KmtIsCheckedBuild)
+                continue;
             trace("PriorityIncrement: %ld\n", PriorityIncrement);
             trace("-> Checking KeSetEvent, NotificationEvent\n");
             TestEventConcurrent(&Event, NotificationEvent, Irqls[i], KeSetEvent, PriorityIncrement, 1, TRUE);