Author: tfaber
Date: Mon Jul 11 18:03:19 2011
New Revision: 52638

URL: http://svn.reactos.org/svn/reactos?rev=52638&view=rev
Log:
[KMTESTS]
- add support for hidden tests also for kernel-mode
- small fixes and improvements

Modified:
    branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h
    branches/GSoC_2011/KMTestSuite/kmtests/kmtest/kmtest.c
    branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_drv.c
    branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/testlist.c
    branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeDpc.c

Modified: branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h?rev=52638&r1=52637&r2=52638&view=diff
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h [iso-8859-1] 
(original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/include/kmt_test.h [iso-8859-1] Mon 
Jul 11 18:03:19 2011
@@ -129,6 +129,8 @@
 #define ok_eq_uint(value, expected)         ok_eq_print(value, expected, "%u")
 #define ok_eq_long(value, expected)         ok_eq_print(value, expected, "%ld")
 #define ok_eq_ulong(value, expected)        ok_eq_print(value, expected, "%lu")
+#define ok_eq_longlong(value, expected)     ok_eq_print(value, expected, 
"%I64d")
+#define ok_eq_ulonglong(value, expected)    ok_eq_print(value, expected, 
"%I64u")
 #define ok_eq_hex(value, expected)          ok_eq_print(value, expected, 
"0x%08lx")
 #define ok_bool_true(value, desc)           ok((value) == TRUE, desc " FALSE, 
expected TRUE\n")
 #define ok_bool_false(value, desc)          ok((value) == FALSE, desc " TRUE, 
expected FALSE\n")

