Author: tfaber Date: Mon Jun 27 08:49:23 2011 New Revision: 52480
URL: http://svn.reactos.org/svn/reactos?rev=52480&view=rev Log: [KMTESTS] - add mostly untouched ports of the easy-to-do tests from kmtest_old
Added: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ (with props) branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ExPools.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_pools.c branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ExTimer.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ex.c branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/ (with props) branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/FsRtlExpression.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_fsrtl.c branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/ (with props) branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoDeviceInterface.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/deviface_test.c branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoIrp.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_io.c branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoMdl.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_io.c branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/ (with props) branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeProcessor.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ke.c branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ (with props) branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ObCreate.c - copied, changed from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ob.c Modified: branches/GSoC_2011/KMTestSuite/kmtests/CMakeLists.txt branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv.rbuild branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/testlist.c
Modified: branches/GSoC_2011/KMTestSuite/kmtests/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/CM... ============================================================================== --- branches/GSoC_2011/KMTestSuite/kmtests/CMakeLists.txt [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/CMakeLists.txt [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -14,6 +14,14 @@ kmtest_drv/testlist.c
example/Example.c + ntos_ex/ExPools.c + ntos_ex/ExTimer.c + ntos_fsrtl/FsRtlExpression.c + ntos_io/IoDeviceInterface.c + ntos_io/IoIrp.c + ntos_io/IoMdl.c + ntos_ke/KeProcessor.c + ntos_ob/ObCreate.c
kmtest_drv/kmtest_drv.rc)
Modified: branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv.rbuild URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/km... ============================================================================== --- branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv.rbuild [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv.rbuild [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -12,6 +12,24 @@ </directory> <directory name="example"> <file>Example.c</file> + </directory> + <directory name="ntos_ex"> + <file>ExPools.c</file> + <file>ExTimer.c</file> + </directory> + <directory name="ntos_fsrtl"> + <file>FsRtlExpression.c</file> + </directory> + <directory name="ntos_io"> + <file>IoDeviceInterface.c</file> + <file>IoIrp.c</file> + <file>IoMdl.c</file> + </directory> + <directory name="ntos_ke"> + <file>KeProcessor.c</file> + </directory> + <directory name="ntos_ob"> + <file>ObCreate.c</file> </directory> </module> <module name="kmtest_printf" type="staticlibrary">
Modified: branches/GSoC_2011/KMTestSuite/kmtests/kmtest_drv/testlist.c URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/km... ============================================================================== --- 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 Jun 27 08:49:23 2011 @@ -9,9 +9,25 @@ #include <kmt_test.h>
KMT_TESTFUNC Test_Example; +KMT_TESTFUNC Test_ExPools; +KMT_TESTFUNC Test_ExTimer; +KMT_TESTFUNC Test_FsRtlExpression; +KMT_TESTFUNC Test_IoDeviceInterface; +KMT_TESTFUNC Test_IoIrp; +KMT_TESTFUNC Test_IoMdl; +KMT_TESTFUNC Test_KeProcessor; +KMT_TESTFUNC Test_ObCreate;
const KMT_TEST TestList[] = { - { "Example", Test_Example }, - { NULL, NULL } + { "Example", Test_Example }, + { "ExPools", Test_ExPools }, + { "ExTimer", Test_ExTimer }, + { "FsRtlExpression", Test_FsRtlExpression }, + { "IoDeviceInterface", Test_IoDeviceInterface }, + { "IoIrp", Test_IoIrp }, + { "IoMdl", Test_IoMdl }, + { "KeProcessor", Test_KeProcessor }, + { "ObCreate", Test_ObCreate }, + { NULL, NULL } };
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Mon Jun 27 08:49:23 2011 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+)
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details.
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ ------------------------------------------------------------------------------ bugtraq:number = true
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ ------------------------------------------------------------------------------ bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ExPools.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_pools.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_pools.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ExPools.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,49 +1,29 @@ /* - * NTOSKRNL Pools test routines KM-Test - * ReactOS Kernel Mode Regression Testing framework - * - * Copyright 2008 Aleksey Bragin aleksey@reactos.org - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite Pools test routines KM-Test + * PROGRAMMER: Aleksey Bragin aleksey@reactos.org */
-/* INCLUDES *******************************************************************/ +/* TODO: PoolsCorruption tests fail because accessing invalid memory doesn't necessarily cause an access violation */
-#include <ddk/ntddk.h> +#include <ntddk.h> #include <ntifs.h> #include <ndk/ntndk.h> /* SEH support with PSEH */ #include <pseh/pseh2.h> -#include "kmtest.h" +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" +#include <debug.h>
#define TAG_POOLTEST 'tstP'
-/* PUBLIC FUNCTIONS ***********************************************************/ - -VOID -PoolsTest(HANDLE KeyHandle) +static VOID PoolsTest(VOID) { PVOID Ptr; ULONG AllocSize, i, AllocNumber; PVOID *Allocs; - - StartTest();
// Stress-test nonpaged pool for (i=1; i<10000; i++) @@ -122,19 +102,13 @@
ExFreePoolWithTag(Allocs, TAG_POOLTEST); - - - FinishTest(KeyHandle, L"MmPoolAllocTest"); }
-VOID -PoolsCorruption(HANDLE KeyHandle) +static VOID PoolsCorruption(VOID) { PULONG Ptr, TestPtr; ULONG AllocSize; NTSTATUS Status = STATUS_SUCCESS; - - StartTest();
// start with non-paged pool AllocSize = 4096 + 0x10; @@ -173,6 +147,10 @@
// free the pool ExFreePoolWithTag(Ptr, TAG_POOLTEST); +}
- FinishTest(KeyHandle, L"MmPoolCorruptionTest"); +START_TEST(ExPools) +{ + PoolsTest(); + PoolsCorruption(); }
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ExTimer.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ex.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ex.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_ex/ExTimer.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,37 +1,19 @@ /* - * NTOSKRNL Executive Regressions KM-Test - * ReactOS Kernel Mode Regression Testing framework - * - * Copyright 2006 Aleksey Bragin aleksey@reactos.org - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite Executive Regressions KM-Test + * PROGRAMMER: Aleksey Bragin aleksey@reactos.org */
-/* INCLUDES *******************************************************************/ - -#include <ddk/ntddk.h> +#include <ntddk.h> #include <ntifs.h> #include <ndk/ntndk.h> -#include "kmtest.h" +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" +#include <debug.h>
-/* PRIVATE FUNCTIONS ***********************************************************/ - +static VOID NTAPI TestTimerApcRoutine(IN PVOID TimerContext, @@ -44,10 +26,7 @@ (*ApcCount)++; }
-/* PUBLIC FUNCTIONS *************************************************************/ - -VOID -ExTimerTest(HANDLE KeyHandle) +START_TEST(ExTimer) { UNICODE_STRING TimerName; OBJECT_ATTRIBUTES ObjectAttributes; @@ -57,8 +36,6 @@ BOOLEAN PreviousState, CurrentState; NTSTATUS Status; ULONG ApcCount; - - StartTest();
// Create the timer RtlInitUnicodeString(&TimerName, L"\TestTimer"); @@ -167,6 +144,4 @@
Status = ZwClose(TimerHandle); ok(Status == STATUS_SUCCESS, "ZwClose failed with Status=0x%08lX", Status); - - FinishTest(KeyHandle, L"ExTimerTest"); }
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Mon Jun 27 08:49:23 2011 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+)
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details.
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/ ------------------------------------------------------------------------------ bugtraq:number = true
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/ ------------------------------------------------------------------------------ bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/FsRtlExpression.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_fsrtl.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_fsrtl.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_fsrtl/FsRtlExpression.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,35 +1,19 @@ /* - * FsRtl Test - * - * Copyright 2010 Pierre Schweitzer pierre.schweitzer@reactos.org - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite FsRtl Test + * PROGRAMMER: Pierre Schweitzer pierre.schweitzer@reactos.org */
-/* INCLUDES *******************************************************************/ - -#include "kmtest.h" +/* TODO: most of these calls fail the Windows checked build's !islower assertion and others */ + #include <ntifs.h> +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" - -/* PRIVATE FUNCTIONS **********************************************************/ - -VOID FsRtlIsNameInExpressionTest() +#include <debug.h> + +static VOID FsRtlIsNameInExpressionTest() { UNICODE_STRING Expression, Name;
@@ -179,7 +163,7 @@ ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE"); }
-VOID FsRtlIsDbcsInExpressionTest() +static VOID FsRtlIsDbcsInExpressionTest() { ANSI_STRING Expression, Name;
@@ -329,15 +313,8 @@ ok(FsRtlIsDbcsInExpression(&Expression, &Name) == FALSE, "expected FALSE, got TRUE"); }
-/* PUBLIC FUNCTIONS ***********************************************************/ - -VOID -NtoskrnlFsRtlTest(HANDLE KeyHandle) +START_TEST(FsRtlExpression) { - StartTest(); - FsRtlIsNameInExpressionTest(); FsRtlIsDbcsInExpressionTest(); - - FinishTest(KeyHandle, L"FsRtlTest"); }
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Mon Jun 27 08:49:23 2011 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+)
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details.
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/ ------------------------------------------------------------------------------ bugtraq:number = true
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/ ------------------------------------------------------------------------------ bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoDeviceInterface.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/deviface_test.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/deviface_test.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoDeviceInterface.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,36 +1,20 @@ /* - * PnP Test - * Device Interface functions test - * - * Copyright 2004 Filip Navara xnavara@volny.cz - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite Device Interface functions test + * PROGRAMMER: Filip Navara xnavara@volny.cz */
-/* INCLUDES *******************************************************************/ +/* TODO: what's with the prototypes at the top, what's with the if-ed out part? Doesn't process most results */
-#include <ddk/ntifs.h> +#include <ntifs.h> #include <ndk/iotypes.h> -#include "kmtest.h" +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" +#include <debug.h>
-/* PRIVATE FUNCTIONS **********************************************************/ - +#if 0 NTSTATUS (NTAPI *IoGetDeviceInterfaces_Func)( IN CONST GUID *InterfaceClassGuid, @@ -44,8 +28,9 @@ IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN ULONG Flags, OUT PWSTR *SymbolicLinkList); +#endif /* 0 */
-VOID DeviceInterfaceTest_Func() +static VOID DeviceInterfaceTest_Func() { NTSTATUS Status; PWSTR SymbolicLinkList; @@ -102,7 +87,7 @@ ExFreePool(SymbolicLinkList); }
-VOID RegisterDI_Test(HANDLE KeyHandle) +START_TEST(IoDeviceInterface) { GUID Guid = {0x378de44c, 0x56ef, 0x11d1, {0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd}}; DEVICE_OBJECT DeviceObject; @@ -110,8 +95,6 @@ DEVICE_NODE DeviceNode; UNICODE_STRING SymbolicLinkName; NTSTATUS Status; - - StartTest();
RtlInitUnicodeString(&SymbolicLinkName, L"");
@@ -136,6 +119,4 @@ "IoRegisterDeviceInterface returned 0x%08lX\n", Status);
DeviceInterfaceTest_Func(); - - FinishTest(KeyHandle, L"IoDeviceInterfaceTest"); }
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoIrp.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_io.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_io.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoIrp.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,93 +1,21 @@ /* - * NTOSKRNL Io Regressions KM-Test - * ReactOS Kernel Mode Regression Testing framework - * - * Copyright 2006 Aleksey Bragin aleksey@reactos.org - * Copyright 2008 Etersoft (Alexander Morozov) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite Io Regressions KM-Test (Irp) + * PROGRAMMER: Aleksey Bragin aleksey@reactos.org */ +/* Based on code Copyright 2008 Etersoft (Alexander Morozov) */
-/* INCLUDES *******************************************************************/ - -#include <ddk/ntddk.h> -#include "kmtest.h" +#include <ntddk.h> +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" +#include <debug.h>
- -/* PUBLIC FUNCTIONS ***********************************************************/ - -VOID NtoskrnlIoMdlTest(HANDLE KeyHandle) -{ - PMDL Mdl; - PIRP Irp; - PVOID VirtualAddress; - ULONG MdlSize = 2*4096+184; // 2 pages and some random value - - StartTest(); - - // Try to alloc 2Gb MDL - Mdl = IoAllocateMdl(NULL, 2048UL*0x100000, FALSE, FALSE, NULL); - - ok(Mdl == NULL, - "IoAllocateMdl should fail allocation of 2Gb or more, but got Mdl=0x%X", - (UINT_PTR)Mdl); - - if (Mdl) - IoFreeMdl(Mdl); - - // Now create a valid MDL - VirtualAddress = ExAllocatePool(NonPagedPool, MdlSize); - Mdl = IoAllocateMdl(VirtualAddress, MdlSize, FALSE, FALSE, NULL); - ok(Mdl != NULL, "Mdl allocation failed"); - // Check fields of the allocated struct - ok(Mdl->Next == NULL, "Mdl->Next should be NULL, but is 0x%X", - (UINT_PTR)Mdl->Next); - ok(Mdl->ByteCount == MdlSize, - "Mdl->ByteCount should be equal to MdlSize, but is 0x%X", - (UINT_PTR)Mdl->ByteCount); - // TODO: Check other fields of MDL struct - - IoFreeMdl(Mdl); - // Allocate now with pointer to an Irp - Irp = IoAllocateIrp(1, FALSE); - ok(Irp != NULL, "IRP allocation failed"); - Mdl = IoAllocateMdl(VirtualAddress, MdlSize, FALSE, FALSE, Irp); - ok(Mdl != NULL, "Mdl allocation failed"); - ok(Irp->MdlAddress == Mdl, "Irp->MdlAddress should be 0x%X, but is 0x%X", - (UINT_PTR)Mdl, (UINT_PTR)Irp->MdlAddress); - - IoFreeMdl(Mdl); - - // TODO: Check a case when SecondaryBuffer == TRUE - - IoFreeIrp(Irp); - ExFreePool(VirtualAddress); - - FinishTest(KeyHandle, L"IoMdlTest"); -} - -VOID NtoskrnlIoIrpTest(HANDLE KeyHandle) +START_TEST(IoIrp) { USHORT size; IRP *iorp; - - StartTest();
// 1st test size = sizeof(IRP) + 5 * sizeof(IO_STACK_LOCATION); @@ -163,6 +91,4 @@
IoFreeIrp(iorp); } - - FinishTest(KeyHandle, L"IoIrpTest"); }
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoMdl.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_io.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_io.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_io/IoMdl.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,45 +1,22 @@ /* - * NTOSKRNL Io Regressions KM-Test - * ReactOS Kernel Mode Regression Testing framework - * - * Copyright 2006 Aleksey Bragin aleksey@reactos.org - * Copyright 2008 Etersoft (Alexander Morozov) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite Io Regressions KM-Test (Mdl) + * PROGRAMMER: Aleksey Bragin aleksey@reactos.org */
-/* INCLUDES *******************************************************************/ - -#include <ddk/ntddk.h> -#include "kmtest.h" +#include <ntddk.h> +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" +#include <debug.h>
- -/* PUBLIC FUNCTIONS ***********************************************************/ - -VOID NtoskrnlIoMdlTest(HANDLE KeyHandle) +START_TEST(IoMdl) { PMDL Mdl; PIRP Irp; PVOID VirtualAddress; ULONG MdlSize = 2*4096+184; // 2 pages and some random value - - StartTest();
// Try to alloc 2Gb MDL Mdl = IoAllocateMdl(NULL, 2048UL*0x100000, FALSE, FALSE, NULL); @@ -78,91 +55,4 @@
IoFreeIrp(Irp); ExFreePool(VirtualAddress); - - FinishTest(KeyHandle, L"IoMdlTest"); } - -VOID NtoskrnlIoIrpTest(HANDLE KeyHandle) -{ - USHORT size; - IRP *iorp; - - StartTest(); - - // 1st test - size = sizeof(IRP) + 5 * sizeof(IO_STACK_LOCATION); - iorp = ExAllocatePool(NonPagedPool, size); - - if (NULL != iorp) - { - IoInitializeIrp(iorp, size, 5); - - ok(6 == iorp->Type, "Irp type should be 6, but got %d\n", iorp->Type); - ok(iorp->Size == size, "Irp size should be %d, but got %d\n", - iorp->Size, size); - ok(5 == iorp->StackCount, "Irp StackCount should be 5, but got %d\n", - iorp->StackCount); - ok(6 == iorp->CurrentLocation, "Irp CurrentLocation should be 6, but got %d\n", - iorp->CurrentLocation); - ok(IsListEmpty(&iorp->ThreadListEntry), "IRP thread list is not empty\n"); - ok ((PIO_STACK_LOCATION)(iorp + 1) + 5 == - iorp->Tail.Overlay.CurrentStackLocation, - "CurrentStackLocation mismatch\n"); - - ExFreePool(iorp); - } - - // 2nd test - size = sizeof(IRP) + 2 * sizeof(IO_STACK_LOCATION); - iorp = IoAllocateIrp(2, FALSE); - - if (NULL != iorp) - { - ok(6 == iorp->Type, "Irp type should be 6, but got %d\n", iorp->Type); - ok(iorp->Size >= size, - "Irp size should be more or equal to %d, but got %d\n", - iorp->Size, size); - ok(2 == iorp->StackCount, "Irp StackCount should be 2, but got %d\n", - iorp->StackCount); - ok(3 == iorp->CurrentLocation, "Irp CurrentLocation should be 3, but got %d\n", - iorp->CurrentLocation); - ok(IsListEmpty(&iorp->ThreadListEntry), "IRP thread list is not empty\n"); - ok ((PIO_STACK_LOCATION)(iorp + 1) + 2 == - iorp->Tail.Overlay.CurrentStackLocation, - "CurrentStackLocation mismatch\n"); - ok((IRP_ALLOCATED_FIXED_SIZE & iorp->AllocationFlags), - "IRP Allocation flags lack fixed size attribute\n"); - ok(!(IRP_LOOKASIDE_ALLOCATION & iorp->AllocationFlags), - "IRP Allocation flags should not have lookaside allocation\n"); - - IoFreeIrp(iorp); - } - - // 3rd test - size = sizeof(IRP) + 2 * sizeof(IO_STACK_LOCATION); - iorp = IoAllocateIrp(2, TRUE); - - if (NULL != iorp) - { - ok(6 == iorp->Type, "Irp type should be 6, but got %d\n", iorp->Type); - ok(iorp->Size >= size, - "Irp size should be more or equal to %d, but got %d\n", - iorp->Size, size); - ok(2 == iorp->StackCount, "Irp StackCount should be 2, but got %d\n", - iorp->StackCount); - ok(3 == iorp->CurrentLocation, "Irp CurrentLocation should be 3, but got %d\n", - iorp->CurrentLocation); - ok(IsListEmpty(&iorp->ThreadListEntry), "IRP thread list is not empty\n"); - ok ((PIO_STACK_LOCATION)(iorp + 1) + 2 == - iorp->Tail.Overlay.CurrentStackLocation, - "CurrentStackLocation mismatch\n"); - ok((IRP_ALLOCATED_FIXED_SIZE & iorp->AllocationFlags), - "IRP Allocation flags lack fixed size attribute\n"); - ok((IRP_LOOKASIDE_ALLOCATION & iorp->AllocationFlags), - "IRP Allocation flags lack lookaside allocation\n"); - - IoFreeIrp(iorp); - } - - FinishTest(KeyHandle, L"IoIrpTest"); -}
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Mon Jun 27 08:49:23 2011 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+)
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details.
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/ ------------------------------------------------------------------------------ bugtraq:number = true
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/ ------------------------------------------------------------------------------ bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeProcessor.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ke.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ke.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_ke/KeProcessor.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,44 +1,24 @@ /* - * NTOSKRNL Executive Regressions KM-Test - * ReactOS Kernel Mode Regression Testing framework - * - * Copyright 2006 Aleksey Bragin aleksey@reactos.org - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite Executive Regressions KM-Test + * PROGRAMMER: Aleksey Bragin aleksey@reactos.org */
-/* INCLUDES *******************************************************************/ +/* TODO: this test doesn't process any test results; it also takes very long */
-#include <ddk/ntddk.h> +#include <ntddk.h> #include <ntifs.h> #include <ndk/ntndk.h> -#include "kmtest.h" +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" +#include <debug.h>
-/* PUBLIC FUNCTIONS ***********************************************************/ - -VOID -KeStallTest(HANDLE KeyHandle) +static VOID KeStallExecutionProcessorTest(VOID) { ULONG i; LARGE_INTEGER TimeStart, TimeFinish; - - StartTest();
DPRINT1("Waiting for 30 secs with 50us stalls...\n"); KeQuerySystemTime(&TimeStart); @@ -72,6 +52,9 @@ KeStallExecutionProcessor(30*1000000); KeQuerySystemTime(&TimeFinish); DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 30 +}
- FinishTest(KeyHandle, L"KeStallmanExecutionTest"); -} +START_TEST(KeProcessor) +{ + KeStallExecutionProcessorTest(); +}
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Mon Jun 27 08:49:23 2011 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+)
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details.
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ ------------------------------------------------------------------------------ bugtraq:number = true
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ ------------------------------------------------------------------------------ bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Copied: branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ObCreate.c (from r52215, branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ob.c) URL: http://svn.reactos.org/svn/reactos/branches/GSoC_2011/KMTestSuite/kmtests/nt... ============================================================================== --- branches/GSoC_2011/KMTestSuite/drivers/kmtest/ntos_ob.c [iso-8859-1] (original) +++ branches/GSoC_2011/KMTestSuite/kmtests/ntos_ob/ObCreate.c [iso-8859-1] Mon Jun 27 08:49:23 2011 @@ -1,35 +1,19 @@ /* - * NTOSKRNL Ob Regressions KM-Test - * ReactOS Kernel Mode Regression Testing framework - * - * Copyright 2006 Aleksey Bragin aleksey@reactos.org - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. - * If not, write to the Free Software Foundation, - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * PROJECT: ReactOS kernel-mode tests + * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory + * PURPOSE: Kernel-Mode Test Suite Ob Regressions KM-Test + * PROGRAMMER: Aleksey Bragin aleksey@reactos.org */
-/* INCLUDES *******************************************************************/ - -#include <ddk/ntddk.h> -#include <ddk/ntifs.h> -#include "kmtest.h" +/* TODO: this test terminates with an access violation in Windows */ + +#include <ntddk.h> +#include <ntifs.h> +#include <ndk/ntndk.h> +#include <kmt_test.h>
#define NDEBUG -#include "debug.h" - -#include "ntndk.h" +#include <debug.h>
// I ment to make this test scalable, but for now // we work with two object types only @@ -46,25 +30,24 @@ ULONG SomeLong[10]; } MY_OBJECT2, *PMY_OBJECT2;
-POBJECT_TYPE ObTypes[NUM_OBTYPES]; -UNICODE_STRING ObTypeName[NUM_OBTYPES]; -UNICODE_STRING ObName[NUM_OBTYPES]; -OBJECT_TYPE_INITIALIZER ObTypeInitializer[NUM_OBTYPES]; -UNICODE_STRING ObDirectoryName; -OBJECT_ATTRIBUTES ObDirectoryAttributes; -OBJECT_ATTRIBUTES ObAttributes[NUM_OBTYPES]; -PVOID ObBody[NUM_OBTYPES]; -PMY_OBJECT1 ObObject1; -PMY_OBJECT2 ObObject2; -HANDLE ObHandle1[NUM_OBTYPES]; -HANDLE ObHandle2[NUM_OBTYPES]; -HANDLE DirectoryHandle; - -USHORT DumpCount, OpenCount, CloseCount, DeleteCount, - ParseCount, OkayToCloseCount, QueryNameCount; - -/* PRIVATE FUNCTIONS **********************************************************/ - +static POBJECT_TYPE ObTypes[NUM_OBTYPES]; +static UNICODE_STRING ObTypeName[NUM_OBTYPES]; +static UNICODE_STRING ObName[NUM_OBTYPES]; +static OBJECT_TYPE_INITIALIZER ObTypeInitializer[NUM_OBTYPES]; +static UNICODE_STRING ObDirectoryName; +static OBJECT_ATTRIBUTES ObDirectoryAttributes; +static OBJECT_ATTRIBUTES ObAttributes[NUM_OBTYPES]; +static PVOID ObBody[NUM_OBTYPES]; +//static PMY_OBJECT1 ObObject1; +//static PMY_OBJECT2 ObObject2; +static HANDLE ObHandle1[NUM_OBTYPES]; +static HANDLE ObHandle2[NUM_OBTYPES]; +static HANDLE DirectoryHandle; + +static USHORT DumpCount, OpenCount, CloseCount, DeleteCount, + ParseCount, OkayToCloseCount, QueryNameCount; + +static VOID NTAPI DumpProc(IN PVOID Object, @@ -75,6 +58,7 @@ }
// Tested in Win2k3 +static VOID NTAPI OpenProc(IN OB_OPEN_REASON OpenReason, @@ -89,6 +73,7 @@ }
// Tested in Win2k3 +static VOID NTAPI CloseProc(IN PEPROCESS Process, @@ -103,6 +88,7 @@ }
// Tested in Win2k3 +static VOID NTAPI DeleteProc(IN PVOID Object) @@ -111,6 +97,7 @@ DeleteCount++; }
+static NTSTATUS NTAPI ParseProc(IN PVOID ParseObject, @@ -131,7 +118,9 @@ return STATUS_OBJECT_NAME_NOT_FOUND;//STATUS_SUCCESS; }
+#if 0 // Tested in Win2k3 +static NTSTATUS NTAPI OkayToCloseProc(IN PEPROCESS Process OPTIONAL, @@ -145,6 +134,7 @@ return STATUS_SUCCESS; }
+static NTSTATUS NTAPI QueryNameProc(IN PVOID Object, @@ -162,8 +152,9 @@ ReturnLength = 0; return STATUS_OBJECT_NAME_NOT_FOUND; } - - +#endif /* 0 */ + +static VOID ObtCreateObjectTypes() { @@ -215,6 +206,7 @@ } }
+static VOID ObtCreateDirectory() { @@ -230,6 +222,7 @@ "Failed to create directory object with status=0x%lX", Status); }
+static VOID ObtCreateObjects() { @@ -366,6 +359,7 @@ ok(ParseSave == ParseCount, "Parse method call mismatch\n"); }
+static VOID ObtClose() { @@ -427,6 +421,8 @@ */ }
+#if 0 +static VOID ObtReferenceTests() { @@ -483,14 +479,10 @@ ObDereferenceObject(ObBody[0]); ObDereferenceObject(ObBody[1]); } - -/* PUBLIC FUNCTIONS ***********************************************************/ - -VOID -NtoskrnlObTest(HANDLE KeyHandle) -{ - StartTest(); - +#endif /* 0 */ + +START_TEST(ObCreate) +{ DumpCount = 0; OpenCount = 0; CloseCount = 0; DeleteCount = 0; ParseCount = 0;
@@ -514,6 +506,4 @@ // Also it has problems with object types removal ObtClose(); DPRINT("Cleanup done\n"); - - FinishTest(KeyHandle, L"ObMgrTest"); -} +}