[KMTESTS]

- 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
This commit is contained in:
Thomas Faber 2011-07-22 11:33:17 +00:00
parent 270b3045e7
commit 7eb0e89e51
11 changed files with 39 additions and 18 deletions

View file

@ -36,9 +36,9 @@ add_library(kmtest_drv SHARED ${KMTEST_DRV_SOURCE})
set_module_type(kmtest_drv kernelmodedriver) set_module_type(kmtest_drv kernelmodedriver)
target_link_libraries(kmtest_drv kmtest_printf ${PSEH_LIB}) target_link_libraries(kmtest_drv kmtest_printf ${PSEH_LIB})
add_importlibs(kmtest_drv ntoskrnl hal) 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 add_library(kmtest_printf
kmtest_drv/printf_stubs.c kmtest_drv/printf_stubs.c

View file

@ -12,4 +12,4 @@ target_link_libraries(example_drv kmtest_printf ${PSEH_LIB})
add_importlibs(example_drv ntoskrnl hal) add_importlibs(example_drv ntoskrnl hal)
set_property(TARGET example_drv PROPERTY COMPILE_DEFINITIONS KMT_STANDALONE_DRIVER) 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)

View 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> <include base="kmtest_drv">include</include>
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>

View 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> <include base="kmtest">include</include>
<library>advapi32</library> <library>advapi32</library>
<define name="KMT_USER_MODE" /> <define name="KMT_USER_MODE" />

View file

@ -73,6 +73,33 @@ OutputError(
LocalFree(Message); 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 * @name ListTests
* *
@ -118,7 +145,7 @@ ListTests(
} }
else else
{ {
int Result = strcmp(TestEntry->TestName, TestName); INT Result = CompareTestNames(TestEntry->TestName, TestName);
if (Result == 0) if (Result == 0)
{ {

View 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> <include base="kmtest_drv">include</include>
<library>ntoskrnl</library> <library>ntoskrnl</library>
<library>hal</library> <library>hal</library>
<library>pseh</library> <library>pseh</library>
<library>kmtest_printf</library> <library>kmtest_printf</library>
<define name="KMT_KERNEL_MODE" /> <define name="KMT_KERNEL_MODE" />
<define name="NTDDI_VERSION">NTDDI_WS03SP1</define>
<directory name="kmtest_drv"> <directory name="kmtest_drv">
<file>kmtest_drv.c</file> <file>kmtest_drv.c</file>
<file>testlist.c</file> <file>testlist.c</file>

View file

@ -27,13 +27,13 @@ KMT_TESTFUNC Test_ObCreate;
const KMT_TEST TestList[] = const KMT_TEST TestList[] =
{ {
{ "Example", Test_Example },
{ "ExHardError", Test_ExHardError }, { "ExHardError", Test_ExHardError },
{ "-ExHardErrorInteractive", Test_ExHardErrorInteractive }, { "-ExHardErrorInteractive", Test_ExHardErrorInteractive },
{ "ExInterlocked", Test_ExInterlocked }, { "ExInterlocked", Test_ExInterlocked },
{ "ExPools", Test_ExPools }, { "ExPools", Test_ExPools },
{ "ExResource", Test_ExResource }, { "ExResource", Test_ExResource },
{ "ExTimer", Test_ExTimer }, { "ExTimer", Test_ExTimer },
{ "Example", Test_Example },
{ "FsRtlExpression", Test_FsRtlExpression }, { "FsRtlExpression", Test_FsRtlExpression },
{ "IoDeviceInterface", Test_IoDeviceInterface }, { "IoDeviceInterface", Test_IoDeviceInterface },
{ "IoIrp", Test_IoIrp }, { "IoIrp", Test_IoIrp },

View file

@ -25,8 +25,6 @@ __declspec(dllimport) int __stdcall ExInterlockedDecrementLong(l
__declspec(dllimport) int __stdcall Exi386InterlockedIncrementLong(long *); __declspec(dllimport) int __stdcall Exi386InterlockedIncrementLong(long *);
__declspec(dllimport) int __stdcall Exi386InterlockedDecrementLong(long *); __declspec(dllimport) int __stdcall Exi386InterlockedDecrementLong(long *);
#undef NTDDI_VERSION
#define NTDDI_VERSION NTDDI_WS03SP1
#include <ntddk.h> #include <ntddk.h>
#include <pseh/pseh2.h> #include <pseh/pseh2.h>
@ -213,7 +211,7 @@ TestInterlockedFunctional(VOID)
PKSPIN_LOCK pSpinLock = &SpinLock; PKSPIN_LOCK pSpinLock = &SpinLock;
PROCESSOR_STATE OldState, NewState; 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 #if defined _M_IX86 || defined _M_AMD64
pSpinLock = NULL; pSpinLock = NULL;
#endif #endif

View file

@ -5,8 +5,6 @@
* PROGRAMMER: Thomas Faber <thfabba@gmx.de> * PROGRAMMER: Thomas Faber <thfabba@gmx.de>
*/ */
#undef NTDDI_VERSION
#define NTDDI_VERSION NTDDI_WS03SP1
#include <ntddk.h> #include <ntddk.h>
#include <ntifs.h> #include <ntifs.h>
#include <ndk/extypes.h> #include <ndk/extypes.h>

View file

@ -5,8 +5,6 @@
* PROGRAMMER: Thomas Faber <thfabba@gmx.de> * PROGRAMMER: Thomas Faber <thfabba@gmx.de>
*/ */
#undef NTDDI_VERSION
#define NTDDI_VERSION NTDDI_WS03SP1
#include <ntddk.h> #include <ntddk.h>
#include <kmt_test.h> #include <kmt_test.h>

View file

@ -30,8 +30,7 @@ DpcHandler(
IN PVOID SystemArgument1, IN PVOID SystemArgument1,
IN PVOID SystemArgument2) IN PVOID SystemArgument2)
{ {
PKPCR Pcr = KeGetPcr(); PKPRCB Prcb = KeGetCurrentPrcb();
PKPRCB Prcb = Pcr->Prcb;
ok_irql(DISPATCH_LEVEL); ok_irql(DISPATCH_LEVEL);
InterlockedIncrement(&DpcCount); InterlockedIncrement(&DpcCount);
@ -58,7 +57,7 @@ DpcHandler(
ok_eq_pointer(Dpc->SystemArgument1, SystemArgument1); ok_eq_pointer(Dpc->SystemArgument1, SystemArgument1);
ok_eq_pointer(Dpc->SystemArgument2, SystemArgument2); ok_eq_pointer(Dpc->SystemArgument2, SystemArgument2);
ok_eq_pointer(Dpc->DpcData, NULL); ok_eq_pointer(Dpc->DpcData, NULL);
ok_eq_uint(Prcb->DpcRoutineActive, 1); ok_eq_uint(Prcb->DpcRoutineActive, 1);
/* this DPC is not in the list anymore, but it was at the head! */ /* 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); ok_eq_pointer(Prcb->DpcData[DPC_NORMAL].DpcListHead.Flink, Dpc->DpcListEntry.Flink);