diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /public/sdk/inc/ftestutl.mst | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'public/sdk/inc/ftestutl.mst')
-rw-r--r-- | public/sdk/inc/ftestutl.mst | 1214 |
1 files changed, 1214 insertions, 0 deletions
diff --git a/public/sdk/inc/ftestutl.mst b/public/sdk/inc/ftestutl.mst new file mode 100644 index 000000000..b258aa75b --- /dev/null +++ b/public/sdk/inc/ftestutl.mst @@ -0,0 +1,1214 @@ +'FTESTUtl.inc - definitions for Fast Test Utility routines +' +' Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved. +' +'Purpose: +' This file defines the utility functions of the Fast Test functionality +' +'NOTES: +' See FASTTEST.INC for description of the Error catching that is coded +' throughout this module. + + +'********************************************************** +'***************** File Subroutines *********************** +'********************************************************** + + +' +' XFileExists(stFileSpec$) +' +' Description: +' Checks that stFileSpec$ exists. +' logs a failure if it can't find it (them; accept wildcards) +' +' Parameters: +' stFileSpec$ - file specification +' +' Returns: +' nothing +' +' Example: +' XFileExists "*.bak" +' +' +SUB XFileExists(stFileSpec$) STATIC + IF NOT EXISTS(stFileSpec$) THEN + XLogFailure stFileSpec$ + " doesn't exist" + END IF +END SUB + +' +' XFileNotExists(stFileSpec$) +' +' Description: +' Checks that stFileSpec$ doesn't exist. +' logs a failure if it finds it (them; accepts wildcards) +' +' Parameters: +' stFileSpec$ - file specification +' +' Returns: +' nothing +' +' Example: +' XFileNotExists "*.bak" +' +' +SUB XFileNotExists(stFileSpec$) STATIC + IF EXISTS(stFileSpec$) THEN + XLogFailure stFileSpec$ + " exists" + END IF +END SUB + +' +' BFileExists(stFileSpec$) +' +' Description: +' Checks if stFileSpec$ exists +' +' Parameters: +' stFileSpec$ - file specification +' +' Returns: +' TRUE if it exists, FALSE if not +' +' +' +FUNCTION BFileExists%(stFileSpec$) STATIC + BFileExists = EXISTS(stFileSpec$) +END FUNCTION + + +' +' XFileCmp(stFileSpec1$,stFileSpec2$) +' +' Description: +' Compares two files, line by line +' Logs a Failure if the files don't exist or are different +' +' Parameters: +' stFileSpec1$,stFileSpec2 - file specifications +' +' Returns: +' nothing +' +' Example: +' XFileCmp "Foo.dat","foo.bsl" +' +' +' +SUB XFileCmp(stFileSpec1$,stFileSpec2$) STATIC + DIM fh1% ' file handle of first file + DIM fh2% ' file handle of second file + DIM line1$ ' line from first file + DIM line2$ ' line from second file + DIM done ' flag to stop looping + DIM diff ' flag to indicate if files compare + + gErrorType = ET_NEXT + fh1% = FREEFILE + OPEN stFileSpec1$ FOR INPUT AS #fh1% + fh2% = FREEFILE + OPEN stFileSpec2$ FOR INPUT AS #fh2% + + IF gfError THEN + XLogFailure "Could not open files for XFileCmp" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + + done = FALSE + diff = FALSE + + IF EOF(fh1%) AND EOF(fh2%) THEN + done = TRUE + + ELSEIF EOF(fh1%) OR EOF(fh2%) THEN + diff = TRUE + done = TRUE + END IF + + + WHILE NOT done + + LINE INPUT #fh1%,line1$ + LINE INPUT #fh2%,line2$ + + IF gfError THEN + XLogFailure "XFileCmp INPUT or EOF errors" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + + IF line1$ <> line2$ THEN + done = TRUE + diff = TRUE + END IF + + IF NOT done AND EOF(fh1%) AND EOF(fh2%) THEN + done = TRUE + END IF + + IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN + diff = TRUE + done = TRUE + END IF + + WEND + + CLOSE #fh1% + CLOSE #fh2% + + IF gfError THEN + XLogFailure "XFileCmp CLOSE errors" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + gErrorType = ET_NOTHING + + IF diff THEN + XLogFailure "Files " + stFileSpec1$ + "," + stFileSpec2$ + " don't compare" + END IF + +END SUB + +' +' XFileNotCmp(stFileSpec1$,stFileSpec2$) +' +' Description: +' Compares two files, line by line +' Logs a Failure if the files don't exist or are same +' +' Parameters: +' stFileSpec1$,stFileSpec2 - file specifications +' +' Returns: +' nothing +' +' Example: +' XFileNotCmp "Foo.dat","foo.bsl" +' +' +' +SUB XFileNotCmp(stFileSpec1$,stFileSpec2$) STATIC + DIM fh1% ' file handle of first file + DIM fh2% ' file handle of second file + DIM line1$ ' line from first file + DIM line2$ ' line from second file + DIM done ' flag to stop looping + DIM diff ' flag to indicate if files compare + + gErrorType = ET_NEXT + + fh1% = FREEFILE + OPEN stFileSpec1$ FOR INPUT AS #fh1% + fh2% = FREEFILE + OPEN stFileSpec2$ FOR INPUT AS #fh2% + + IF gfError THEN + XLogFailure "Could not open files for XFileNotCmp" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + done = FALSE + diff = FALSE + + IF EOF(fh1%) AND EOF(fh2%) THEN + done = TRUE + END IF + + IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN + diff = TRUE + done = TRUE + END IF + + WHILE NOT done + + LINE INPUT #fh1%,line1$ + LINE INPUT #fh2%,line2$ + + IF gfError THEN + XLogFailure "XFileNotCmp INPUT or EOF errors" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + IF line1$ <> line2$ THEN + done = TRUE + diff = TRUE + END IF + + IF NOT done AND EOF(fh1%) AND EOF(fh2%) THEN + done = TRUE + END IF + + IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN + diff = TRUE + done = TRUE + END IF + + WEND + + CLOSE #fh1% + CLOSE #fh2% + + IF gfError THEN + XLogFailure "XFileNotCmp CLOSE errors" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + gErrorType = ET_NOTHING + + IF NOT diff THEN + XLogFailure "Files " + stFileSpec1$ + "," + stFileSpec2$ + " do compare" + END IF +END SUB + +' +' BFileCmp%(stFileSpec1$,stFileSpec2$) +' +' Description: +' Compares two files, line by line +' Logs a Failure if the files don't exist +' +' Parameters: +' stFileSpec1$,stFileSpec2 - file specifications +' +' Returns: +' FALSE IF XFileCmp would detect an error +' +' Example: +' x% = BFileCmp "Foo.dat","foo.bsl" +' +' +' +FUNCTION BFileCmp%(stFileSpec1$,stFileSpec2$) STATIC + DIM fh1% + DIM fh2% + DIM line1$ + DIM line2$ + DIM done + DIM diff + + gErrorType = ET_NEXT + fh1% = FREEFILE + OPEN stFileSpec1$ FOR INPUT AS #fh1% + fh2% = FREEFILE + OPEN stFileSpec2$ FOR INPUT AS #fh2% + + IF gfError THEN + BFileCmp = FALSE + gErrorType = ET_NOTHING + gfError = FALSE + EXIT FUNCTION + END IF + + done = FALSE + diff = FALSE + + IF EOF(fh1%) AND EOF(fh2%) THEN + done = TRUE + END IF + + IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN + diff = TRUE + done = TRUE + END IF + + WHILE NOT done + + LINE INPUT #fh1%,line1$ + LINE INPUT #fh2%,line2$ + + IF gfError THEN + BFileCmp = FALSE + gErrorType = ET_NOTHING + gfError = FALSE + EXIT FUNCTION + END IF + + IF line1$ <> line2$ THEN + done = TRUE + diff = TRUE + END IF + + IF NOT done AND EOF(fh1%) AND EOF(fh2%) THEN + done = TRUE + END IF + + IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN + diff = TRUE + done = TRUE + END IF + + WEND + + CLOSE #fh1% + CLOSE #fh2% + + IF gfError THEN + BFileCmp = FALSE + gErrorType = ET_NOTHING + gfError = FALSE + EXIT FUNCTION + END IF + + BFileCmp = NOT diff ' IF different a log failure would normally happen + +END FUNCTION + + +' +' XDeleteFile(stFileSpec$) +' +' Description: +' Will delete stFileSpec$ if it, they, exists. +' logs a failure if it can't delete them or if the file(s) +' doesn't exist +' +' Parameters: +' stFileSpec$ - file specification +' +' Returns: +' nothing +' +' Example: +' XDeleteFile "*.bak" +' +' +SUB XDeleteFile(stFileSpec$) STATIC + IF EXISTS(stFileSpec$) THEN + gErrorType = ET_NEXT + KILL stFileSpec$ + IF gfError THEN + XLogFailure "XDeleteFile " + stFileSpec$ + " could NOT be deleted" + gfError = FALSE + END IF + gErrorType = ET_NOTHING + ELSE + XLogFailure "XDeleteFile " + stFileSpec$ + " NOT deleted (doesn't exist)." + END IF +END SUB + +' +' XDeleteFileIfExists(stFileSpec$) +' +' Description: +' Will delete stFileSpec$ if it, they, exists. +' logs a failure if it can't delete them but doesn't if the file(s) +' doesn't exist +' +' Parameters: +' stFileSpec$ - file specification +' +' Returns: +' nothing +' +' Example: +' XDeleteFileIfExists "*.bak" +' +' +SUB XDeleteFileIfExists(stFileSpec$) STATIC + IF EXISTS(stFileSpec$) THEN + gErrorType = ET_NEXT + KILL stFileSpec$ + IF gfError THEN + XLogFailure "XDeleteFileIfExists " + stFileSpec$ + " could NOT be deleted" + gfError = FALSE + END IF + gErrorType = ET_NOTHING + END IF +END SUB + +' +' XCreateFile(stFileSpec$,s$) +' +' Description: +' Will Create stFileSpec$ and put string in it +' logs a failure if it can't Create it +' +' Parameters: +' stFileSpec$ - file specification +' +' Returns: +' nothing +' +' Example: +' XCreateFile "foo.dat","Hello world" +' +' +' + +SUB XCreateFile(stFileSpec$,s$) STATIC + DIM fh% + gErrorType = ET_NEXT + fh% = FREEFILE + + OPEN stFileSpec$ FOR OUTPUT AS #fh% + + PRINT #fh%,s$ ' put the string in the file + + CLOSE #fh% + + IF gfError THEN + XLogFailure "XCreateFile encountered runtime errors" + gfError = FALSE + END IF + gErrorType = ET_NOTHING + +END SUB + +' +' XAppendFile(stFileSpec$,s$) +' +' Description: +' Will Append stFileSpec$ and put string in it +' logs a failure if it can't Append it +' +' Parameters: +' stFileSpec$ - file specification +' +' Returns: +' nothing +' +' Example: +' XAppendFile "foo.dat","Hello world" +' +' +' + +SUB XAppendFile(stFileSpec$,s$) STATIC + DIM fh% + + gErrorType = ET_NEXT + + fh% = FREEFILE + + OPEN stFileSpec$ FOR APPEND AS #fh% + + PRINT #fh%,s$ ' put the string in the file + + CLOSE #fh% + + IF gfError THEN + XLogFailure "XAppendFile encountered runtime errors" + gfError = FALSE + END IF + gErrorType = ET_NOTHING + +END SUB + + +' +' XWaitMessageFile(s$,Message$,WaitTime%) +' +' Description: +' Wait for file to exist, only wait up to given time, +' check if string is in file (if string is non-empty) +' logs a failure if the files doesn't exist, or when +' it does and the string isn't in it. +' +' Parameters: +' s$ - file specification +' Message$ - the string to look for +' WaitTime% - the longest to wait +' +' Returns: +' nothing +' +' Example: +' XWaitMessageFile "foo.dat","Hello world",20 +' +' +' + +SUB XWaitMessageFile(s$,Message$, WaitTime%) STATIC + + DIM fDone% ' flag to stop looping + DIM fFound% ' flag to indicate if file found + DIM lineIn$ ' line from file + DIM inret% ' return from INSTR + DIM fh% ' File handle + + fDone = FALSE + fFound = FALSE + + WHILE NOT fDone + + IF EXISTS(s$) THEN + fDone = TRUE + fFound = TRUE + ELSE + SLEEP 1 + + WaitTime% = WaitTime% - 1 + IF WaitTime% <= 0 THEN + fDone = TRUE + END IF + END IF + WEND + + IF NOT fFound% THEN + XLogFailure "FAIL """ + s$ + """ Message File not found" + ELSE + + IF Message$ = "" THEN + ' don't bother searching if no string given + EXIT SUB + END IF + + fDone = FALSE + fFOUND = FALSE + + gErrorType = ET_NEXT + + fh% = FREEFILE + + OPEN s$ FOR INPUT AS # fh% + + IF EOF(fh%) THEN + fDone% = TRUE + END IF + + IF gfError THEN + XLogFailure "XWaitMessageFile encountered runtime error during OPEN" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + WHILE NOT fDone% + + LINE INPUT # fh%, lineIn$ + + IF gfError THEN + XLogFailure "XWaitMessageFile encountered runtime error during INPUT" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + + inret% = INSTR(lineIn$,Message$) + + IF inret% <> 0 THEN + fFound% = TRUE + fDone = TRUE + END IF + + IF EOF(fh%) THEN + fDone% = TRUE + END IF + WEND + + CLOSE # fh% + + IF gfError THEN + XLogFailure "XWaitMessageFile encountered runtime error during CLOSE" + gErrorType = ET_NOTHING + gfError = FALSE + EXIT SUB + END IF + gErrorType = ET_NOTHING + + IF NOT fFound% THEN + XLogFailure "FAIL, found """ + s$ + """ Message File, """ + Message$ + """ not in it" + END IF + END IF +END SUB + +'********************************************************** +'***************** Directory Subroutines ****************** +'********************************************************** + +' +' XCWDCmp(s$) +' +' Description: +' Compare the current working directory and log error if it +' doesn't match the expected value +' +' Parameters: +' s$ - the expected value for the current directory +' +' Returns: +' nothing +' +' Example: +' XCWDCmp "c:\tests" +' + +SUB XCWDCmp(s$) STATIC + + IF BCWDCmp(s$) = 0 THEN + XLogFailure "Current working directory (" + UCASE$(CURDIR$) + ") doesn't match " + UCASE$(s$) + END IF +END SUB + +' +' XCWDNotCmp(s$) +' +' Description: +' Compare the current working directory and log error if it +' does match the given value +' +' Parameters: +' s$ - the value for the directory that isn't expected +' +' Returns: +' nothing +' +' Example: +' XCWDNotCmp "c:\tests" +' + +SUB XCWDNotCmp(s$) STATIC + + IF UCASE$(CURDIR$) = UCASE$(s$) THEN + XLogFailure "Current working directory (" + UCASE$(CURDIR$) + ") matches " + UCASE$(s$) + END IF +END SUB + +' +' BCWDCmp(s$) +' +' Description: +' return compare of the current working directory and the expected value +' +' Parameters: +' s$ - the expected value for the current directory +' +' Returns: +' TRUE if matches, FALSE if doesn't +' +' Example: +' flag% = BCWDCmp("c:\tests") +' + +FUNCTION BCWDCmp%(s$) STATIC + + BCWDCmp = UCASE$(CURDIR$) = UCASE$(s$) + +END FUNCTION + +' +' XDriveCmp(s$) +' +' Description: +' Compare the current working drive and log error if it +' doesn't match the expected value +' +' Parameters: +' s$ - the expected value for the current drive +' +' Returns: +' nothing +' +' Example: +' XDriveCmp "c:" +' + +SUB XDriveCmp(s$) STATIC + + IF BDriveCmp%(s$) = 0 THEN + XLogFailure "Current working Drive (" + MID$(UCASE$(CURDIR$),1,2) + ") doesn't match " + UCASE$(s$) + END IF +END SUB + +' +' XDriveNotCmp(s$) +' +' Description: +' Compare the current working drive and log error if it +' does match the given value +' +' Parameters: +' s$ - the expected value for the current drive +' +' Returns: +' nothing +' +' Example: +' XDriveNotCmp "c:" +' +SUB XDriveNotCmp(s$) STATIC + + IF MID$(UCASE$(CURDIR$),1,2) = UCASE$(s$) THEN + XLogFailure "Current working Drive (" + MID$(UCASE$(CURDIR$),1,2) + ") matches " + s$ + END IF +END SUB + +' +' BDriveCmp(s$) +' +' Description: +' return compare the current working drive and the expected value +' +' Parameters: +' s$ - the expected value for the current drive +' +' Returns: +' TRUE if matches, FALSE if doesn't +' +' Example: +' flag% = BDriveCmp("c:") +' + +FUNCTION BDriveCmp%(s$) STATIC + + BDriveCmp = MID$(UCASE$(CURDIR$),1,2) = UCASE$(s$) + +END FUNCTION + +' +' XChangeCWD(s$) +' +' Description: +' Change to given working directory, log failure if doesn't succeed +' +' Parameters: +' s$ - directory to change to +' +' Returns: +' nothing +' +' Example: +' XChangeCWD "\tmp" +' +' +SUB XChangeCWD(s$) STATIC + gErrorType = ET_NEXT + CHDIR s$ + IF gfError THEN + XLogFailure "XChangeCWD could not change directory" + gfError = FALSE + END IF + gErrorType = ET_NOTHING +END SUB + +' +' XCreateDir(s$) +' +' Description: +' Create the given directory, log failure if doesn't succeed +' +' Parameters: +' s$ - directory to create +' +' Returns: +' nothing +' +' Example: +' XCreateDir "\tmpdir" +' +' +SUB XCreateDir(s$) STATIC + gErrorType = ET_NEXT + MKDIR s$ + IF gfError THEN + XLogFailure "XCreateDir could not create directory" + gfError = FALSE + END IF + gErrorType = ET_NOTHING +END SUB + +' +' XChangeDrive(s$) +' +' Description: +' Change the current working drive, log failure if doesn't succeed +' +' Parameters: +' s$ - drive to change to +' +' Returns: +' nothing +' +' Example: +' XChangeDrive "c:" +' +' +SUB XChangeDrive(s$) STATIC + gErrorType = ET_NEXT + CHDRIVE s$ + IF gfError THEN + XLogFailure "XChangeDrive could not change drive" + gfError = FALSE + END IF + gErrorType = ET_NOTHING +END SUB + +'********************************************************** +'***************** Program Subroutines ******************** +'********************************************************** + + + +' +' HStartApp%(stAppName$) +' +' Description: +' Starts app AppName and returns the handle to the App +' +' Parameters: +' stAppName$ - name of app to WinExec and get handle to +' +' Returns: +' handle to application started +' +' Example: +' hWinHelp% = HStartApp("winhelp.exe") +' +' +FUNCTION HStartApp%(stAppName$) STATIC + DIM Bogus%, hwndActive%, hwndNewApp% + DIM lpszTemp$ + + ' Get the current foreground window + hwndActive = GetForegroundWindow () + + Bogus% = WinExec (stAppName$, SW_SHOWNORMAL) + lpszTemp$ = "WinExec error with " + stAppName$ + " :" + + ' WinExec defines SOME of the values between 0 and 32 + ' as errors... any return value greater than 32 + ' should be considered a success! + SELECT CASE Bogus% + CASE 0 + XLogFailure lpszTemp$ + "Out of memory - exiting" + + CASE 2 + XLogFailure lpszTemp$ + "File not found" + End + CASE 3 + XLogFailure lpszTemp$ + "Path not found" + + CASE 5 + XLogFailure lpszTemp$ + "Attempt to dynamically link to a task" + + CASE 6 + XLogFailure lpszTemp$ + "Library requires separate data segments" + + CASE 10 + XLogFailure lpszTemp$ + "Incorrect Windows version" + + CASE 11 + XLogFailure lpszTemp$ + "Invalid EXE file" + + CASE 12 + XLogFailure lpszTemp$ + "OS/2 application" + + CASE 13 + XLogFailure lpszTemp$ + "DOS 4.0 application" + + CASE 14 + XLogFailure lpszTemp$ + "Unknown EXE type" + + CASE 15 + XLogFailure lpszTemp$ + "Must run in real mode Windows" + + CASE 16 + XLogFailure lpszTemp$ + "Cannot run more than one instance" + + CASE 17 + XLogFailure lpszTemp$ + "Large-frame EMS allows only one instance" + + CASE 18 + XLogFailure lpszTemp$ + "Must run in standard or enhanced mode Windows" + + CASE 0 TO 32 + XLogFailure lpszTemp$ + "Unknown Error in WinExec" + + END SELECT + + ' Wait until the old foreground window is no longer the foreground wnd + while hwndActive = GetForegroundWindow + sleep 1 + wend + + HStartApp = GetForegroundWindow () +END FUNCTION + +' +' XStartApp(stAppName$) +' +' Description: +' Starts app AppName and sets handle to ghAppHwnd. +' if we get a null handle, THEN we end the script here. +' +' Parameters: +' stAppName$ - name of app to WinExec +' +' Returns: +' nothing +' +' Example: +' XStartApp "winhelp.exe" +' +' +SUB XStartApp(stAppName$, stClassname$) STATIC + DIM logstr$ + 'ghAppHwnd is a global + ghAppHwnd = HStartApp(stAppName$) + IF (ghAppHwnd = 0) THEN + 'we didn't get a handle + XLogFailure "Unable to start app " + stAppName$ + ELSEIF stClassname$ <> "" THEN + gsAppClassname = stClassname$ ' remember it for later + IF FindWindow(stClassname$,NULL) = 0 THEN + ' The app isn't around + logstr$ = "The app " + stAppName$ + " started but didn't stay OR..." + logstr$ = logstr$ + CRLF$ + "the given class name (" + logstr$ = logstr$ + stClassname$ + ") is incorrect" + XLogFailure logstr$ + END IF + END IF +END SUB + +' +' XSetCleanup(sCleanup$) +' +' Description: +' Stores a user defined DoKeys string to be used to exit the +' application automatically. If set to an empty string, +' nothing will be sent with DoKeys but there will still be +' a log failure if the application is still running when the +' script ends (no check is done if there wasn't a classname +' supplied with XStartApp +' +' Parameters: +' sCleanup$ - the string to use with DoKeys to end the app +' +' Returns: +' nothing +' +' Example: +' XSetCleanup "{esc 5}%vx" +' +' +SUB XSetCleanup (sCleanup$) STATIC + gsCleanup$ = sCleanup$ +END SUB + +' This routine is not intended to be called in the user script. +' This routine is executed when the script finishes with an END +' statement. Its purpose is to find the application started with +' XStartapp using the classname supplied there. if it exists, +' and the gsCleanup string is nonempty, the gsCleanup string will +' be played. This may still not get rid of the app for various +' reasons: maybe it is prompting to save a file, or it won't exit +' a dialog... + +SUB XDoCleanup STATIC + DIM logstr$ + IF gsCleanup$ <> "" AND gsAppClassname$ <> "" AND FindWindow(gsAppClassname$,NULL) <> 0 THEN + DoKeys gsCleanup$ + END IF + IF gsAppClassname$ <> "" AND FindWindow(gsAppClassname$,NULL) <> 0 THEN + logstr$ = "The app with class name " + gsAppClassname$ + " was not" + logstr$ = logstr$ + CRLF$ + "halted by the cleanup string " + gsCleanup$ + XLogFailure logstr$ + END IF + +END SUB + + + +'********************************************************** +'***************** Mouse Subroutines ********************** +'********************************************************** + +' The mouse routines use the VK_LBUTTON, VK_RBUTTON, VK_MBUTTON +' constants to determine which button to use (or LBUTTON, MBUTTON or RBUTTON +' as defined in fasttest.inc + + +' +' XMoveMouse(x%,y%) +' +' Description: +' Moves the mouse pointer to specified absolute screen coordinates +' +' Parameters: +' x%,y% - x and y coordinates to move to +' +' Returns: +' nothing +' +' Example: +' XMoveMouse 100,120 +' +' + +SUB XMoveMouse (x%, y%) STATIC + + QueMouseMove x%,y% + QueFlush FALSE +END SUB + + +' +' XClickMouse(button%,x%,y%) +' +' Description: +' Clicks the mouse pointer to specified absolute screen coordinates +' +' Parameters: +' button% - which button to click +' x%,y% - x and y coordinates to move to +' +' Returns: +' nothing +' +' Example: +' XClickMouse LBUTTON,100,120 +' +' + +SUB XClickMouse(button%, x%, y%) STATIC + + QueMouseDn button%,x%,y% + QueMouseUp button%,x%,y% + QueFlush FALSE + +END SUB + +' +' XDblClickMouse(button%,x%,y%) +' +' Description: +' Clicks the mouse pointer to specified absolute screen coordinates +' +' Parameters: +' button% - which button to double click +' x%,y% - x and y coordinates to move to +' +' Returns: +' nothing +' +' Example: +' XDblClickMouse LBUTTON,100,120 +' +' +SUB XDblClickMouse(button%, x%, y%) STATIC + + QueMouseDblClk button%,x%,y% + QueFlush FALSE + +END SUB + +' +' XDragMouse (button%, Begx%, Begy%, Endx%, Endy%) +' +' Description: +' Drags the mouse pointer to specified absolute screen coordinates +' +' Parameters: +' button% - which button to use for dragging +' Begx%,Begy% - x and y coordinates to Drag from +' Endx%,Endy% - x and y coordinates to Drag to +' +' Returns: +' nothing +' +' Example: +' XDragMouse LBUTTON,100,120, 200,220 +' +' +SUB XDragMouse (button%, Begx%, Begy%, Endx%, Endy%) STATIC + + QueMouseDn button%,Begx%,Begy% + QueMouseMove Endx%,Endy% + QueMouseUp button%,Endx%,Endy% + QueFlush FALSE +END SUB + + + + +'********************************************************** +'***************** ClipBoard Subroutines ****************** +'********************************************************** + + +' +' XClipBoardCmp(s$) +' +' Description: +' Compare given string to what is in the clipboard, log failure +' if they don't match +' +' Parameters: +' s$ - string to compare +' +' Returns: +' nothing +' +' Example: +' XClipBoardCmp "07734" +' +' +SUB XClipBoardCmp (s$) STATIC + + IF s$ <> CLIPBOARD$ THEN + XLogFailure "String does not match clipboard" + END IF +END SUB + +' +' XClipBoardNotCmp(s$) +' +' Description: +' Compare given string to what is in the clipboard, log failure +' if they match +' +' Parameters: +' s$ - string to compare +' +' Returns: +' nothing +' +' Example: +' XClipBoardNotCmp "07734" +' +' +SUB XClipBoardNotCmp (s$) STATIC + + IF s$ = CLIPBOARD$ THEN + XLogFailure "String does match clipboard" + END IF +END SUB + +' +' BClipBoardCmp(s$) +' +' Description: +' Compare given string to what is in the clipboard, log failure +' if they don't match +' +' Parameters: +' s$ - string to compare +' +' Returns: +' TRUE if matches, FALSE if doesn't +' +' Example: +' flag% = BClipBoardCmp "07734" +' +' +FUNCTION BClipBoardCmp (s$) STATIC + + BClipBoardCmp = s$ = CLIPBOARD$ +END FUNCTION + |