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/C…
==============================================================================
--- 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/k…
==============================================================================
--- 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/k…
==============================================================================
--- 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/n…
==============================================================================
--- 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(a)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(a)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/n…
==============================================================================
--- 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(a)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(a)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/n…
==============================================================================
--- 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(a)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(a)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/n…
==============================================================================
--- 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(a)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(a)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/n…
==============================================================================
--- 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(a)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(a)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/n…
==============================================================================
--- 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(a)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(a)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/n…
==============================================================================
--- 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(a)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(a)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/n…
==============================================================================
--- 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(a)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(a)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");
-}
+}