MC Test
Automation
     
Subsystem
list
     
Top
level

Results File Grammar

UNDER CONSTRUCTION

This is a semi-formal grammar for a results file.

See also How To Read Results Files, Standards & Guidelines for Results Files, Results File C++ API.

Tabs

Results files are inherently line-oriented. The scoping of blocks is indicated by the number of leading tabs on each line. In the grammar below, tabs indicates a sequence of leading tabs. The number of tabs is initially zero; tabs++ increments by 1 the number of tabs indicated by tabs; tabs-- decrements that number by 1.


ResultsFile := (ScriptResults | SuiteResults) ...

AnyText := Any sequence of characters except carriage return or linefeed.
CalledFrom := tabs Called from  SymbolName  at  FileName ( Integer ) newline
CallStack := tabs 4Test Call Stack: newline tabs++ OccursIn [CalledFrom ...] tabs--
CommonOutput := Error | Exception | Warning | GuiStatement | Section | TestPhase | ScreenShot | Hack | DebugStatement
CommonStats := tabs Machine:  AnyText newline
tabs Started:  Time  on  Date newline
tabs Elapsed:  ElapsedTime newline
DebugStatement := tabs « SymbolName » AnyText newline
Disambiguator := tabs AnyText newline
The initial "+" is actually a dagger symbol.
Error := tabs ***  ErrorType AnyText newline tabs++ CallStack [ScreenShot] tabs--
ErrorType := ERROR | PRORAMMING ERROR | SCRIPT SETUP ERROR
Exception := tabs *** EXCEPTION( Number ):  AnyText newline tabs++ CallStack tabs--
FeatureBlock := tabs f  SymbolName [space SymbolName]... newline
tabs++ ( Testcase | FeatureBlock | CommonOutput ) ... tabs--

The initial "f" is actually a function symbol.
FileName := any sequence of valid filename characters
GuiStatement := tabs ·  AnyText newline
The leading character is a bullet.
Hack := tabs HACK:  AnyText newline
Integer := ( 0 - 9 ) ...
OccursIn := tabs Occurred in  SymbolName  at  FileName ( Integer ) newline
PassFailStats := tabs Passed:  Integer  tests ( Integer %) newline
tabs Failed:  Integer  tests ( Integer %) newline
QuotedFileName := ' FileName ' | " FileName "
ScreenShot := tabs SCREEN SHOT FILE:  QuotedFileName newline
ScriptEnter := tabs ScriptEnter newline tabs++
SourceFiles
ScriptParamList
tabs Random number seed is  Integer newline
tabs Project (release name):  AnyText newline
Testbed
tabs Application:  AnyText newline
tabs App.Version:  AnyText newline
tabs Model:  AnyText newline
tabs--
ScriptOutput := ScriptEnter | Testcase | FeatureBlock | CommonOutput
ScriptParam := tabs SymbolName  =  AnyText newline
ScriptParamList := tabs Script Parameters: newline
tabs++ ScriptParam ... tabs--
ScriptResults := ScriptSummary tabs++ Statistics [ ScriptOutput ... ] UnusedParams tabs--
ScriptSummary := tabs Script  FileName  -  ( Passed | Integer  errors ) newline
Section := tabs §  AnyText newline
SourceFiles := tabs Source Files: newline tabs++
( tabs FileName AnyText newline ) ... tabs--
Statistics := CommonStats ( ( PassFailStats TotalsWithTests ) | Totals )
SuiteResults := SuiteSummary tabs++ Statistics (ScriptResults | SuiteResults) ... tabs--
SuiteSummary := tabs Suite  FileName  -  ( Passed | Integer  errors ) newline
SymbolName := ( 0 - 9 | A - Z | a - z | _ ) ...
TCargList := Too complicated to spell out; you know what it looks like, right?
TCfeatureID := tabs f  SymbolName ... newline
The initial "f" is actually a function symbol.
Testbed := tabs Testbed:  AnyText newline tabs++
tabs Operating System:  ( Mac  | NT  ) AnyText newline
( tabs AnyText newline ) ... tabs--
Testcase := TestcaseSummary tabs++ CommonStats Totals [TestcaseOutput ...] tabs--
TestcaseOutput := TCfeatureID | Disambiguator | CommonOutput
TestcaseSummary := tabs Testcase  SymbolName ( TCargList ) -  ( Passed | Integer  errors ) newline
TestPhase := tabs ¶  ( Setup | Execute | Verify | Cleanup | Results ) newline
Totals := tabs Totals:  Integer  errors, Integer  warnings newline
TotalsWithTests := tabs Totals:  Integer  tests, Integer  errors, Integer  warnings newline
UnusedParams := tabs The following parameters were not used: newline tabs++
( tabs SymbolName [ space SymbolName ] ... newline ) ... tabs--
Warning := tabs * WARNING:  AnyText newline tabs++ CallStack tabs--


Informal Meta-Grammar

Grammar symbols are indicated in italics.
Literal symbols and characters are indicated in underscored boldface.
"|" (vertical bar) is the "or" operator.
"..." means "one or more".
"-" (hyphen) indicates a range of characters.
Anything enclosed in square brackets [ ] is optional.
Parentheses ( ) are used to scope the other meta-grammar operators.
Anything in red is a change from the existing format.

Format Meta-Grammar

Grammar := ( RuleName := Rule ... ) ...
Rule := Literal |
Literal - Literal |
Rule | Rule |
Rule ... |
[ Rule ] |
( Rule )



This page is maintained by (REMOVED).

Last updated 30 October 1998.