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