Modified: branches/GSoC_2011/KMTestSuite/kmtests/kmtest/kmtest.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/kmtest/kmtest.c?rev=52638&r1=52637&r2=52638&view=diff
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/kmtest/kmtest.c [iso-8859-1] 
(original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/kmtest/kmtest.c [iso-8859-1] Mon Jul 
11 18:03:19 2011
@@ -31,6 +31,7 @@
 {
     KMT_DO_NOTHING,
     KMT_LIST_TESTS,
+    KMT_LIST_ALL_TESTS,
     KMT_RUN_TEST,
 } KMT_OPERATION;
 
@@ -38,11 +39,11 @@
 SC_HANDLE KmtestServiceHandle;
 PCSTR ErrorFileAndLine = "No error";
 
-static void OutputError(DWORD Error);
-static DWORD ListTests(VOID);
-static PKMT_TESTFUNC FindTest(PCSTR TestName);
-static DWORD OutputResult(PCSTR TestName);
-static DWORD RunTest(PCSTR TestName);
+static void OutputError(IN DWORD Error);
+static DWORD ListTests(IN BOOLEAN IncludeHidden);
+static PKMT_TESTFUNC FindTest(IN PCSTR TestName);
+static DWORD OutputResult(IN PCSTR TestName);
+static DWORD RunTest(IN PCSTR TestName);
 int __cdecl main(int ArgCount, char **Arguments);
 
 /**
@@ -56,7 +57,7 @@
 static
 void
 OutputError(
-    DWORD Error)
+    IN DWORD Error)
 {
     PSTR Message;
     if (!FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | 
FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER,
@@ -79,11 +80,15 @@
  * The list will comprise tests as listed by the driver
  * in addition to user-mode tests in TestList.
  *
+ * @param IncludeHidden
+ *        TRUE to include "hidden" tests prefixed with a '-'
+ *
  * @return Win32 error code
  */
 static
 DWORD
-ListTests(VOID)
+ListTests(
+    IN BOOLEAN IncludeHidden)
 {
     DWORD Error = ERROR_SUCCESS;
     CHAR Buffer[1024];
@@ -101,10 +106,6 @@
     // output test list plus user-mode tests
     while (TestEntry->TestName || *TestName)
     {
-        // tests starting with a '-' should not be listed
-        while (TestEntry->TestName && *TestEntry->TestName == '-')
-            ++TestEntry;
-
         if (!TestEntry->TestName)
         {
             NextTestName = TestName;
@@ -136,7 +137,12 @@
                 TestName += strlen(TestName) + 1;
             }
         }
-        printf("    %s\n", NextTestName);
+
+        if (IncludeHidden && NextTestName[0] == '-')
+            ++NextTestName;
+
+        if (NextTestName[0] != '-')
+            printf("    %s\n", NextTestName);
     }
 
 cleanup:
@@ -156,7 +162,7 @@
 static
 PKMT_TESTFUNC
 FindTest(
-    PCSTR TestName)
+    IN PCSTR TestName)
 {
     PCKMT_TEST TestEntry = TestList;
 
@@ -188,7 +194,7 @@
 static
 DWORD
 OutputResult(
-    PCSTR TestName)
+    IN PCSTR TestName)
 {
     DWORD Error = ERROR_SUCCESS;
     DWORD BytesWritten;
@@ -214,7 +220,7 @@
 static
 DWORD
 RunTest(
-    PCSTR TestName)
+    IN PCSTR TestName)
 {
     DWORD Error = ERROR_SUCCESS;
     PKMT_TESTFUNC TestFunction;
@@ -267,6 +273,7 @@
     PCSTR AppName = "kmtest.exe";
     PCSTR TestName = NULL;
     KMT_OPERATION Operation = KMT_DO_NOTHING;
+    BOOLEAN ShowHidden = FALSE;
 
     Error = KmtServiceInit();
     if (Error)
@@ -279,6 +286,7 @@
     {
         printf("Usage: %s <test_name>                 - run the specified test 
(creates/starts the driver(s) as appropriate)\n", AppName);
         printf("       %s --list                      - list available 
tests\n", AppName);
+        printf("       %s --list-all                  - list available tests, 
including hidden\n", AppName);
         printf("       %s <create|delete|start|stop>  - manage the kmtest 
driver\n\n", AppName);
         Operation = KMT_LIST_TESTS;
     }
@@ -296,6 +304,8 @@
 
         else if (!lstrcmpA(TestName, "--list"))
             Operation = KMT_LIST_TESTS;
+        else if (!lstrcmpA(TestName, "--list-all"))
+            Operation = KMT_LIST_ALL_TESTS;
         else
             Operation = KMT_RUN_TEST;
     }
@@ -312,8 +322,11 @@
 
         switch (Operation)
         {
+            case KMT_LIST_ALL_TESTS:
+                ShowHidden = TRUE;
+                /* fall through */
             case KMT_LIST_TESTS:
-                Error = ListTests();
+                Error = ListTests(ShowHidden);
                 break;
             case KMT_RUN_TEST:
                 Error = RunTest(TestName);

Modified: branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_drv.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_drv.c?rev=52638&r1=52637&r2=52638&view=diff
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_drv.c [iso-8859-1] 
(original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/kmtest_drv.c [iso-8859-1] 
Mon Jul 11 18:03:19 2011
@@ -284,7 +284,10 @@
             for (TestEntry = TestList; TestEntry->TestName; ++TestEntry)
             {
                 ANSI_STRING EntryName;
-                RtlInitAnsiString(&EntryName, TestEntry->TestName);
+                if (TestEntry->TestName[0] == '-')
+                    RtlInitAnsiString(&EntryName, TestEntry->TestName + 1);
+                else
+                    RtlInitAnsiString(&EntryName, TestEntry->TestName);
 
                 if (!RtlCompareString(&TestName, &EntryName, FALSE))
                 {

Modified: branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/testlist.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/testlist.c?rev=52638&r1=52637&r2=52638&view=diff
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/testlist.c [iso-8859-1] 
(original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/testlist.c [iso-8859-1] 
Mon Jul 11 18:03:19 2011
@@ -24,18 +24,18 @@
 
 const KMT_TEST TestList[] =
 {
-    { "Example",            Test_Example },
-    { "ExPools",            Test_ExPools },
-    { "ExResource",         Test_ExResource },
-    { "ExTimer",            Test_ExTimer },
-    { "FsRtlExpression",    Test_FsRtlExpression },
-    { "IoDeviceInterface",  Test_IoDeviceInterface },
-    { "IoIrp",              Test_IoIrp },
-    { "IoMdl",              Test_IoMdl },
-    { "KeApc",              Test_KeApc },
-    { "KeDpc",              Test_KeDpc },
-    { "KeIrql",             Test_KeIrql },
-    { "KeProcessor",        Test_KeProcessor },
-    { "ObCreate",           Test_ObCreate },
-    { NULL,                 NULL }
+    { "Example",                            Test_Example },
+    { "ExPools",                            Test_ExPools },
+    { "ExResource",                         Test_ExResource },
+    { "ExTimer",                            Test_ExTimer },
+    { "FsRtlExpression",                    Test_FsRtlExpression },
+    { "IoDeviceInterface",                  Test_IoDeviceInterface },
+    { "IoIrp",                              Test_IoIrp },
+    { "IoMdl",                              Test_IoMdl },
+    { "KeApc",                              Test_KeApc },
+    { "KeDpc",                              Test_KeDpc },
+    { "KeIrql",                             Test_KeIrql },
+    { "KeProcessor",                        Test_KeProcessor },
+    { "ObCreate",                           Test_ObCreate },
+    { NULL,                                 NULL }
 };

Modified: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeDpc.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeDpc.c?rev=52638&r1=52637&r2=52638&view=diff
==============================================================================
--- branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeDpc.c [iso-8859-1] 
(original)
+++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeDpc.c [iso-8859-1] Mon Jul 
11 18:03:19 2011
@@ -16,8 +16,8 @@
 
 /* TODO: DPC importance */
 
-static volatile LONG DpcCount = 0;
-static volatile UCHAR DpcImportance = MediumImportance;
+static volatile LONG DpcCount;
+static volatile UCHAR DpcImportance;
 
 static KDEFERRED_ROUTINE DpcHandler;
 
@@ -73,6 +73,9 @@
     LONG ExpectedDpcCount = 0;
     BOOLEAN Ret;
     int i;
+
+    DpcCount = 0;
+    DpcImportance = MediumImportance;
 
 #define ok_dpccount() ok(DpcCount == ExpectedDpcCount, "DpcCount = %ld, 
expected %ld\n", DpcCount, ExpectedDpcCount);
     trace("Dpc = %p\n", &Dpc);


Reply via email to