1*c2c66affSColin Finck /* 2*c2c66affSColin Finck * PROJECT: ReactOS kernel-mode tests 3*c2c66affSColin Finck * LICENSE: LGPLv2+ - See COPYING.LIB in the top level directory 4*c2c66affSColin Finck * PURPOSE: Kernel-Mode Test Suite Executive Regressions KM-Test 5*c2c66affSColin Finck * PROGRAMMER: Aleksey Bragin <aleksey@reactos.org> 6*c2c66affSColin Finck */ 7*c2c66affSColin Finck 8*c2c66affSColin Finck /* TODO: this test doesn't process any test results; it also takes very long */ 9*c2c66affSColin Finck 10*c2c66affSColin Finck #include <kmt_test.h> 11*c2c66affSColin Finck 12*c2c66affSColin Finck #define NDEBUG 13*c2c66affSColin Finck #include <debug.h> 14*c2c66affSColin Finck KeStallExecutionProcessorTest(VOID)15*c2c66affSColin Finckstatic VOID KeStallExecutionProcessorTest(VOID) 16*c2c66affSColin Finck { 17*c2c66affSColin Finck ULONG i; 18*c2c66affSColin Finck LARGE_INTEGER TimeStart, TimeFinish; 19*c2c66affSColin Finck 20*c2c66affSColin Finck DPRINT1("Waiting for 30 secs with 50us stalls...\n"); 21*c2c66affSColin Finck KeQuerySystemTime(&TimeStart); 22*c2c66affSColin Finck for (i = 0; i < (30*1000*20); i++) 23*c2c66affSColin Finck { 24*c2c66affSColin Finck KeStallExecutionProcessor(50); 25*c2c66affSColin Finck } 26*c2c66affSColin Finck KeQuerySystemTime(&TimeFinish); 27*c2c66affSColin Finck DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 30 28*c2c66affSColin Finck 29*c2c66affSColin Finck DPRINT1("Waiting for 30 secs with 1000us stalls...\n"); 30*c2c66affSColin Finck KeQuerySystemTime(&TimeStart); 31*c2c66affSColin Finck for (i = 0; i < (30*1000); i++) 32*c2c66affSColin Finck { 33*c2c66affSColin Finck KeStallExecutionProcessor(1000); 34*c2c66affSColin Finck } 35*c2c66affSColin Finck KeQuerySystemTime(&TimeFinish); 36*c2c66affSColin Finck DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 30 37*c2c66affSColin Finck 38*c2c66affSColin Finck DPRINT1("Waiting for 30 secs with 1us stalls...\n"); 39*c2c66affSColin Finck KeQuerySystemTime(&TimeStart); 40*c2c66affSColin Finck for (i = 0; i < (30*1000*1000); i++) 41*c2c66affSColin Finck { 42*c2c66affSColin Finck KeStallExecutionProcessor(1); 43*c2c66affSColin Finck } 44*c2c66affSColin Finck KeQuerySystemTime(&TimeFinish); 45*c2c66affSColin Finck DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 43 46*c2c66affSColin Finck 47*c2c66affSColin Finck DPRINT1("Waiting for 30 secs with one huge stall...\n"); 48*c2c66affSColin Finck KeQuerySystemTime(&TimeStart); 49*c2c66affSColin Finck KeStallExecutionProcessor(30*1000000); 50*c2c66affSColin Finck KeQuerySystemTime(&TimeFinish); 51*c2c66affSColin Finck DPRINT1("Time elapsed: %d secs\n", (TimeFinish.QuadPart - TimeStart.QuadPart) / 10000000); // 30 52*c2c66affSColin Finck } 53*c2c66affSColin Finck START_TEST(KeProcessor)54*c2c66affSColin FinckSTART_TEST(KeProcessor) 55*c2c66affSColin Finck { 56*c2c66affSColin Finck KeStallExecutionProcessorTest(); 57*c2c66affSColin Finck } 58