diff options
Diffstat (limited to 'public/sdk/inc/fasttest.inc')
-rw-r--r-- | public/sdk/inc/fasttest.inc | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/public/sdk/inc/fasttest.inc b/public/sdk/inc/fasttest.inc new file mode 100644 index 000000000..8519732d8 --- /dev/null +++ b/public/sdk/inc/fasttest.inc @@ -0,0 +1,314 @@ +'FastTest.inc - definitions/declarations for Fast Test routines +' +' Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved. +' +'Purpose: +' This file declares the functions, constants and variables +' used by the Fast Test routines. +' +'NOTES: +' A common code sequence is used throughout to catch unexpected errors +' using the ON ERROR command. The sequence is explained in this note +' but not each time that it is used. +' +' gErrorType = ET_NEXT ' Global variable to indicate how to handle +' ' an unexpected error: +' ' ET_NEXT : save that error happened +' ' and continue on next statement +' ' ET_NOTHING : let driver catch unexpected +' ' errors with message +' ' ET_LOG : error happened in log routine +' +' ' some code that could cause runtime errors +' fh1% = FREEFILE ' out of handles? +' OPEN stFileSpec1$ FOR INPUT AS #fh1% ' file doesn't exist? +' fh2% = FREEFILE ' out of handles? +' OPEN stFileSpec2$ FOR INPUT AS #fh2% ' file doesn't exist? +' +' IF gfError THEN ' since ET_NEXT was used above, we would +' ' execute this block if an error had +' ' occurred. +' XLogFailure "Could not open files for XFileCmp" ' log a failure +' ' specific to this section of code +' ' if XSetTerminate is called to have scripts continue in event +' ' of errors, then the script will continue executing here +' gErrorType = ET_NOTHING ' reset so other unexpected errors are +' ' caught +' gfError = FALSE ' reset because we logged this already +' EXIT SUB ' can't continue with this function, +' ' something went wrong +' END IF + + + +'$DEFINE TESTCTRL +'$DEFINE TESTEVNT +'$INCLUDE 'MSTEST.inc' +'$INCLUDE 'WNAPIDEC.INC' + +' XLog constants to determine where to log information to +CONST LOG_DISK = 2 'log to disk +CONST LOG_SCREEN = 4 'log to screen (viewport in testdrvr) +CONST LOG_COM1 = 8 'log to COM1 port +CONST LOG_COM2 = 16 'log to COM2 port +CONST LOG_MSGBOX = 32 'log the string in a msgbox (Pause in testdrvr) + +' Mouse button constants that map to QueMouse function names, X functions +' can use either ones +CONST LBUTTON% = VK_LBUTTON +CONST MBUTTON% = VK_MBUTTON +CONST RBUTTON% = VK_RBUTTON + +'Global to be used to describe Log Options by ORing above Const's +GLOBAL gfLogOptions% +'Global to be used to save above flag when logging is temporarily turned off. +GLOBAL gfTmpLogOptions% + +gfLogOptions = LOG_SCREEN 'default to showing in viewport +gfTmpLogOptions = LOG_SCREEN 'default to showing in viewport + +GLOBAL gsCurrentDir$ +gsCurrentDir$ = curdir$ ' get current directory that started execution + +' Global variable to hold log file name +GLOBAL gsLogFileName$ +gsLogFileName$ = gsCurrentDir$ + "\FASTTEST.LOG" + +' Global variable to hold string to use as the keystrokes necessary +' to close the app in the case of errors +GLOBAL gsCleanup$ +gsCleanup$ = "{esc 5}%( )c" ' five escapes, alt-space C (for close) + +' Global variable to hold class name of app +GLOBAL gsAppClassname$ +gsAppClassname$ = "" + +' Global variable to hold state of whether to terminate on XLogFailure +GLOBAL gfTerminate% +gfTerminate% = TRUE ' default to terminate at first failure + +' Global variable that indicates if failure occured +GLOBAL gfFailure% +gfFailure% = FALSE + +'Global variable that indicates an ON ERROR occurred +GLOBAL gfError% +gfError% = FALSE + +'Global variable that is the string value for the dialog window class +GLOBAL gsDialogClass$ +gsDialogClass$ = "#32770" + + + +' Error Type constants (don't use 0) +CONST ET_NOTHING = 1 ' no handling, log unexpected runtime error +CONST ET_NEXT = 2 ' flag error, continue next statement +CONST ET_LOG = 3 ' error happened in log routines, inform user elsewise + +'Global variable that shows what type of error to handle +GLOBAL gErrorType% +gErrorType% = ET_NOTHING + + +'Prototypes from FTestLog.mst +DECLARE SUB XSetLogFilename(sFilename$) +DECLARE SUB XSetTerminate(fTerminate%) +DECLARE SUB XLog (stLog$) +DECLARE SUB XLogBanner(lpszInput$) +DECLARE SUB XLogWarning(lpszInput$) +DECLARE SUB XLogFailure(stFailure$) +DECLARE SUB XFailureCheck +DECLARE SUB XSetLogOptions (wLogOptions%) +DECLARE SUB XLogOff () +DECLARE SUB XLogOn () +DECLARE SUB XDialogBoxExists(s$) +DECLARE SUB XDialogBoxNotExists(s$) +DECLARE SUB XWaitDialogBox(s$, WaitTime%) +DECLARE SUB XButtonExists(stButton$) +DECLARE SUB XButtonNotExists(stButton$) +DECLARE SUB XButtonEnabled(stButton$) +DECLARE SUB XButtonNotEnabled(stButton$) +DECLARE SUB XClickButton(stButtonName$) +DECLARE SUB XListBoxExists(stListBox$) +DECLARE SUB XListBoxNotExists(stListBox$) +DECLARE SUB XFocusListBox(stListBox$) +DECLARE SUB XListBoxItemExists (stListBox$, stListBoxItem$) +DECLARE SUB XListBoxItemNotExists (stListBox$, stListBoxItem$) +DECLARE SUB XClickListBoxItem (stListBox$, stListBoxItem$) +DECLARE SUB XDblClickListBoxItem (stListBox$, stListBoxItem$) +DECLARE SUB XComboBoxExists(stComboBox$) +DECLARE SUB XComboBoxNotExists(stComboBox$) +DECLARE SUB XFocusComboBox(stComboBox$) +DECLARE SUB XComboBoxItemExists (stComboBox$, stComboBoxItem$) +DECLARE SUB XComboBoxItemNotExists (stComboBox$, stComboBoxItem$) +DECLARE SUB XClickComboBoxItem (stComboBox$, stComboBoxItem$) +DECLARE SUB XDblClickComboBoxItem (stComboBox$, stComboBoxItem$) +DECLARE SUB XCheckBoxExists(stCheckBox$) +DECLARE SUB XCheckBoxNotExists(stCheckBox$) +DECLARE SUB XCheckBoxChecked(stCheckBox$) +DECLARE SUB XCheckBoxNotChecked(stCheckBox$) +DECLARE SUB XCheckBoxEnabled(stCheckBox$) +DECLARE SUB XCheckBoxNotEnabled(stCheckBox$) +DECLARE SUB XClickCheckBox(stCheckBox$) +DECLARE SUB XEditTextExists(stEditText$) +DECLARE SUB XEditTextNotExists(stEditTextNot$) +DECLARE SUB XSetEditText (stEditCaption$, stEditText$) +DECLARE SUB XOptionButtonExists(stOptionButton$) +DECLARE SUB XOptionButtonNotExists(stOptionButton$) +DECLARE SUB XOptionButtonEnabled(stOptionButton$) +DECLARE SUB XOptionButtonNotEnabled(stOptionButton$) +DECLARE SUB XOptionButtonChecked(stOptionButton$) +DECLARE SUB XOptionButtonNotChecked(stOptionButton$) +DECLARE SUB XClickOptionButton(stOptionButton$) +DECLARE FUNCTION BDialogBoxExists%(s$) +DECLARE FUNCTION BButtonExists%(stButtonName$) +DECLARE FUNCTION BButtonEnabled%(stButtonName$) +DECLARE FUNCTION BListBoxExists%(stListBox$) +DECLARE FUNCTION IGetListBoxItemCount%(stListBox$) +DECLARE FUNCTION BListBoxItemExists%(stListBox$, stListBoxItem$) +DECLARE FUNCTION SGetListBoxItemText$(stListBox$) +DECLARE FUNCTION BComboBoxExists%(stComboBox$) +DECLARE FUNCTION IGetComboBoxItemCount%(stComboBox$) +DECLARE FUNCTION BComboBoxItemExists%(stComboBox$, stComboBoxItem$) +DECLARE FUNCTION SGetComboBoxItemText$(stComboBox$) +DECLARE FUNCTION BCheckBoxExists%(stCheckBox$) +DECLARE FUNCTION BCheckBoxChecked%(stCheckBox$) +DECLARE FUNCTION BCheckBoxEnabled%(stCheckBox$) +DECLARE FUNCTION BEditTextExists%(stEditText$) +DECLARE FUNCTION SGetEditText$(stEditCaption$) +DECLARE FUNCTION BOptionButtonExists%(stOptionButton$) +DECLARE FUNCTION BOptionButtonEnabled%(stOptionButton$) +DECLARE FUNCTION BOptionButtonChecked%(stOptionButton$) + +'Prototypes from FTestKey.mst +DECLARE SUB XKey (s$) +DECLARE SUB XAlt (s$) +DECLARE SUB XCtrl (s$) +DECLARE SUB XShift (s$) +DECLARE SUB XCtrlAlt (s$) +DECLARE SUB XAltShift (s$) +DECLARE SUB XCtrlShift (s$) +DECLARE SUB XCtrlAltShift (s$) +DECLARE SUB XText(s$) +DECLARE SUB XEnter(s$) +DECLARE SUB XSelectMenuItem(stMenu$,stMenuItem$,stHMenuItem$) +DECLARE SUB XMenuItemExists(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XMenuItemNotExists(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XMenuItemGrayed(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XMenuItemNotGrayed(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XMenuItemNotChecked(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XMenuItemNotEnabled(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE SUB XCaptionExists(stCaption$) +DECLARE SUB XCaptionNotExists(stCaption$) +DECLARE SUB XZoomWindow +DECLARE SUB XMaxWindow +DECLARE SUB XWindowMaximized +DECLARE SUB XWindowNotMaximized +DECLARE SUB XMinWindow +DECLARE SUB XWindowMinimized +DECLARE SUB XWindowNotMinimized +DECLARE SUB XRestoreWindow +DECLARE SUB XSizeActiveWindow (iXPixels%, iYPixels%, fAbsOrRel%) +DECLARE SUB XMoveActiveWindow (iXPixels%, iYPixels%, fAbsOrRel%) +DECLARE FUNCTION SKeyString$(s$) +DECLARE FUNCTION SHideKeys$(s$) +DECLARE FUNCTION BMenuItemExists%(stMenu$,stMenuItem$,stHMenuItem$) +DECLARE FUNCTION IGetMenuCount%(stMenu$, stMenuItem$) +DECLARE FUNCTION SGetMenuItemText$(stMenu$,stMenuItem$, iIndex%) +DECLARE FUNCTION BMenuItemGrayed%(stMenu$, stMenuItem$, stHMenuItem$) +DECLARE FUNCTION BMenuItemChecked%(stMenu$, stMenuItem$, stHMenuItem$) +DECLARE FUNCTION BMenuItemEnabled%(stMenu$,stMenuItem$, stHMenuItem$) +DECLARE FUNCTION SGetCaption$() +DECLARE FUNCTION BWindowMaximized% +DECLARE FUNCTION BWindowMinimized% + +'Prototypes from FTestUtl.mst +DECLARE SUB XFileExists(stFileSpec$) +DECLARE SUB XFileNotExists(stFileSpec$) +DECLARE SUB XFileCmp(stFileSpec1$,stFileSpec2$) +DECLARE SUB XFileNotCmp(stFileSpec1$,stFileSpec2$) +DECLARE SUB XDeleteFile(stFileSpec$) +DECLARE SUB XDeleteFileIfExists(stFileSpec$) +DECLARE SUB XCreateFile(stFileSpec$,s$) +DECLARE SUB XAppendFile(stFileSpec$,s$) +DECLARE SUB XWaitMessageFile(s$,Message$, WaitTime%) +DECLARE SUB XCWDCmp(s$) +DECLARE SUB XCWDNotCmp(s$) +DECLARE SUB XDriveCmp(s$) +DECLARE SUB XDriveNotCmp(s$) +DECLARE SUB XChangeCWD(s$) +DECLARE SUB XCreateDir(s$) +DECLARE SUB XChangeDrive(s$) +DECLARE SUB XStartApp(stAppName$, stClassname$) +DECLARE SUB XSetCleanup (sCleanup$) +DECLARE SUB XDoCleanup +DECLARE SUB XMoveMouse (x%, y%) +DECLARE SUB XClickMouse(button%, x%, y%) +DECLARE SUB XDblClickMouse(button%, x%, y%) +DECLARE SUB XDragMouse (button%, Begx%, Begy%, Endx%, Endy%) +DECLARE SUB XClipBoardCmp (s$) +DECLARE SUB XClipBoardNotCmp (s$) +DECLARE FUNCTION BFileExists%(stFileSpec$) +DECLARE FUNCTION BFileCmp%(stFileSpec1$,stFileSpec2$) +DECLARE FUNCTION BCWDCmp%(s$) +DECLARE FUNCTION BDriveCmp%(s$) +DECLARE FUNCTION HStartApp%(stAppName$) +DECLARE FUNCTION BClipBoardCmp (s$) + + + + +'$INCLUDE 'FTestLog.mst' +'$INCLUDE 'FTestKey.mst' +'$INCLUDE 'FTestUtl.mst' + + +' These routines have to be after the above includes so that +' the functions used are declared + +ON END XDoCleanup + +' Set a UAE trap and log failure if one occurs + +TRAP UAETrap FROM "TESTDRVR.EXE" + XSetTerminate TRUE + XLogFailure "Application UAEed" +END TRAP + +' in the FastTest code, gErrorType will be set to one of the following +' CASE items to be handled and set back to ET_NOTHING when the particular +' place where an error could occur is past. +ON ERROR GOTO XErrorHandler + +GOTO UsersCode ' branch around code used by On Error + +XErrorHandler: ' execute here on error conditions + + SELECT CASE gErrorType + CASE 0 + XSetTerminate TRUE + XLogFailure "Internal FastTest Error" ' catch undeclared ET vars + CASE ET_NOTHING + XSetTerminate TRUE + XLogFailure "Unexpected RunTime error;" + ERF + ":" + STR$(ERR) + " " + ERROR$(ERR) + CASE ET_NEXT + ' Code that uses this will check the global error variable + ' and log an appropriate error if one occurred + gfError = TRUE + RESUME NEXT + CASE ET_LOG ' something happened during logging, let user know + Print "****** A Log error occurred ******" + Pause "****** A Log error occurred ******" + + + END + + END SELECT + XSetTerminate TRUE + XLogFailure "Internal FastTest error" + + +UsersCode: |