*setfileorclassnamecaption Sets lblName caption from a passed string, evaluating width. If string is too long for lblName's width, truncates value on left side with ".." before assigning the value to the label caption. Shows as much as possible of the original value.
savedbasefontname Saved engine font attribute for later restoration if dialog is cancelled
savedbasefontsize Saved engine font attribute for later restoration if dialog is cancelled
savedbasefontitalic Saved engine font attribute for later restoration if dialog is cancelled
savedbasefontbold Saved engine font attribute for later restoration if dialog is cancelled
savedfixedfontname Saved engine font attribute for later restoration if dialog is cancelled
savedfixedfontsize Saved engine font attribute for later restoration if dialog is cancelled
savedfixedfontitalic Saved engine font attribute for later restoration if dialog is cancelled
savedfixedfontbold Saved engine font attribute for later restoration if dialog is cancelled
*setoptions Send all appropriate engine properties to appropriate values from the dialog - NB fonts are already done automatically, and have to be un-done if we cancel.
*getoptions Get dialog values from current engine values
*restoreenginefonts Restore engine font values that may have been re-set by users' choices if the option dialog is cancelled.
*disablefontsettingbuttons Not currenty used, can disable font setting capabilities if OCXs are not available and you do not wish to allow GetFont() use.
type.
Cover
AutoSize = .T.
FontItalic = .F.
BackStyle = 1
Caption = "Mark lengths will be matched"
Height = 15
Left = 16
Top = 188
Width = 139
TabIndex = 12
ZOrderSet = 16
Name = "lblMarksMatched"
ADJUSTTARGETCURSOR
STANDARD
IFDEL
CLEARSTAT
label
coverage.vcx
scov_label
cov_optionsdialog.
vHeight = 15
Width = 65
nuserkey = 0
ncurrentos = 0
ncurrentkey = 0
lcreatekeyonset = .T.
Name = "cov_registry"
FontName = "Courier New"
Height = 22
Left = 112
TabIndex = 11
Top = 154
Width = 59
ZOrderSet = 15
Name = "txtNotExecuted"
txtNotExecuted
textbox
cov_registry
scov_custom
coverage.vcx
Creating tar
scov_textboxT
Target
cov_optionsdialog.NOBJCLASS
EXECUTING
ILENEXECUTING
formset= 454
Width = 633
ShowWindow = 2
DoCreate = .T
cov_registry
custom
Rcoverage base engine (<- scov_formset, containing toolbar but no visible elements)
5modal dialog to run add ins from coverage standard UI
Pixelsd,72,utility.fxp,5
0.000,,toolbarenabled,73,
0suggested base-level main dialog for coverage UI
Class
scov_form
OMS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
Courier New, 0, 9, 7, 15, 12, 8, 3, 0
ERT TYPE("toEngineRef.Baseclass") = "C" A
cov_maindialog
*synchsizes
form.fxp,5
0.000,,toolbarenabled,71,utility.fxp,5
Class = .T.
BorderStyle = 2
Caption = "Dialog for Moda
9PROCEDURE Init
LOCAL lReturn
lReturn = DODEFAULT()
IF lReturn
THIS.Caption = COV_DIALOG_CAPTION_LOC
ENDIF
RETURN lReturn AND NOT THIS.lError
ENDPROC
PROCEDURE Unload
LOCAL oForm, lOtherMainDialogs
IF TYPE("THISFORMSET.cSourceFile") # "C" OR EMPTY(THISFORMSET.cSourceFile)
RETURN
ENDIF
FOR EACH oForm IN THISFORMSET.Forms
IF oForm.CLASS == THIS.CLASS
lOtherMainDialogs = .T.
EXIT
ENDIF
ENDFOR
IF NOT lOtherMainDialogs
RELEASE THISFORMSET
ENDIF
ENDPROC
wHeight = 93
Width = 269
DoCreate = .T.
AutoCenter = .T.
Caption = "Coverage Main Dialog"
Name = "cov_maindialog"
2eight = 250
Width = 450
ShowWindow = 1
DoCreate = .T
lfastzoommode In Zoom mode, indicates whether Coverage should refrain from marking a record unless specifically indicated by the user, to avoid unnecessary processing.
*notifyzoomwindowclosed Puts interface elements into Preview mode and synchronizes these elements as necessary when the Zoom window is closed.
*synchzoomwindowstate Makes sure that state of Zoom window matches current Preview/Zoom mode.
*notifytargetrecordchanged Synchronizes all coverage UI elements when the record pointer has moved in the target workfile.
*showmodaldialog Instantiates modal dialogs as part of coverage standard UI.
*getoptionsfromuser Invokes Options dialog and applies results of user's selections, if appropriate.
*standardrightclick Displays context menu.
*showtextlog Displays the original Coverage source log.
*showskippedfiles Displays browse of source files that weren't Located or that are weren't parsed because they're ignored as part of the coverage app's own file list.
*arrangeframewindows Cascades all windows within the frame when Coverage is running in Coverage frame.
*togglefastzoommode Signals interface elements that Fast Zoom mode has been toggled on or off.
coverage.vcxed,74,utility.fxp,5
0.000,,formisobjec
BTop = 5
Left = 5
Height = 15
Width = 22
Name = "cusRegistry"
Class
cov_engine
:separate code window for coverage standard UI in Zoom mode
cov_enginedd
cFileToAdd = LOWER(tcFileToAdd)
1superclass for coverage standard UI modal dialogs
Pixels
coverage.h
cov_modaldialog their automated test went nowhere!
)MS Sans Serif, 0, 8, 5, 13, 11, 11, 2, 0
THIS
coverage.h
cov_char.h
cov_locs.h&
cov_dlgs.h.
cov_spec.h6
cov_regs.h>
cov_tune.hF
LOCAL lReturn, lcFile, liAnswer, loHost
cusRegistry
ocoverageengine
cov_engine.COV_TOOLBAR.
coverage.h
cov_char.h
cov_locs.h&S@
cov_dlgs.h.T@
cov_spec.h6U@
cov_regs.h>V@
cov_tune.hFW@
$VJLPE 612463970 8 0
65833.173 2125.000 1875.0004
)MS Sans Serif, 0, 8, 7, 16, 13, 14, 3, 0
cov_frame
WINDOWS _RTL0VJLP4 612463970 5 0
coverage.h 1 TFFFF00T 0 0 0 0 0
Pixels
-1 -1 -1 -1 -1 -1
8top form for coverage standard UI in coverage frame mode
lusingocxs Specifies whether common dialog OCX subclasses should be used. Turned off automatically if any OCX errors occur.
lvfp5 Indicates running in VFP5 rather than later versions.
csourcefile Specifies the name of the file to be analyzed.
cdefaultwritepath Set to the path of cSourceFile by default, supplies a default path for any file output of the Coverage Profiler.
csuspendedlog Specifies the name of the current coverage log (SET("COVERAGE")) if the Coverage Profiler suspended VFP's writing the coverage log during its operation.
csavedtargetdbf Holds the name of the saved Coverage results DBF (Target) after this table has been saved to disk.
csourcealias Specifies the Source cursor which holds the appended and processed records stored by the coverage text log.
ctargetalias Specifies the target cursor which holds the names of classes, source filenames, Coverage-marked procedure source code, and Coverage statistics.
cskippedalias Specifies the cursor which holds names of source files the Coverage Profiler could not locate and did not analyze.
ccovfilesalias Specifies the cursor which holds names of source files the Coverage Profiler should not try to locate and analyze.
cmarknotexecuted Specifies the character(s) that mark executable lines of code that did not execute according to the current coverage log.
cmarkexecuted Specifies the character(s) that mark executable lines of code that executed according to the current coverage log.
lsmartpath Switch to toggle Smart Pathing, in which the engine "remembers" directories, when the Coverage Profiler attempts to locate source files.
nbasefontsize Stores a base font size for any UI elements.
cbasefontname Stores a base font name for any UI elements.
cbasemonofontname Stores a base font name for any UI elements requiring monospace font.
nbasemonofontsize Stores a base font size for any UI elements requiring monospace font.
lusingregistry Switch to toggle use of Windows registry to hold Coverage preferences.
lbasefontbold Stores a base font "bold" attribute for any UI elements.
lbasefontitalic Stores a base font "italic" attribute for any UI elements.
lbasemonofontbold Stores a base font "bold" attribute for any UI elements requiring monospace font.
lbasemonofontitalic Stores a base font "italic" attribute for any UI elements requiring monospace font.
lunattended Switch to signal automated run of Coverage engine.
capphome Holds directory from which the app was started.
cprojectalias Holds the default alias of the cursor holding project analysis results.
caddin Specifies the addin last run successfully. At startup, this property may be set by an addIn passed to the Coverage application as a parameter and run in the Init or by the first addin in the aAddins array.
lregisteraddin Indicates whether an addin should be registered when it is run successfully.
lmarkallonload Specifies that all source code will be marked when a target file is loaded, rather than that the individual source code records will be marked one at a time as required by the user.
lusingstatusbar Indicates whether feedback messages during processing are displayed in the status bar or as a WAIT WINDOW NOWAIT message. The status bar is used when the engine runs in main VFP application window or in "unattended" mode.
lturnedofftrace Indicates whether the Coverage Profiler turned off TRBETWEEN during its processing.
lstartinprofilemode Specifies how the lInProfileMode should be set when each coverage log loads. Significant when the property lMarkAllOnLoad is set to .T.
lincoverageframe Specifies whether any visual elements of the Coverage Profiler should appear in the main VFP application window or in a separate Coverage frame window.
oframe Holds a reference to the Coverage Frame window, when the Coverage Profiler interface exists in a separate from from the main VFP application window.
csavedskipfiles Holds the name of the DBF containing a list of source files skipped during coverage analysis, after this table has been saved to disk.
itargetreccount Holds number of viable records in target file for dynamic use by interface elements.
ilenhostfile Length of character-type field in both source and target cursors. See COV_TUNE.H.
ilenobjclass Length of character-type field in both source and target cursors. See COV_TUNE.H.
ilenexecuting Length of character-type field in both source and target cursors. See COV_TUNE.H.
cappname Holds the name of the APP or EXE hosting the Coverage class library or libraries.
*domessage Displays a message. If the Coverage Profiler is running in Unattended mode, the message is displayed in a WAIT WINDOW TIMEOUT window so it doesn't prevent further processing. Specify the timeout value using COV_TIMEOUT_SECS in COV_TUNE.H.
*setuitoshowfilestates Abstract in the engine, called at the end of SetupWorkFiles() to allow UI to indicate success or failure or current attempt to load a log.
*setmarks Synchronizes the lengths of cMarkExecuted and cMarkNotExecuted and returns the values of either or both properties to a default if they are not appropriate.
*setuitoshowcode Abstract in the engine, called at the end of SetupWorkFiles() to allow UI to show current Target record in the newly-loaded log.
*setuifonts Abstract in the engine, called by SetUiOptions, designed to allow the user font preferences saved in the various Base and BaseMont font properties to be applied to appropriate UI elements.
*setuioptions Sets up initial UI options according to user preferences or defaults after initial setup of workfiles. Required for UI display with the workfiles, but not applied to anything by the engine itself.
*passedproperparams Validates parameters passed to the engine.
*setlogfile Attempts to set up a file for analysis, using supplied value, SET("COVERAGE"), or prompt to user.
*suspendcoverage Turns off coverage for the duration of an analysis run.
*resumecoverage Turns coverage on if it was turned off for analysis earlier.
*sourcefileislog Validates a text file as being of proper log format.
*fillfiletypearray Fills aFileTypes array with file extensions of file types known to the engine.
*createcoveragefilenamecursor Creates cursor holding names of files that should be ignored.
*setupworkfiles Sets and validates a coverage log, and then creates and fills the source and target work files for this text log.
*createskippedcursor Creates a cursor of deleted records in the Source table, indicating filenames that either cannot be Located or that are in the "Ignored files" coverage file list.
*saveskippedcursor Saves skipped files cursor to disk.
*createsourcecursor Creates cursor representing individual entries from Coverage log.
*adjustsourcecursor Abstract method called by CreateSourceCursor, allowing you to subtract records, or add index tags and custom fields to the source cursor after the cursor is created.
*createtargetcursor Creates cursor representing unique file and objects represented in the Coverage log.
*adjusttargetcursor Abstract method called by CreateTargetCursor, allowing you to subtract records, or add index tags and custom fields to the target cursor after the cursor is created.
*adjustcoveragefilenamecursor Abstract method called by CreateCoverageFilenameCursor, allowing you to add files you don't want analysed to the cursor's filelist.
*savetargettodisk Saves target file to disk.
*fillonetargetrecord Gets source code for a given object/class or source code file.
*fillsourcecursor Fills source cursor with records representing lines from the Coverage log, deleting records whose source files cannot be found.
*addpath Adds path of a source file to the current search path for additional source files, when Smart Pathing is on.
*sourceavailable Locates source files for individual lines in the Coverage log.
*marktargetcoverage Parses the source code for an object or source file record in the target file.
*markcodeline Applies information gathered by MarkTargetCoverage to a source code line, to provide the Profiled or Covered version of that source code line.
*getalias Returns either a currently-used alias or the default alias of one of the Coverage Profiler's workfile types. Allows the engine to work with many sets of workfiles at once.
*runaddin Runs a file (SCX, FXP, APP, PRG, QPX, QPR, MPX, or MPR) that adds functionality to the Coverage object.
*filterlistbylocation Abstract, placeholder for enhancements.
*orderlistbytime Abstract, placeholder for enhancements.
*setclasslibtoalias Sets classlib using unique alias, returning alias, if library is not already loaded. Handles libraries IN apps and exes as required.
*setworkoptions Sets up initial options according to user preferences or defaults before initial setup of workfiles.
*getfontsfromuser Gets font values from user, with either OCX or GetFont() as appropriate.
*setregistrykeyvalue Uses the registry-handling member of the toolbar in the engine formset to set a registry key value from a user option. Converts all values to string type before applying them to the registry.
*getregistrykeyvalue Uses the registry-handling member of the toolbar in the engine formset to get a registry key value for a user option. Converts and validates types as necessary.
*getresourcelocation Gets a filename using common file dialog subclass or GETFILE/PUTFILE() as directed.
*fillcoveragefilenamecursor Fills appropriate cursor with filenames to be ignored during processing.
^afiletypes[1,2] Holds a list of the file types (extensions) the Coverage Profiler handles. Column 1 is compiled extension and column 2 is matching source code extension. Filled in FillFileTypeArray() method.
*togglecoverageprofilemode If lMarkAllOnLoad is .T., marks all target records in the new mode. Otherwise, designed to be augmented in subclasses to reflect this switch in the UI.
*showstatistics Abstract, placeholder for enhancements.
*showprojectstatistics Calls GetProjectStatistics() and DisplayProjectStatistics() to run coverage analysis figures against a specific VFP project set of files.
*getprojectstatistics Develops project statistics from a project name and current coverage log. If necessary, pre-marks all source code from target objects referenced in this project.
*displayprojectstatistics Abstract in the engine, designed to display statistics after GetProjectStatistics has gathered them.
*setfontvalues Sets up initial font attribute values using registry key values and other defaults.
*lockscreens "Freezes" or "Unfreezes" LockScreen properties and MousePointer properties for all members of _Screen during various long procedures.
*getregisteredaddins Fills aAddIns array and cAddIn property at startup (cAddIn property may be filled by passing a param instead)
^aaddins[1,0] Holds filenames of Coverage add-ins
*showstatus Puts message in status bar or WAIT WINDOW NOWAIT/TIMEOUT, depending on setting of lUsingStatusBar.
*clearstatus Removes message from the status bar or CLEARs WAIT WINDOW, depending on setting of lUsingStatusBar.
*markalltargetrecords Calls MarkOneTargetRecord() for all target records in a loop. Can be called because lMarkAllOnLoad is .T. or because the coverage engine is in Unattended mode.
*filltargetcursor Calls FillOneTargetRecord() for all target records in a loop. Replicates the ObjHits statistics for additional target records referring to the same source files.
*markonetargetrecord Evaluates whether the current target record is already marked in the current coverage mode and, if not, passes the relevant information to MarkTargetCoverage() for processing.
*addregisteredaddin Adds a filename to the aAddIns array. Called by the RunAddIn method after an AddIn runs successfully.
*saveoptionstoregistry Saves most user options to the registry on demand. A few options are not set at this time (frame and addins) since these must be set at specific moments during the life of the engine to be useful.
*setregisteredaddins Saves the filenames currently in the aAddIns array to registry values.
*deleteregisteredaddin Removes a registered addin from aAddIns array when an addin fails to run successfully.
*createforms Called during startup to begin display of UI after workfiles have been set up, if the coverage engine is not in Unattended mode. In engine, responsible only for coverage frame window.
*gettablename Allows the coverage engine to generate filenames with which to save its work to disk without overwriting existing files. Uses default suffixes for each saved workfiletype added to the current log name, plus tiebreaker digits.
*setapphome Sets the cAppHome and cAppName properties at startup.
*standardrightclick Abstract at engine level, allows your subclasses to share rightclick behavior among all forms & objects within the formset
tcMessageb
tnMessageBoxOptionsb
tcMessageBoxTitleb
Coverage Profiler
TCMESSAGE
TNMESSAGEBOXOPTIONS
TCMESSAGEBOXTITLE
LIRETURN
LUNATTENDED
TCSOURCE
TCTARGET
LERROR&
THIS.cMarkExecutedb
THIS.cMarkNotExecutedb
MarkExecuted
MarkNotExecuted
IMARKLENGTH
CMARKEXECUTED
CMARKNOTEXECUTED
GETREGISTRYKEYVALUE
LERROR
TCSOURCE
TCTARGET
LERROR
LERROR
THIS.aAddIns[1]b
LRETURN
SETFONTVALUES
SETUIFONTS
GETREGISTEREDADDINS
CADDIN
AADDINS
LERROR3
tcFileb
tcAddInb
tlUnattendedb
You have passed one or more parameters incorrectly.C
This application takes the following
parameters, all optional:
(1), type 'C' the name of a coverage log to mark;
(2), type 'L' a switch to process the log unattended;
(3), type 'C' the name of an Add-In program to run.
Coverage Profiler
Problem
TCFILE
TLUNATTENDED
TCADDIN
LRETURN
THIS
DOMESSAGE
tcFileb
COVERAGEv
Please specify coverage log file
Coverage Logs
(*.log;*.txt)|*.log;*.txt|
All Files
(*.*)|*.*
getfile
No log file specified.
Coverage Profiler
Problem
The log file you chose does not exist yet.C
Test your application with COVERAGE SET TO
<your chosen filename>, then run
Coverage Profiler
against that log.
Coverage Profiler
can SET COVERAGE TO your filename
now and you can test your application. When you re-run
Coverage Profiler
, it will analyze the current
contents of SET('COVERAGE') by default.
Would you like to:
SET COVERAGE TO your log file now? (yes)
Pick a filename from existing coverage logs? (no)
Come back later? (cancel)
Coverage Profiler
TCFILE
LRETURN
LCFILE
LIANSWER
LOHOST
LVFP5
GETRESOURCELOCATION
CSOURCEFILE
DOMESSAGE
RELEASE
SETLOGFILEP
COVERAGEvf
CSUSPENDEDLOG
LERRORe
Running Coverage Profiler temporarily suspendedC
coverage logging to
How would you like to resume coverage logging to this file?
Click:
To have this effect:
-- Append records to the log file
-- Overwrite the log file
Cancel
-- Leave coverage set off
Coverage Profiler
Former coverage file is unavailable;C
COVERAGE will be off.
Coverage Profiler
Problem
LRETURN
CSUSPENDEDLOG
IRESPONSE
LUNATTENDED
LERROR
Validating source file...
File specified is not correct Coverage Log format for this version of VFP.
Coverage Profiler
Problem
CSOURCEFILE
SHOWSTATUS
LRETURN
ISELECT
LIFIELDCOUNT
IHANDLE
ILINECOUNT
CLINE
LVFP5
ONEFIELD
LERROR
DOMESSAGE
CLEARSTATUSz
AFILETYPES
LERROR
LRETURN
CCOVFILESALIAS
FNAME
THISFORMSET
ILENHOSTFILE
FILLCOVERAGEFILENAMECURSOR
LERROR
You haven't changed the specified Coverage filename.C
Do you want to re-examine this Coverage file?
Coverage Profiler
PATHv
Creating work files from
TCLOGFILE
TCSOURCE
TCTARGET
LRETURN
CCURRENTSOURCEFILE
COLDPATH
CSOURCEFILE
CREATECOVERAGEFILENAMECURSOR
SETLOGFILE
LUNATTENDED
LOCKSCREENS
SOURCEFILEISLOG
SHOWSTATUS
CREATESOURCECURSOR
CREATETARGETCURSOR
CSAVEDTARGETDBF
LINPROFILEMODE
LSTARTINPROFILEMODE
LMARKALLONLOAD
MARKALLTARGETRECORDS
LERROR
CDEFAULTWRITEPATH
SETUITOSHOWCODE
SETUITOSHOWFILESTATES
CLEARSTATUS
Source
Skipped
TCSOURCE
TCSKIPPED
CSKIPPED
CSOURCE
ISELECT
GETALIAS
HOSTFILE
SKIPPED
THISFORMSET
ILENHOSTFILE
LERROR
Skipped
_SKIP
TCSKIPPED
CSKIPPED
CDBFNAME
ISELECT
GETALIAS
GETTABLENAME
LERROR
CSAVEDSKIPFILES<
Source
Indexing source records...
TCSOURCE
LRETURN
CSOURCE
GETALIAS
LVFP5
DURATION
OBJCLASS
THISFORMSET
ILENOBJCLASS
EXECUTING
ILENEXECUTING
PROCLINE
HOSTFILE
ILENHOSTFILE
FILETYPE
STACKLEVEL
ADJUSTSOURCECURSOR
FILLSOURCECURSOR
SHOWSTATUS
IFDEL
CLEARSTATUS
LERROR
TCSOURCE
LERROR'
Target
Source
Creating target items...
Temp&
TCSOURCE
TCTARGET
CSOURCE
CTARGET
LRETURN
GETALIAS
SHOWSTATUS
LVFP5
HOSTFILE
OBJCLASS
EXECUTING
THISFORMSET
ILENOBJCLASS
FILETYPE
ILENHOSTFILE
MARKED
PROFILED
SOURCECODE
COVERABLE
COVERED
OBJTOTAL
OBJHITS
ADJUSTTARGETCURSOR
STANDARD
IFDEL
CLEARSTATUS
FILLTARGETCURSOR
LERROR
TCTARGET
LERROR
LERROR
Target
Please specify location to save Coverage results for