mirror of
https://github.com/reactos/reactos.git
synced 2025-01-07 06:45:24 +00:00
[KMTEST]
- Add KeStallExecutionProcessor test. svn path=/trunk/; revision=47047
This commit is contained in:
parent
2e62657924
commit
e2463c955c
3 changed files with 89 additions and 0 deletions
|
@ -106,6 +106,7 @@ PWCHAR CreateLowerDeviceRegistryKey(PUNICODE_STRING RegistryPath, PWCHAR NewDriv
|
|||
* Test Declarations
|
||||
*/
|
||||
VOID NtoskrnlIoTests();
|
||||
VOID NtoskrnlKeTests();
|
||||
VOID NtoskrnlObTest();
|
||||
VOID NtoskrnlExecutiveTests();
|
||||
VOID NtoskrnlPoolsTest();
|
||||
|
@ -214,6 +215,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
|
|||
ThisDriverObject = DriverObject;
|
||||
|
||||
NtoskrnlExecutiveTests();
|
||||
NtoskrnlKeTests();
|
||||
NtoskrnlIoTests();
|
||||
NtoskrnlObTest();
|
||||
NtoskrnlPoolsTest();
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<file>reghelper.c</file>
|
||||
<file>ntos_ex.c</file>
|
||||
<file>ntos_io.c</file>
|
||||
<file>ntos_ke.c</file>
|
||||
<file>ntos_ob.c</file>
|
||||
<file>ntos_pools.c</file>
|
||||
<file>kmtest.rc</file>
|
||||
|
|
86
rostests/drivers/kmtest/ntos_ke.c
Normal file
86
rostests/drivers/kmtest/ntos_ke.c
Normal file
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* INCLUDES *******************************************************************/
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ntifs.h>
|
||||
#include <ndk/ntndk.h>
|
||||
#include "kmtest.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include "debug.h"
|
||||
|
||||
/* PRIVATE FUNCTIONS ***********************************************************/
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
KeStallTest()
|
||||
{
|
||||
ULONG i;
|
||||
LARGE_INTEGER TimeStart, TimeFinish;
|
||||
|
||||
StartTest();
|
||||
|
||||
DPRINT1("Waiting for 30 secs with 50us stalls...\n");
|
||||
KeQuerySystemTime(&TimeStart);
|
||||
for (i = 0; i < (30*1000*20); i++)
|
||||
{
|
||||
KeStallExecutionProcessor(50);
|
||||
}
|
||||
KeQuerySystemTime(&TimeFinish);
|
||||
DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 30
|
||||
|
||||
DPRINT1("Waiting for 30 secs with 1000us stalls...\n");
|
||||
KeQuerySystemTime(&TimeStart);
|
||||
for (i = 0; i < (30*1000); i++)
|
||||
{
|
||||
KeStallExecutionProcessor(1000);
|
||||
}
|
||||
KeQuerySystemTime(&TimeFinish);
|
||||
DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 30
|
||||
|
||||
DPRINT1("Waiting for 30 secs with 1us stalls...\n");
|
||||
KeQuerySystemTime(&TimeStart);
|
||||
for (i = 0; i < (30*1000*1000); i++)
|
||||
{
|
||||
KeStallExecutionProcessor(1);
|
||||
}
|
||||
KeQuerySystemTime(&TimeFinish);
|
||||
DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 43
|
||||
|
||||
DPRINT1("Waiting for 30 secs with one huge stall...\n");
|
||||
KeQuerySystemTime(&TimeStart);
|
||||
KeStallExecutionProcessor(30*1000000);
|
||||
KeQuerySystemTime(&TimeFinish);
|
||||
DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 30
|
||||
|
||||
FinishTest("NTOSKRNL KeStallmanExecution test");
|
||||
}
|
||||
|
||||
/* PUBLIC FUNCTIONS ***********************************************************/
|
||||
|
||||
VOID
|
||||
NtoskrnlKeTests()
|
||||
{
|
||||
KeStallTest();
|
||||
}
|
Loading…
Reference in a new issue