home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-02-03 | 25.9 KB | 1,205 lines |
- '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%
- DIM lpszTemp$
- 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
-
- HStartApp = GetActiveWindow ()
- 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
-