Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

usrbench.h

Go to the documentation of this file.
00001 00002 /*++ 00003 00004 Copyright (c) 1995 Microsoft Corporation 00005 00006 Module Name 00007 00008 usrbench.h 00009 00010 Abstract: 00011 00012 USER performance numbers 00013 00014 Author: 00015 00016 Dan Almosnino (danalm) 25-July-1996 00017 Based on code by Mark Enstrom (marke) 13-Apr-1995 00018 00019 Enviornment: 00020 00021 User Mode 00022 00023 Revision History: 00024 00025 Dan Almosnino (danalm) 20-Sept-1995 00026 00027 Added some default values for text string-related tests 00028 00029 Dan Almosnino (danalm) 17-Oct-1995 00030 00031 Added some default values, globals and new functions for batch mode execution 00032 00033 Dan Almosnino (danalm) 20-Nov-1995 00034 00035 Included header files for Pentium Cycle Counter and Statistics module. 00036 Added some variables for statistic processing. 00037 00038 Dan Almosnino (danalm) 25-July-1996 00039 00040 Adapted from GDIbench to USERbench 00041 --*/ 00042 00043 00044 00045 int PASCAL 00046 WinMain( 00047 HINSTANCE hInst, 00048 HINSTANCE hPrev, 00049 LPSTR szCmdLine, 00050 int cmdShow 00051 ); 00052 00053 LRESULT FAR 00054 PASCAL WndProc( 00055 HWND hWnd, 00056 unsigned msg, 00057 WPARAM wParam, 00058 LPARAM lParam); 00059 00060 00061 ULONGLONG 00062 msSetBkColor( 00063 HDC hdc, 00064 ULONG iter 00065 ); 00066 00067 ULONGLONG 00068 msGetBkColor( 00069 HDC hdc, 00070 ULONG iter 00071 ); 00072 00073 ULONGLONG 00074 msCreateDCW( 00075 HDC hdc, 00076 ULONG iter 00077 ); 00078 00079 ULONGLONG 00080 msCreateDCA( 00081 HDC hdc, 00082 ULONG iter 00083 ); 00084 00085 INT_PTR 00086 APIENTRY 00087 ResultsDlgProc( 00088 HWND, 00089 UINT, 00090 WPARAM, 00091 LPARAM); 00092 00093 INT_PTR 00094 APIENTRY 00095 HelpDlgProc( 00096 HWND, 00097 UINT, 00098 WPARAM, 00099 LPARAM); 00100 00101 00102 VOID 00103 SaveResults(); 00104 00105 char * 00106 SelectOutFileName( 00107 HWND hWnd 00108 ); 00109 00110 VOID 00111 WriteBatchResults( 00112 FILE *fpOut, 00113 int TestType, 00114 int cycle 00115 ); 00116 00117 int 00118 SyncMenuChecks( 00119 HWND hWnd, 00120 int Last_Checked, 00121 int New_Checked 00122 ); 00123 00124 int 00125 Std_Parse( 00126 char *txtbuf, 00127 int limit, 00128 int *array); 00129 00130 #ifdef _X86_ 00131 #include "cycle.h" 00132 #endif 00133 00134 #include "stats.h" 00135 00136 typedef ULONG (*PFN_MS)(HDC,ULONG); 00137 00138 typedef struct _TEST_ENTRY 00139 { 00140 PUCHAR Api; 00141 PFN_MS pfn; 00142 ULONG Iter; 00143 ULONG Result; 00144 00145 }TEST_ENTRY,*PTEST_ENTRY; 00146 00147 #define CMD_IS(x) (NULL != strstr(szCmdLine,x)) 00148 00149 #define INIT_TIMER ULONGLONG StartTime,StopTime; \ 00150 ULONG ix = Iter; \ 00151 ULONGLONG overhead = 0; \ 00152 ULONGLONG ov1, ov2 00153 00154 00155 #define START_TIMER UpdateWindow(ghwndMDIClient); \ 00156 StartTime = BeginTimeMeasurement() 00157 00158 #define END_TIMER_NO_RETURN \ 00159 StopTime = EndTimeMeasurement(StartTime + overhead, Iter) 00160 00161 #define RETURN_STOP_TIME return StopTime 00162 00163 #define END_TIMER \ 00164 StopTime = EndTimeMeasurement(StartTime + overhead, Iter); \ 00165 return StopTime 00166 00167 #ifdef _X86_ 00168 #define START_OVERHEAD \ 00169 if(gfPentium) \ 00170 ov1 = GetCycleCount(); \ 00171 else \ 00172 QueryPerformanceCounter((LARGE_INTEGER *)&ov1) 00173 #define END_OVERHEAD \ 00174 if(gfPentium) \ 00175 ov2 = GetCycleCount(); \ 00176 else \ 00177 QueryPerformanceCounter((LARGE_INTEGER *)&ov2); \ 00178 overhead += ov2 - ov1 00179 00180 #else // !_X86_ 00181 00182 #define START_OVERHEAD \ 00183 QueryPerformanceCounter((LARGE_INTEGER *)&ov1) 00184 #define END_OVERHEAD \ 00185 QueryPerformanceCounter((LARGE_INTEGER *)&ov2); \ 00186 overhead += ov2 - ov1 00187 00188 #endif 00189 00190 00191 #define FIRST_TEXT_FUNCTION 10 00192 #define LAST_TEXT_FUNCTION 19 00193 00194 #define DEFAULT_STRING_LENGTH 32 00195 #define DEFAULT_A_STRING "This is just a silly test string" 00196 #define DEFAULT_W_STRING L"This is just a silly test string" 00197 00198 #define ALL 11 00199 #define QUICK 12 00200 #define TEXT_SUITE 13 00201 #define SELECT 14 00202 #define POINTS_PER_INCH 72 00203 00204 extern ULONG gNumTests; 00205 extern ULONG gNumQTests; 00206 extern TEST_ENTRY gTestEntry[]; 00207 00208 00209 #define NUM_TESTS gNumTests 00210 #define NUM_QTESTS gNumQTests 00211 #define NUM_SAMPLES 10 // Number of test samples to be taken, each performing the test 00212 // TEST_DEFAULT times 00213 #define VAR_LIMIT 3 // Desired Variation Coefficient (StdDev/Average) in percents 00214 00215 #ifdef MAIN_MODULE 00216 #define PUBLIC 00217 #else 00218 #define PUBLIC extern 00219 #endif 00220 00221 PUBLIC TEST_STATS TestStats[200]; // Sample Array [of size at least as number of test entries] 00222 PUBLIC long Detailed_Data[200][NUM_SAMPLES]; // Storage for detailed sample data 00223 00224 PUBLIC _int64 PerformanceFreq; /* Timer Frequency */ 00225 00226 // Text String Tests Related 00227 00228 PUBLIC size_t StrLen; 00229 00230 PUBLIC char SourceString[129]; 00231 PUBLIC wchar_t SourceStringW[129]; 00232 PUBLIC char DestString[256]; 00233 PUBLIC wchar_t DestStringW[256]; 00234 PUBLIC wchar_t WCstrbuf[256]; 00235 00236 00237 PUBLIC BYTE DisplayHelp; 00238 00239 // Batch Mode Related 00240 00241 PUBLIC BYTE TextSuiteFlag; 00242 PUBLIC BYTE BatchFlag; 00243 PUBLIC int BatchCycle; 00244 PUBLIC BYTE Finish_Message; 00245 PUBLIC BYTE Dont_Close_App; 00246 PUBLIC BYTE SelectedFontTransparent; 00247 PUBLIC BYTE String_Length_Warn; 00248 PUBLIC BYTE Print_Detailed; 00249 00250 PUBLIC FILE *fpIniFile; 00251 PUBLIC FILE *fpOutFile; 00252 PUBLIC char IniFileName[80]; 00253 PUBLIC char *OutFileName;

Generated on Sat May 15 19:42:17 2004 for test by doxygen 1.3.7