summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/fasttest.inc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/fasttest.inc314
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: