[KMTESTS]
authorThomas Faber <thomas.faber@reactos.org>
Fri, 22 Jul 2011 11:33:17 +0000 (11:33 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Fri, 22 Jul 2011 11:33:17 +0000 (11:33 +0000)
- put driver files into 'bin' with the other tests instead of system32\drivers
- globally define NTDDI_VERSION=NTDDI_WS03_SP1 instead of doing it in each test
- fix testlist sorting (ASCII-order, but ignore leading minus)

svn path=/branches/GSoC_2011/KMTestSuite/; revision=52780

kmtests/CMakeLists.txt
kmtests/example/CMakeLists.txt
kmtests/example/example_drv.rbuild
kmtests/kmtest.rbuild
kmtests/kmtest/kmtest.c
kmtests/kmtest_drv.rbuild
kmtests/kmtest_drv/testlist.c
kmtests/ntos_ex/ExInterlocked.c
kmtests/ntos_ex/ExResource.c
kmtests/ntos_ke/KeApc.c
kmtests/ntos_ke/KeDpc.c

index 1426b7d..0a80c96 100644 (file)
@@ -36,9 +36,9 @@ add_library(kmtest_drv SHARED ${KMTEST_DRV_SOURCE})
 set_module_type(kmtest_drv kernelmodedriver)
 target_link_libraries(kmtest_drv kmtest_printf ${PSEH_LIB})
 add_importlibs(kmtest_drv ntoskrnl hal)
-set_property(TARGET kmtest_drv PROPERTY COMPILE_DEFINITIONS KMT_KERNEL_MODE)
+set_property(TARGET kmtest_drv PROPERTY COMPILE_DEFINITIONS KMT_KERNEL_MODE NTDDI_VERSION=NTDDI_WS03SP1)
 
-add_cd_file(TARGET kmtest_drv DESTINATION reactos/system32/drivers FOR all)
+add_cd_file(TARGET kmtest_drv DESTINATION reactos/bin FOR all)
 
 add_library(kmtest_printf
     kmtest_drv/printf_stubs.c
index 3ac0f80..f552d62 100644 (file)
@@ -12,4 +12,4 @@ target_link_libraries(example_drv kmtest_printf ${PSEH_LIB})
 add_importlibs(example_drv ntoskrnl hal)
 set_property(TARGET example_drv PROPERTY COMPILE_DEFINITIONS KMT_STANDALONE_DRIVER)
 
-add_cd_file(TARGET example_drv DESTINATION reactos/system32/drivers FOR all)
+add_cd_file(TARGET example_drv DESTINATION reactos/bin FOR all)
index c6041e8..e5460e7 100644 (file)
@@ -1,4 +1,4 @@
-<module name="example_drv" type="kernelmodedriver" installbase="system32/drivers" installname="example_drv.sys">
+<module name="example_drv" type="kernelmodedriver" installbase="bin" installname="example_drv.sys">
        <include base="kmtest_drv">include</include>
        <library>ntoskrnl</library>
        <library>hal</library>
index 5626344..31e4bcb 100644 (file)
@@ -1,4 +1,4 @@
-<module name="kmtest" type="win32cui" installbase="system32" installname="kmtest.exe">
+<module name="kmtest" type="win32cui" installbase="bin" installname="kmtest.exe">
        <include base="kmtest">include</include>
        <library>advapi32</library>
        <define name="KMT_USER_MODE" />
index a71c435..3be6977 100644 (file)
@@ -73,6 +73,33 @@ OutputError(
     LocalFree(Message);
 }
 
+/**
+ * @name CompareTestNames
+ *
+ * strcmp that skips a leading '-' on either string if present
+ *
+ * @param Str1
+ * @param Str2
+ * @return see strcmp
+ */
+static
+INT
+CompareTestNames(
+    IN PCSTR Str1,
+    IN PCSTR Str2)
+{
+    if (*Str1 == '-')
+        ++Str1;
+    if (*Str2 == '-')
+        ++Str2;
+    while (*Str1 && *Str1 == *Str2)
+    {
+        ++Str1;
+        ++Str2;
+    }
+    return *Str1 - *Str2;
+}
+
 /**
  * @name ListTests
  *
@@ -118,7 +145,7 @@ ListTests(
         }
         else
         {
-            int Result = strcmp(TestEntry->TestName, TestName);
+            INT Result = CompareTestNames(TestEntry->TestName, TestName);
 
             if (Result == 0)
             {
index 51b1094..81550a3 100644 (file)
@@ -1,10 +1,11 @@
-<module name="kmtest_drv" type="kernelmodedriver" installbase="system32/drivers" installname="kmtest_drv.sys">
+<module name="kmtest_drv" type="kernelmodedriver" installbase="bin" installname="kmtest_drv.sys">
        <include base="kmtest_drv">include</include>
        <library>ntoskrnl</library>
        <library>hal</library>
        <library>pseh</library>
        <library>kmtest_printf</library>
        <define name="KMT_KERNEL_MODE" />
+       <define name="NTDDI_VERSION">NTDDI_WS03SP1</define>
        <directory name="kmtest_drv">
                <file>kmtest_drv.c</file>
                <file>testlist.c</file>
index c5518a5..48ff9e8 100644 (file)
@@ -27,13 +27,13 @@ KMT_TESTFUNC Test_ObCreate;
 
 const KMT_TEST TestList[] =
 {
-    { "Example",                            Test_Example },
     { "ExHardError",                        Test_ExHardError },
     { "-ExHardErrorInteractive",            Test_ExHardErrorInteractive },
     { "ExInterlocked",                      Test_ExInterlocked },
     { "ExPools",                            Test_ExPools },
     { "ExResource",                         Test_ExResource },
     { "ExTimer",                            Test_ExTimer },
+    { "Example",                            Test_Example },
     { "FsRtlExpression",                    Test_FsRtlExpression },
     { "IoDeviceInterface",                  Test_IoDeviceInterface },
     { "IoIrp",                              Test_IoIrp },
index 7de1b51..19e57a9 100644 (file)
@@ -25,8 +25,6 @@ __declspec(dllimport)   int             __stdcall   ExInterlockedDecrementLong(l
 __declspec(dllimport)   int             __stdcall   Exi386InterlockedIncrementLong(long *);
 __declspec(dllimport)   int             __stdcall   Exi386InterlockedDecrementLong(long *);
 
-#undef NTDDI_VERSION
-#define NTDDI_VERSION NTDDI_WS03SP1
 #include <ntddk.h>
 #include <pseh/pseh2.h>
 
@@ -213,7 +211,7 @@ TestInterlockedFunctional(VOID)
     PKSPIN_LOCK pSpinLock = &SpinLock;
     PROCESSOR_STATE OldState, NewState;
 
-    /* on x86, most of these are supported intrinsicly and don't need a spinlock! */
+    /* on x86, most of these are supported intrinsically and don't need a spinlock! */
 #if defined _M_IX86 || defined _M_AMD64
     pSpinLock = NULL;
 #endif
index cc017cb..974e689 100644 (file)
@@ -5,8 +5,6 @@
  * PROGRAMMER:      Thomas Faber <thfabba@gmx.de>
  */
 
-#undef NTDDI_VERSION
-#define NTDDI_VERSION NTDDI_WS03SP1
 #include <ntddk.h>
 #include <ntifs.h>
 #include <ndk/extypes.h>
index a361a18..dc85887 100644 (file)
@@ -5,8 +5,6 @@
  * PROGRAMMER:      Thomas Faber <thfabba@gmx.de>
  */
 
-#undef NTDDI_VERSION
-#define NTDDI_VERSION NTDDI_WS03SP1
 #include <ntddk.h>
 #include <kmt_test.h>
 
index abf5441..5eacde6 100644 (file)
@@ -30,8 +30,7 @@ DpcHandler(
     IN PVOID SystemArgument1,
     IN PVOID SystemArgument2)
 {
-    PKPCR Pcr = KeGetPcr();
-    PKPRCB Prcb = Pcr->Prcb;
+    PKPRCB Prcb = KeGetCurrentPrcb();
 
     ok_irql(DISPATCH_LEVEL);
     InterlockedIncrement(&DpcCount);
@@ -58,7 +57,7 @@ DpcHandler(
     ok_eq_pointer(Dpc->SystemArgument1, SystemArgument1);
     ok_eq_pointer(Dpc->SystemArgument2, SystemArgument2);
     ok_eq_pointer(Dpc->DpcData, NULL);
-    
+
     ok_eq_uint(Prcb->DpcRoutineActive, 1);
     /* this DPC is not in the list anymore, but it was at the head! */
     ok_eq_pointer(Prcb->DpcData[DPC_NORMAL].DpcListHead.Flink, Dpc->DpcListEntry.Flink);