[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)
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

View 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)

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>
<library>ntoskrnl</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>
<library>advapi32</library>
<define name="KMT_USER_MODE" />

View 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)
{

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>
<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>

View 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 },

View 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

View 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>

View 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>

View 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);