env: 
  version: <xx.yy.zz>
  workspace: <pathToWinIDEAWorkspaceFile>
  useQualifiedFuncName: <true | false>
  address: <ipAddrOrHostName>
  port: <portNumber>
  coreIds: [<coreId-0>, ...]
  autoConnect: <true | false>
  autoIdFormat: <formatString>
  defaultRetValName: <varName>
  logFile: [<fileName>, ...]
  initBeforeRun: <true | false>
  disableInterrupts: <true | false>
  testTimeout: <timeout>
  breakpointType: <keepWinIDEASetting | useHWBreakpoints | useSWBreakpoints | useHWBPsForInitThenSWBPs>
  initSequence: 
  - coreId: <coreId>
    action: <connectToCore | download | reset | run | delAllBreakpoints | callTargetFunction | callScriptFunction | loadSymbolsOnly | waitUntilStopped>
    params: [<param0>, ...]
- ... scriptConfig:
    workingDir: <directory>
    modules: [<moduleName>, ...]
    sysPaths: [<sysPath>, ...]
    timeout: <timeInSeconds>
    extensionClass: <scriptClassName>
toolsConfig:
    isAutoSetAnalyzerFName: <true | false>
    analyzerFName: <fileName>
    isSetTestIdOnPaste: <true | false>
evaluatorConfig:
    isOverrideWinIDEASettings: <true | false>
    charDisplay: <ASCII | Integer | Both>
    isAnsiChar: <true | false>
    isHex: <true | false>
    binaryDisplay: <Blanks | NoBlanksTrailingB>
    isDisplayPointerMemArea: <true | false>
    isCharArrayAsString: <true | false>
    isDereferenceStringPointers: <true | false>
    addressDisplay: <HexNoPrefix | HexPrefix>
    enumDisplay: <Enum | Integer | Both>
    isDisplayCollapsedArrayStruct: <true | false>
    vagueFloatPrecision: <floatNumber>
testCaseTargetInit:
    downloadOnTCInit: <true | false>
    resetOnTCInit: <true | false>
    runOnTCInit: <true | false>
    stopFunctionOnTCInit: <functionName>
stackUsageOptions:
  - coreId: <coreId>
    isActive: <true | false>
    baseAddr: <address>
    endAddr: <address>
    pattern: <bytePattern>
- ... checkTargetState: <true | false> verifySymbolsBeforeRun: <true | false>
reportConfig:
  testIDEAVersion: <version>
  winIDEAVersion: <version>
  reportContents: <full | errorsOnly>
  outFormat: <xml | yaml | csv | xls | xlsx>
  fileName: <fileName>
  iyamlFileName: <iyamlFileName>
  xsltFull: <fileName>
  xsltErrors: <fileName>
  xmlLogoImage: <>
  xmlReportHeader: <>
  cssFile: <>
  isEmbeddedXsltCss: <true | false>
  isCreateHtml: <true | false>
  csvSeparator: <char>
  isCSVHeaderLine: <true | false>
  isXLSVerticalHeader: <true | false>
  isIncludeTestSpec: <true | false>
  isAbsPathForLinks: <true | false>
  htmlViewMode: <all | errorsOnly>
  testInfo: {<key>: <value>, ...}
  useCustomTime: <true | false>
testFilters:
- filterId: <>
  type: <builtIn | script>
  coreId: <>
  partitions: [<partition>, ...]
  modules: [<>, ...]
  includedIds: [<testId>, ...]
  excludedIds: [<testId>, ...]
  includedFunctions: [<functionName>, ...]
  excludedFunctions: [<functionName>, ...]
  mustHaveAllTags: [<tag>, ...]
  mustHaveOneOfTags: [<tag>, ...]
  mustNotHaveAllTags: [<tag>, ...]
  mustNotHaveOneOfTags: [<tag>, ...]
  isOr1: <true | false>
  isOr2: <true | false>
  isOr3: <true | false>
  scriptFunction: <scriptFunctionName>
  scriptFunctionParams: [<scriptFunctionParam>, ...]
- ... groups:
  id: <>
  isExecute: <true | false>
  desc: <text>
  filter: 
    filterId: <>
    type: <builtIn | script>
    coreId: <>
    partitions: [<partition>, ...]
    modules: [<>, ...]
    includedIds: [<testId>, ...]
    excludedIds: [<testId>, ...]
    includedFunctions: [<functionName>, ...]
    excludedFunctions: [<functionName>, ...]
    mustHaveAllTags: [<tag>, ...]
    mustHaveOneOfTags: [<tag>, ...]
    mustNotHaveAllTags: [<tag>, ...]
    mustNotHaveOneOfTags: [<tag>, ...]
    isOr1: <true | false>
    isOr2: <true | false>
    isOr3: <true | false>
    scriptFunction: <scriptFunctionName>
    scriptFunctionParams: [<scriptFunctionParam>, ...]
mergedAnalyzerFile: <fileName.trd> isCloseAfterTest: <true | false> coverageExport:
    isActive: <true | false>
    isMeasureAllFunctions: <true | false>
    isIgnoreNonReachableCode: <true | false>
    mergeScope: <none | siblingsOnly | siblingsAndParent | all>
    mergeFilter: 
      filterId: <>
      type: <builtIn | script>
      coreId: <>
      partitions: [<partition>, ...]
      modules: [<>, ...]
      includedIds: [<testId>, ...]
      excludedIds: [<testId>, ...]
      includedFunctions: [<functionName>, ...]
      excludedFunctions: [<functionName>, ...]
      mustHaveAllTags: [<tag>, ...]
      mustHaveOneOfTags: [<tag>, ...]
      mustNotHaveAllTags: [<tag>, ...]
      mustNotHaveOneOfTags: [<tag>, ...]
      isOr1: <true | false>
      isOr2: <true | false>
      isOr3: <true | false>
      scriptFunction: <scriptFunctionName>
      scriptFunctionParams: [<scriptFunctionParam>, ...]
exportFormat: <HTML | Text | CSV | XML | Review (HTML) | Review (Text)> formatVariant: <variantName> exportFile: <fileName> isAssemblerInfo: <true | false> isLaunchViewer: <true | false> isExportModuleLines: <true | false> isExportSources: <true | false> isExportFunctionLines: <true | false> isExportAsm: <true | false> isExportRanges: <true | false> exportFunctionsFilter: <functionName> exportModulesFilter: <moduleName> statistics:
    - func: <functionName>
      code: <percentage>
      sourceLines: <percentage>
      branches: <percentage>
      taken: <percentage>
      notTaken: <percentage>
      both: <percentage>
      execCount: <>
- ...
coverageAllCodeInGroup:
    func: <functionName>
    code: <percentage>
    sourceLines: <percentage>
    branches: <percentage>
    taken: <percentage>
    notTaken: <percentage>
    both: <percentage>
    execCount: <>
coverageTestCasesOnly:
    func: <functionName>
    code: <percentage>
    sourceLines: <percentage>
    branches: <percentage>
    taken: <percentage>
    notTaken: <percentage>
    both: <percentage>
    execCount: <>
initScriptFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
endScriptFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
children: - - ...
testCases:
  id: <>
  testScope: <unitTest | systemTest>
  baseId: <>
  run: <true | false>
  imports: 
    id: 
      inherit: <true | false>
      ids: [<testId>, ...]
scope:
      inherit: <true | false>
      ids: [<testId>, ...]
desc:
      inherit: <true | false>
      ids: [<testId>, ...]
tags:
      inherit: <true | false>
      ids: [<testId>, ...]
options:
      inherit: <true | false>
      ids: [<testId>, ...]
persistVars:
      inherit: <true | false>
      ids: [<testId>, ...]
locals:
      inherit: <true | false>
      ids: [<testId>, ...]
init:
      inherit: <true | false>
      ids: [<testId>, ...]
beginStopCondition:
      inherit: <true | false>
      ids: [<testId>, ...]
endStopCondition:
      inherit: <true | false>
      ids: [<testId>, ...]
func:
      inherit: <true | false>
      ids: [<testId>, ...]
testTimeout:
      inherit: <true | false>
      ids: [<testId>, ...]
coreId:
      inherit: <true | false>
      ids: [<testId>, ...]
initTargetFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
initFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
endFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
restoreTargetFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
stubs:
      inherit: <true | false>
      ids: [<testId>, ...]
userStubs:
      inherit: <true | false>
      ids: [<testId>, ...]
testPoints:
      inherit: <true | false>
      ids: [<testId>, ...]
preCondition:
      inherit: <true | false>
      ids: [<testId>, ...]
assert:
      inherit: <true | false>
      ids: [<testId>, ...]
stackUsage:
      inherit: <true | false>
      ids: [<testId>, ...]
log:
      inherit: <true | false>
      ids: [<testId>, ...]
analyzer:
      inherit: <true | false>
      ids: [<testId>, ...]
hil:
      inherit: <true | false>
      ids: [<testId>, ...]
dryRun:
      inherit: <true | false>
      ids: [<testId>, ...]
diagrams:
      inherit: <true | false>
      ids: [<testId>, ...]
params:
      inherit: <true | false>
      ids: [<testId>, ...]
desc: <text> tags: [<tag>, ...] options: {<winIDEAOptionPath>: <optionValue>, ...} persistVars:
    decl: {<varName>: <varType>, ...}
    delete: [<varName>, ...]
    isDeleteAll: <true | false>
locals: {<varName>: <varType>, ...} init: {<varName>: <varValue>, ...} beginStopCondition:
    stopType: <breakpoint | stop | rtExpression | noRun>
    timeout: <milliseconds>
    rtExpression: <expression>
    conditionCount: <count>
    conditionExpr: <expression>
    bpLocation: 
      resourceType: <function | file | address>
      resourceName: <fileName or functionName>
      srcFileLocation: <localHost | winIDEAHost>
      line: <number>
      isSearch: <true | false>
      linesRange: <number>
      searchContext: <any | code | comment>
      matchType: <plain | regEx | testPointId>
      pattern: <pattern>
      lineOffset: <number>
      numSteps: <number>
endStopCondition:
    stopType: <breakpoint | stop | rtExpression | noRun>
    timeout: <milliseconds>
    rtExpression: <expression>
    conditionCount: <count>
    conditionExpr: <expression>
    bpLocation: 
      resourceType: <function | file | address>
      resourceName: <fileName or functionName>
      srcFileLocation: <localHost | winIDEAHost>
      line: <number>
      isSearch: <true | false>
      linesRange: <number>
      searchContext: <any | code | comment>
      matchType: <plain | regEx | testPointId>
      pattern: <pattern>
      lineOffset: <number>
      numSteps: <number>
func:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
testTimeout: <timeout> coreId: <coreId> initTargetFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
initFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
endFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
restoreTargetFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
stubs:
  - stubbedFunc: <functionName>
    isActive: <true | false>
    isCustomActivation: <true | false>
    params: [<parameter>, ...]
    retValName: <varName>
    scriptFunc: <functionName>
    hitLimits: 
      min: <numHits>
      max: <numHits>
log:
      before: [<varName>, ...]
      after: [<varName>, ...]
assignSteps:
    - expect: [<expression>, ...]
      assign: {<varName>: <varValue>, ...}
      scriptParams: [<parameter>, ...]
      next: <index>
- ...
- ... userStubs:
  - func: <functionName>
    isActive: <true | false>
    replacementFunc: <functionName>
- ... testPoints:
  - tpId: <>
    isActive: <true | false>
    isCustomActivation: <true | false>
    conditionCount: <count>
    conditionExpr: <expression>
    scriptFunc: <functonName>
    location: 
      resourceType: <function | file | address>
      resourceName: <fileName or functionName>
      srcFileLocation: <localHost | winIDEAHost>
      line: <number>
      isSearch: <true | false>
      linesRange: <number>
      searchContext: <any | code | comment>
      matchType: <plain | regEx | testPointId>
      pattern: <pattern>
      lineOffset: <number>
      numSteps: <number>
log:
      before: [<varName>, ...]
      after: [<varName>, ...]
hitLimits:
      min: <numHits>
      max: <numHits>
steps:
    - expect: [<expression>, ...]
      assign: {<varName>: <varValue>, ...}
      scriptParams: [<parameter>, ...]
      next: <index>
- ...
- ... preCondition:
    isExpectException: <true | false>
    expressions: [<C expression>, ...]
assert:
    isExpectException: <true | false>
    expressions: [<C expression>, ...]
stackUsage:
    minLimit: <numBytes>
    maxLimit: <numBytes>
log:
    before: [<varName>, ...]
    after: [<varName>, ...]
analyzer:
    runMode: <off | start>
    document: <fileName>
    openMode: <u | w | a>
    isSlowRun: <true | false>
    trigger: <triggerName>
    isPredefTrigger: <true | false>
    isSaveAfterTest: <true | false>
    isCloseAfterTest: <true | false>
    trace: 
      isActive: <true | false>
      exportFormat: <Text | CSV | Binary | XML>
      exportFile: <fileName>
coverage:
      isActive: <true | false>
      isMeasureAllFunctions: <true | false>
      isIgnoreNonReachableCode: <true | false>
      mergeScope: <none | siblingsOnly | siblingsAndParent | all>
      mergeFilter: 
        filterId: <>
        type: <builtIn | script>
        coreId: <>
        partitions: [<partition>, ...]
        modules: [<>, ...]
        includedIds: [<testId>, ...]
        excludedIds: [<testId>, ...]
        includedFunctions: [<functionName>, ...]
        excludedFunctions: [<functionName>, ...]
        mustHaveAllTags: [<tag>, ...]
        mustHaveOneOfTags: [<tag>, ...]
        mustNotHaveAllTags: [<tag>, ...]
        mustNotHaveOneOfTags: [<tag>, ...]
        isOr1: <true | false>
        isOr2: <true | false>
        isOr3: <true | false>
        scriptFunction: <scriptFunctionName>
        scriptFunctionParams: [<scriptFunctionParam>, ...]
exportFormat: <HTML | Text | CSV | XML | Review (HTML) | Review (Text)> formatVariant: <variantName> exportFile: <fileName> isAssemblerInfo: <true | false> isLaunchViewer: <true | false> isExportModuleLines: <true | false> isExportSources: <true | false> isExportFunctionLines: <true | false> isExportAsm: <true | false> isExportRanges: <true | false> exportFunctionsFilter: <functionName> exportModulesFilter: <moduleName> statistics:
      - func: <functionName>
        code: <percentage>
        sourceLines: <percentage>
        branches: <percentage>
        taken: <percentage>
        notTaken: <percentage>
        both: <percentage>
        execCount: <>
- ...
profiler:
      isActive: <true | false>
      isMeasureAllFunctions: <true | false>
      exportFormat: <Text | XML | CSV | Text1 | XMLBinaryTimeline | BTF | MDF>
      exportFile: <>
      isExportActiveOnly: <true | false>
      isProfileAUX: <true | false>
      isSaveHistory: <true | false>
      codeAreas: 
      - name: <funcName or varName>
        value: <stateValue>
        netTime: 
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
grossTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
callTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
periodTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
outsideTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ... dataAreas:
      - name: <funcName or varName>
        value: <stateValue>
        netTime: 
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
grossTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
callTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
periodTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
outsideTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ...
hil:
    params: {<hilParamName>: <hilParamValue>, ...}
dryRun:
    assign: {<hostVarName>: <expression>, ...}
    isUpdateCoverage: <true | false>
    isUpdateProfiler: <true | false>
    profilerMultiplier: <>
    profilerOffset: <>
diagrams:
    isActive: <true | false>
    diagrams: 
    - isActive: <true | false>
      diagramType: <flowchart | sequenceDiagram | callgraph | staticCallGraph | flamegraph | custom | customAsync>
      script: <scriptName.py>
      params: [<arg1>, ...]
      outFile: <fileName>
      isAddToReport: <true | false>
      viewer: <multiPage | singlePage | externalApp | none>
      dataFormat: <byExtension | bitmap | SVG>
      externalViewer: <pathToApp>
- ...
tests: - - ...

 


 

env         (isys::CTestEnvironmentConfig)

This section defines environment for test execution. It contains configuration items for winIDEA and testIDEA.

 Syntax:

env:
  version: <xx.yy.zz>
  workspace: <pathToWinIDEAWorkspaceFile>
  useQualifiedFuncName: <true | false>
  address: <ipAddrOrHostName>
  port: <portNumber>
  coreIds: [<coreId-0>, ...]
  autoConnect: <true | false>
  autoIdFormat: <formatString>
  defaultRetValName: <varName>
  logFile: [<fileName>, ...]
  initBeforeRun: <true | false>
  disableInterrupts: <true | false>
  testTimeout: <timeout>
  breakpointType: <keepWinIDEASetting | useHWBreakpoints | useSWBreakpoints | useHWBPsForInitThenSWBPs>
  initSequence: 
  - coreId: <coreId>
    action: <connectToCore | download | reset | run | delAllBreakpoints | callTargetFunction | callScriptFunction | loadSymbolsOnly | waitUntilStopped>
    params: [<param0>, ...]
- ... scriptConfig:
    workingDir: <directory>
    modules: [<moduleName>, ...]
    sysPaths: [<sysPath>, ...]
    timeout: <timeInSeconds>
    extensionClass: <scriptClassName>
toolsConfig:
    isAutoSetAnalyzerFName: <true | false>
    analyzerFName: <fileName>
    isSetTestIdOnPaste: <true | false>
evaluatorConfig:
    isOverrideWinIDEASettings: <true | false>
    charDisplay: <ASCII | Integer | Both>
    isAnsiChar: <true | false>
    isHex: <true | false>
    binaryDisplay: <Blanks | NoBlanksTrailingB>
    isDisplayPointerMemArea: <true | false>
    isCharArrayAsString: <true | false>
    isDereferenceStringPointers: <true | false>
    addressDisplay: <HexNoPrefix | HexPrefix>
    enumDisplay: <Enum | Integer | Both>
    isDisplayCollapsedArrayStruct: <true | false>
    vagueFloatPrecision: <floatNumber>
testCaseTargetInit:
    downloadOnTCInit: <true | false>
    resetOnTCInit: <true | false>
    runOnTCInit: <true | false>
    stopFunctionOnTCInit: <functionName>
stackUsageOptions:
  - coreId: <coreId>
    isActive: <true | false>
    baseAddr: <address>
    endAddr: <address>
    pattern: <bytePattern>
- ... checkTargetState: <true | false> verifySymbolsBeforeRun: <true | false>

where:

Example(s):

version: 9.12.146
workspace: '/proj/demo/Sample5554.xjrf'
address: 192.168.1.10
stopFunction: main
defaultRetValName: retVal
port: 5333
autoIdFormat: /${uuid}/${params}

 


 

initSequence         (isys::CInitSequenceAction)

This section defines actions for target initalization before test.

 Syntax:

initSequence:
- coreId: <coreId>
  action: <connectToCore | download | reset | run | delAllBreakpoints | callTargetFunction | callScriptFunction | loadSymbolsOnly | waitUntilStopped>
  params: [<param0>, ...]
- ...

where:

 


 

scriptConfig         (isys::CScriptConfig)

This section contains configuration for script execution.

 Syntax:

scriptConfig:
  workingDir: <directory>
  modules: [<moduleName>, ...]
  sysPaths: [<sysPath>, ...]
  timeout: <timeInSeconds>
  extensionClass: <scriptClassName>

where:

Example(s):

scriptConfig: 
  workingDir: '/proj/myProject'
  modules: [sys, myModule]
  sysPaths: ['/proj/utils', '/lib/python']
  timeout: 10000
  extensionClass: myModule.myClass

 


 

toolsConfig         (isys::CToolsConfig)

This section configures wizards in testIDEA iTools menu.

 Syntax:

toolsConfig:
  isAutoSetAnalyzerFName: <true | false>
  analyzerFName: <fileName>
  isSetTestIdOnPaste: <true | false>

where:

 


 

evaluatorConfig         (isys::CEvaluatorConfig)

This section configures winIDEA evaluator. It defines format for values in winIDEA Watch window and testIDEA expression evaluation. Results of expression evaluation are stored in test reports.

 Syntax:

evaluatorConfig:
  isOverrideWinIDEASettings: <true | false>
  charDisplay: <ASCII | Integer | Both>
  isAnsiChar: <true | false>
  isHex: <true | false>
  binaryDisplay: <Blanks | NoBlanksTrailingB>
  isDisplayPointerMemArea: <true | false>
  isCharArrayAsString: <true | false>
  isDereferenceStringPointers: <true | false>
  addressDisplay: <HexNoPrefix | HexPrefix>
  enumDisplay: <Enum | Integer | Both>
  isDisplayCollapsedArrayStruct: <true | false>
  vagueFloatPrecision: <floatNumber>

where:

Example(s):

evaluatorConfig: 
  isUseDefaultWinIDEASettings: false
  charDisplay: Both
  isAnsiChar: true
  isHex: true
  binaryDisplay: Blanks
  isDisplayPointerMemArea: true
  isCharArrayAsString: true
  isDereferenceStringPointers: true
  addressDisplay: HexPrefix
  enumDisplay: Both
  isDisplayCollapsedArrayStruct: false
  vagueFloatPrecision: 1e-5

 


 

testCaseTargetInit         (isys::CTestCaseTargetInitConfig)

This section defines target initialization steps to be executed before each test case.

 Syntax:

testCaseTargetInit:
  downloadOnTCInit: <true | false>
  resetOnTCInit: <true | false>
  runOnTCInit: <true | false>
  stopFunctionOnTCInit: <functionName>

where:

Example(s):

testCaseTargetInit:
  downloadOnTCInit: false
  resetOnTCInit: true
  runOnTCInit: true
  stopFunctionOnTCInit: main

 


 

stackUsageOptions         (isys::CStackUsageConfig)

This section configures measurement of stack usage during tests for all target cores.

 Syntax:

stackUsageOptions:
- coreId: <coreId>
  isActive: <true | false>
  baseAddr: <address>
  endAddr: <address>
  pattern: <bytePattern>
- ...

where:

Example(s):

stackUsageOptions:
- coreId: core-0
  isActive: true
  baseAddr: 0x4000f000
  endAddr: 0x4000fff0
  pattern: 0x55

 


 

reportConfig         (isys::CTestReportConfig)

Contains configuration for test report generation.

 Syntax:

reportConfig:
  testIDEAVersion: <version>
  winIDEAVersion: <version>
  reportContents: <full | errorsOnly>
  outFormat: <xml | yaml | csv | xls | xlsx>
  fileName: <fileName>
  iyamlFileName: <iyamlFileName>
  xsltFull: <fileName>
  xsltErrors: <fileName>
  xmlLogoImage: <>
  xmlReportHeader: <>
  cssFile: <>
  isEmbeddedXsltCss: <true | false>
  isCreateHtml: <true | false>
  csvSeparator: <char>
  isCSVHeaderLine: <true | false>
  isXLSVerticalHeader: <true | false>
  isIncludeTestSpec: <true | false>
  isAbsPathForLinks: <true | false>
  htmlViewMode: <all | errorsOnly>
  testInfo: {<key>: <value>, ...}
  useCustomTime: <true | false>

where:

Example(s):

reportConfig:
  winIDEAVersion: 9.12.145
  reportContents: full
  outFormat: xml
  fileName: 'd:/tmp/reportFull.xml'
  xsltFull: ' itestResult.blue.xslt'
  xsltErrors: ' itestErrors.gray.xslt'
  csvSeparator: ','
  isCSVHeaderLine: true
  isXLSVerticalHeader: false
  isIncludeTestSpec: true
  useCustomTime: false
  isAbsPathForLinks: true
  testInfo:
    tester: markok
    winIDEAVersion: 9.12.45
    date: 
    time: 

 


 

testFilters         (isys::CTestFilter)

Contains filtes for test execution.

 Syntax:

testFilters:
- filterId: <>
  type: <builtIn | script>
  coreId: <>
  partitions: [<partition>, ...]
  modules: [<>, ...]
  includedIds: [<testId>, ...]
  excludedIds: [<testId>, ...]
  includedFunctions: [<functionName>, ...]
  excludedFunctions: [<functionName>, ...]
  mustHaveAllTags: [<tag>, ...]
  mustHaveOneOfTags: [<tag>, ...]
  mustNotHaveAllTags: [<tag>, ...]
  mustNotHaveOneOfTags: [<tag>, ...]
  isOr1: <true | false>
  isOr2: <true | false>
  isOr3: <true | false>
  scriptFunction: <scriptFunctionName>
  scriptFunctionParams: [<scriptFunctionParam>, ...]
- ...

where:

Example(s):

testFilters:
- filterId: filterA
  type: script
  mustHaveAllTags: [asd]
  mustHaveOneOfTags: [sdfgh]
  isOr1: false
  isOr2: false
  isOr3: false
  scriptFunction: filterHasParams
  scriptFunctionParams: [_isys_testSpec, 1]
- filterId: filterB
  isOr1: false
  isOr2: false
  isOr3: false
  includedIds: [two]
  excludedIds: [three]
  excludedFunctions: [Func4]

 


 

groups         (isys::CTestGroup)

Contains a list of test groups. Each test group shows test cases, which pass filter specified in the group.

 Syntax:

groups:
  id: <>
  isExecute: <true | false>
  desc: <text>
  filter: 
    filterId: <>
    type: <builtIn | script>
    coreId: <>
    partitions: [<partition>, ...]
    modules: [<>, ...]
    includedIds: [<testId>, ...]
    excludedIds: [<testId>, ...]
    includedFunctions: [<functionName>, ...]
    excludedFunctions: [<functionName>, ...]
    mustHaveAllTags: [<tag>, ...]
    mustHaveOneOfTags: [<tag>, ...]
    mustNotHaveAllTags: [<tag>, ...]
    mustNotHaveOneOfTags: [<tag>, ...]
    isOr1: <true | false>
    isOr2: <true | false>
    isOr3: <true | false>
    scriptFunction: <scriptFunctionName>
    scriptFunctionParams: [<scriptFunctionParam>, ...]
mergedAnalyzerFile: <fileName.trd> isCloseAfterTest: <true | false> coverageExport:
    isActive: <true | false>
    isMeasureAllFunctions: <true | false>
    isIgnoreNonReachableCode: <true | false>
    mergeScope: <none | siblingsOnly | siblingsAndParent | all>
    mergeFilter: 
      filterId: <>
      type: <builtIn | script>
      coreId: <>
      partitions: [<partition>, ...]
      modules: [<>, ...]
      includedIds: [<testId>, ...]
      excludedIds: [<testId>, ...]
      includedFunctions: [<functionName>, ...]
      excludedFunctions: [<functionName>, ...]
      mustHaveAllTags: [<tag>, ...]
      mustHaveOneOfTags: [<tag>, ...]
      mustNotHaveAllTags: [<tag>, ...]
      mustNotHaveOneOfTags: [<tag>, ...]
      isOr1: <true | false>
      isOr2: <true | false>
      isOr3: <true | false>
      scriptFunction: <scriptFunctionName>
      scriptFunctionParams: [<scriptFunctionParam>, ...]
exportFormat: <HTML | Text | CSV | XML | Review (HTML) | Review (Text)> formatVariant: <variantName> exportFile: <fileName> isAssemblerInfo: <true | false> isLaunchViewer: <true | false> isExportModuleLines: <true | false> isExportSources: <true | false> isExportFunctionLines: <true | false> isExportAsm: <true | false> isExportRanges: <true | false> exportFunctionsFilter: <functionName> exportModulesFilter: <moduleName> statistics:
    - func: <functionName>
      code: <percentage>
      sourceLines: <percentage>
      branches: <percentage>
      taken: <percentage>
      notTaken: <percentage>
      both: <percentage>
      execCount: <>
- ...
coverageAllCodeInGroup:
    func: <functionName>
    code: <percentage>
    sourceLines: <percentage>
    branches: <percentage>
    taken: <percentage>
    notTaken: <percentage>
    both: <percentage>
    execCount: <>
coverageTestCasesOnly:
    func: <functionName>
    code: <percentage>
    sourceLines: <percentage>
    branches: <percentage>
    taken: <percentage>
    notTaken: <percentage>
    both: <percentage>
    execCount: <>
initScriptFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
endScriptFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
children: - - ...

where:

 


 

filter         (isys::CTestFilter)

This section defines filtering criteria for test cases. All test cases, which pass the filter, are members of this group.

 Syntax:

filter:
  filterId: <>
  type: <builtIn | script>
  coreId: <>
  partitions: [<partition>, ...]
  modules: [<>, ...]
  includedIds: [<testId>, ...]
  excludedIds: [<testId>, ...]
  includedFunctions: [<functionName>, ...]
  excludedFunctions: [<functionName>, ...]
  mustHaveAllTags: [<tag>, ...]
  mustHaveOneOfTags: [<tag>, ...]
  mustNotHaveAllTags: [<tag>, ...]
  mustNotHaveOneOfTags: [<tag>, ...]
  isOr1: <true | false>
  isOr2: <true | false>
  isOr3: <true | false>
  scriptFunction: <scriptFunctionName>
  scriptFunctionParams: [<scriptFunctionParam>, ...]

where:

Example(s):

testFilters:
- filterId: filterA
  type: script
  mustHaveAllTags: [asd]
  mustHaveOneOfTags: [sdfgh]
  isOr1: false
  isOr2: false
  isOr3: false
  scriptFunction: filterHasParams
  scriptFunctionParams: [_isys_testSpec, 1]
- filterId: filterB
  isOr1: false
  isOr2: false
  isOr3: false
  includedIds: [two]
  excludedIds: [three]
  excludedFunctions: [Func4]

 


 

coverageExport         (isys::CTestAnalyzerCoverage)

This section defines export parameters for the merged analyzer file. Section for coverage merging is ignored.

 Syntax:

coverageExport:
  isActive: <true | false>
  isMeasureAllFunctions: <true | false>
  isIgnoreNonReachableCode: <true | false>
  mergeScope: <none | siblingsOnly | siblingsAndParent | all>
  mergeFilter: 
    filterId: <>
    type: <builtIn | script>
    coreId: <>
    partitions: [<partition>, ...]
    modules: [<>, ...]
    includedIds: [<testId>, ...]
    excludedIds: [<testId>, ...]
    includedFunctions: [<functionName>, ...]
    excludedFunctions: [<functionName>, ...]
    mustHaveAllTags: [<tag>, ...]
    mustHaveOneOfTags: [<tag>, ...]
    mustNotHaveAllTags: [<tag>, ...]
    mustNotHaveOneOfTags: [<tag>, ...]
    isOr1: <true | false>
    isOr2: <true | false>
    isOr3: <true | false>
    scriptFunction: <scriptFunctionName>
    scriptFunctionParams: [<scriptFunctionParam>, ...]
exportFormat: <HTML | Text | CSV | XML | Review (HTML) | Review (Text)> formatVariant: <variantName> exportFile: <fileName> isAssemblerInfo: <true | false> isLaunchViewer: <true | false> isExportModuleLines: <true | false> isExportSources: <true | false> isExportFunctionLines: <true | false> isExportAsm: <true | false> isExportRanges: <true | false> exportFunctionsFilter: <functionName> exportModulesFilter: <moduleName> statistics:
  - func: <functionName>
    code: <percentage>
    sourceLines: <percentage>
    branches: <percentage>
    taken: <percentage>
    notTaken: <percentage>
    both: <percentage>
    execCount: <>
- ...

where:

Example(s):

    coverage:
      isActive: true
      exportFormat: HTML
      exportFile: testExport.html
      statistics:
      - func: max_int
        code: 96
        sourceLines: 85
        branches: 100
        notTaken: 100

 


 

mergeFilter         (isys::CTestFilter)

This section define merging filter. If empty, no tests are excluded.

 Syntax:

mergeFilter:
  filterId: <>
  type: <builtIn | script>
  coreId: <>
  partitions: [<partition>, ...]
  modules: [<>, ...]
  includedIds: [<testId>, ...]
  excludedIds: [<testId>, ...]
  includedFunctions: [<functionName>, ...]
  excludedFunctions: [<functionName>, ...]
  mustHaveAllTags: [<tag>, ...]
  mustHaveOneOfTags: [<tag>, ...]
  mustNotHaveAllTags: [<tag>, ...]
  mustNotHaveOneOfTags: [<tag>, ...]
  isOr1: <true | false>
  isOr2: <true | false>
  isOr3: <true | false>
  scriptFunction: <scriptFunctionName>
  scriptFunctionParams: [<scriptFunctionParam>, ...]

where:

Example(s):

testFilters:
- filterId: filterA
  type: script
  mustHaveAllTags: [asd]
  mustHaveOneOfTags: [sdfgh]
  isOr1: false
  isOr2: false
  isOr3: false
  scriptFunction: filterHasParams
  scriptFunctionParams: [_isys_testSpec, 1]
- filterId: filterB
  isOr1: false
  isOr2: false
  isOr3: false
  includedIds: [two]
  excludedIds: [three]
  excludedFunctions: [Func4]

 


 

statistics         (isys::CTestCoverageStatistics)

This section contains coverage statistics criteria.

 Syntax:

statistics:
- func: <functionName>
  code: <percentage>
  sourceLines: <percentage>
  branches: <percentage>
  taken: <percentage>
  notTaken: <percentage>
  both: <percentage>
  execCount: <>
- ...

where:

 


 

coverageAllCodeInGroup         (isys::CTestCoverageStatistics)

Coverage criteria for all functions in the group. For example, if group specifies a module names as filter, then all functions in this module make 100%.

 Syntax:

coverageAllCodeInGroup:
  func: <functionName>
  code: <percentage>
  sourceLines: <percentage>
  branches: <percentage>
  taken: <percentage>
  notTaken: <percentage>
  both: <percentage>
  execCount: <>

where:

 


 

coverageTestCasesOnly         (isys::CTestCoverageStatistics)

Coverage criteria for all test cases in the group. Functions tested by test cases in group make 100%.

 Syntax:

coverageTestCasesOnly:
  func: <functionName>
  code: <percentage>
  sourceLines: <percentage>
  branches: <percentage>
  taken: <percentage>
  notTaken: <percentage>
  both: <percentage>
  execCount: <>

where:

 


 

initScriptFunc         (isys::CTestFunction)

Script function to be called, before any test case executes.

 Syntax:

initScriptFunc:
  func: <functionName>
  params: [<parameter>, ...]
  retVal: <varName>

where:

Example(s):

    func:
      func: min_int
      params:
      - 4
      - 9
      retVal: rv

    func: [min_int, [4, 9], rv]
    expect: [rv == 4]

 


 

endScriptFunc         (isys::CTestFunction)

Script function to be called, after all test cases execute.

 Syntax:

endScriptFunc:
  func: <functionName>
  params: [<parameter>, ...]
  retVal: <varName>

where:

Example(s):

    func:
      func: min_int
      params:
      - 4
      - 9
      retVal: rv

    func: [min_int, [4, 9], rv]
    expect: [rv == 4]

 


 

testCases         (isys::CTestSpecification)

Contains a list of test cases.

 Syntax:

testCases:
  id: <>
  testScope: <unitTest | systemTest>
  baseId: <>
  run: <true | false>
  imports: 
    id: 
      inherit: <true | false>
      ids: [<testId>, ...]
scope:
      inherit: <true | false>
      ids: [<testId>, ...]
desc:
      inherit: <true | false>
      ids: [<testId>, ...]
tags:
      inherit: <true | false>
      ids: [<testId>, ...]
options:
      inherit: <true | false>
      ids: [<testId>, ...]
persistVars:
      inherit: <true | false>
      ids: [<testId>, ...]
locals:
      inherit: <true | false>
      ids: [<testId>, ...]
init:
      inherit: <true | false>
      ids: [<testId>, ...]
beginStopCondition:
      inherit: <true | false>
      ids: [<testId>, ...]
endStopCondition:
      inherit: <true | false>
      ids: [<testId>, ...]
func:
      inherit: <true | false>
      ids: [<testId>, ...]
testTimeout:
      inherit: <true | false>
      ids: [<testId>, ...]
coreId:
      inherit: <true | false>
      ids: [<testId>, ...]
initTargetFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
initFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
endFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
restoreTargetFunc:
      inherit: <true | false>
      ids: [<testId>, ...]
stubs:
      inherit: <true | false>
      ids: [<testId>, ...]
userStubs:
      inherit: <true | false>
      ids: [<testId>, ...]
testPoints:
      inherit: <true | false>
      ids: [<testId>, ...]
preCondition:
      inherit: <true | false>
      ids: [<testId>, ...]
assert:
      inherit: <true | false>
      ids: [<testId>, ...]
stackUsage:
      inherit: <true | false>
      ids: [<testId>, ...]
log:
      inherit: <true | false>
      ids: [<testId>, ...]
analyzer:
      inherit: <true | false>
      ids: [<testId>, ...]
hil:
      inherit: <true | false>
      ids: [<testId>, ...]
dryRun:
      inherit: <true | false>
      ids: [<testId>, ...]
diagrams:
      inherit: <true | false>
      ids: [<testId>, ...]
params:
      inherit: <true | false>
      ids: [<testId>, ...]
desc: <text> tags: [<tag>, ...] options: {<winIDEAOptionPath>: <optionValue>, ...} persistVars:
    decl: {<varName>: <varType>, ...}
    delete: [<varName>, ...]
    isDeleteAll: <true | false>
locals: {<varName>: <varType>, ...} init: {<varName>: <varValue>, ...} beginStopCondition:
    stopType: <breakpoint | stop | rtExpression | noRun>
    timeout: <milliseconds>
    rtExpression: <expression>
    conditionCount: <count>
    conditionExpr: <expression>
    bpLocation: 
      resourceType: <function | file | address>
      resourceName: <fileName or functionName>
      srcFileLocation: <localHost | winIDEAHost>
      line: <number>
      isSearch: <true | false>
      linesRange: <number>
      searchContext: <any | code | comment>
      matchType: <plain | regEx | testPointId>
      pattern: <pattern>
      lineOffset: <number>
      numSteps: <number>
endStopCondition:
    stopType: <breakpoint | stop | rtExpression | noRun>
    timeout: <milliseconds>
    rtExpression: <expression>
    conditionCount: <count>
    conditionExpr: <expression>
    bpLocation: 
      resourceType: <function | file | address>
      resourceName: <fileName or functionName>
      srcFileLocation: <localHost | winIDEAHost>
      line: <number>
      isSearch: <true | false>
      linesRange: <number>
      searchContext: <any | code | comment>
      matchType: <plain | regEx | testPointId>
      pattern: <pattern>
      lineOffset: <number>
      numSteps: <number>
func:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
testTimeout: <timeout> coreId: <coreId> initTargetFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
initFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
endFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
restoreTargetFunc:
    func: <functionName>
    params: [<parameter>, ...]
    retVal: <varName>
stubs:
  - stubbedFunc: <functionName>
    isActive: <true | false>
    isCustomActivation: <true | false>
    params: [<parameter>, ...]
    retValName: <varName>
    scriptFunc: <functionName>
    hitLimits: 
      min: <numHits>
      max: <numHits>
log:
      before: [<varName>, ...]
      after: [<varName>, ...]
assignSteps:
    - expect: [<expression>, ...]
      assign: {<varName>: <varValue>, ...}
      scriptParams: [<parameter>, ...]
      next: <index>
- ...
- ... userStubs:
  - func: <functionName>
    isActive: <true | false>
    replacementFunc: <functionName>
- ... testPoints:
  - tpId: <>
    isActive: <true | false>
    isCustomActivation: <true | false>
    conditionCount: <count>
    conditionExpr: <expression>
    scriptFunc: <functonName>
    location: 
      resourceType: <function | file | address>
      resourceName: <fileName or functionName>
      srcFileLocation: <localHost | winIDEAHost>
      line: <number>
      isSearch: <true | false>
      linesRange: <number>
      searchContext: <any | code | comment>
      matchType: <plain | regEx | testPointId>
      pattern: <pattern>
      lineOffset: <number>
      numSteps: <number>
log:
      before: [<varName>, ...]
      after: [<varName>, ...]
hitLimits:
      min: <numHits>
      max: <numHits>
steps:
    - expect: [<expression>, ...]
      assign: {<varName>: <varValue>, ...}
      scriptParams: [<parameter>, ...]
      next: <index>
- ...
- ... preCondition:
    isExpectException: <true | false>
    expressions: [<C expression>, ...]
assert:
    isExpectException: <true | false>
    expressions: [<C expression>, ...]
stackUsage:
    minLimit: <numBytes>
    maxLimit: <numBytes>
log:
    before: [<varName>, ...]
    after: [<varName>, ...]
analyzer:
    runMode: <off | start>
    document: <fileName>
    openMode: <u | w | a>
    isSlowRun: <true | false>
    trigger: <triggerName>
    isPredefTrigger: <true | false>
    isSaveAfterTest: <true | false>
    isCloseAfterTest: <true | false>
    trace: 
      isActive: <true | false>
      exportFormat: <Text | CSV | Binary | XML>
      exportFile: <fileName>
coverage:
      isActive: <true | false>
      isMeasureAllFunctions: <true | false>
      isIgnoreNonReachableCode: <true | false>
      mergeScope: <none | siblingsOnly | siblingsAndParent | all>
      mergeFilter: 
        filterId: <>
        type: <builtIn | script>
        coreId: <>
        partitions: [<partition>, ...]
        modules: [<>, ...]
        includedIds: [<testId>, ...]
        excludedIds: [<testId>, ...]
        includedFunctions: [<functionName>, ...]
        excludedFunctions: [<functionName>, ...]
        mustHaveAllTags: [<tag>, ...]
        mustHaveOneOfTags: [<tag>, ...]
        mustNotHaveAllTags: [<tag>, ...]
        mustNotHaveOneOfTags: [<tag>, ...]
        isOr1: <true | false>
        isOr2: <true | false>
        isOr3: <true | false>
        scriptFunction: <scriptFunctionName>
        scriptFunctionParams: [<scriptFunctionParam>, ...]
exportFormat: <HTML | Text | CSV | XML | Review (HTML) | Review (Text)> formatVariant: <variantName> exportFile: <fileName> isAssemblerInfo: <true | false> isLaunchViewer: <true | false> isExportModuleLines: <true | false> isExportSources: <true | false> isExportFunctionLines: <true | false> isExportAsm: <true | false> isExportRanges: <true | false> exportFunctionsFilter: <functionName> exportModulesFilter: <moduleName> statistics:
      - func: <functionName>
        code: <percentage>
        sourceLines: <percentage>
        branches: <percentage>
        taken: <percentage>
        notTaken: <percentage>
        both: <percentage>
        execCount: <>
- ...
profiler:
      isActive: <true | false>
      isMeasureAllFunctions: <true | false>
      exportFormat: <Text | XML | CSV | Text1 | XMLBinaryTimeline | BTF | MDF>
      exportFile: <>
      isExportActiveOnly: <true | false>
      isProfileAUX: <true | false>
      isSaveHistory: <true | false>
      codeAreas: 
      - name: <funcName or varName>
        value: <stateValue>
        netTime: 
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
grossTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
callTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
periodTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
outsideTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ... dataAreas:
      - name: <funcName or varName>
        value: <stateValue>
        netTime: 
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
grossTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
callTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
periodTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
outsideTime:
          min: [<lowerBound>, <upperBound>]
          minStart: [<lowerBound>, <upperBound>]
          minEnd: [<lowerBound>, <upperBound>]
          max: [<lowerBound>, <upperBound>]
          maxStart: [<lowerBound>, <upperBound>]
          maxEnd: [<lowerBound>, <upperBound>]
          total: [<lowerBound>, <upperBound>]
          average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ...
hil:
    params: {<hilParamName>: <hilParamValue>, ...}
dryRun:
    assign: {<hostVarName>: <expression>, ...}
    isUpdateCoverage: <true | false>
    isUpdateProfiler: <true | false>
    profilerMultiplier: <>
    profilerOffset: <>
diagrams:
    isActive: <true | false>
    diagrams: 
    - isActive: <true | false>
      diagramType: <flowchart | sequenceDiagram | callgraph | staticCallGraph | flamegraph | custom | customAsync>
      script: <scriptName.py>
      params: [<arg1>, ...]
      outFile: <fileName>
      isAddToReport: <true | false>
      viewer: <multiPage | singlePage | externalApp | none>
      dataFormat: <byExtension | bitmap | SVG>
      externalViewer: <pathToApp>
- ...
tests: - - ...

where:

Example(s):

id: test_00023
desc: This test verifies function timings.
tags: nightly, unit, systemA
run: false
locals:
  a: MyStruct
  index: int
  arr: int[10]
init:
  a.x: 10
  a.y: 20
  index: 0
  arr[1]: 333444
initFunc:
- arrayInit
- - 'myArray'
  - 0
  - 20
  - 30
endFunc:
- arrayTest
- - 'myArray'
  - 0
  - 20
  - 30
expect:
- a.x == 0x10
- rv == 45 && a > 20
- index >= 0
- charArray == "hello"'
- rv == 8  &&  g_char1 == 'a' @@ b d   # rv is written in binary and g_char1 in decimal format

  id: test-4
  desc: |-
    This test demonstrates analyzer and profiler analysis.
  func: [max_int, [8, 456], rv]
  expect:
  - rv == 456
  analyzer:
    runMode: start
    document: max_int.trd
    openMode: w
    trigger: Profiler
    coverage:
      isActive: true
      exportFormat: HTML
      exportFile: testExport.html
      statistics:
      - func: max_int
        code: 96
        sourceLines: 85
        branches: 100
        notTaken: 100
    profiler:
      isActive: true
      exportFormat: XML
      exportFile: profilerExport.xml
      isSaveHistory: true
      codeAreas:
      - name: 'max_int'
        netTime:
          min:
          - 6000
          - 8000
          max:
          - 6000
          - 8000
          total:
          - 6500
          - 8000
        grossTime:
          total:
          - 6000
        hits:
        - 1
        - 1
      dataAreas:
      - name: d
  tests:
  - id: test-5
    imports:
      analyzer:
        inherit: true
    func: ['', [-2, -4]]
    expect:
    - rv == -2
  - id: test-6
    func: ['', [8, 2]]
    expect:
    - rv == 8
    analyzer:
      runMode: start
      document: max_int.trd
      openMode: w
      profiler:
        isActive: true
        isSaveHistory: true
        codeAreas:
        - name: 'max_int'
          netTime:
            min:
            - 4001
            - 8001
            max:
            - 4002
            - 8002
            total:
            - 4003
            - 8003
          hits:
          - 1
          - 4

 


 

imports         (isys::CTestImports)

Defines inheritance for all other sections. This section is never inherited from base test case.

 Syntax:

imports:
  id: 
    inherit: <true | false>
    ids: [<testId>, ...]
scope:
    inherit: <true | false>
    ids: [<testId>, ...]
desc:
    inherit: <true | false>
    ids: [<testId>, ...]
tags:
    inherit: <true | false>
    ids: [<testId>, ...]
options:
    inherit: <true | false>
    ids: [<testId>, ...]
persistVars:
    inherit: <true | false>
    ids: [<testId>, ...]
locals:
    inherit: <true | false>
    ids: [<testId>, ...]
init:
    inherit: <true | false>
    ids: [<testId>, ...]
beginStopCondition:
    inherit: <true | false>
    ids: [<testId>, ...]
endStopCondition:
    inherit: <true | false>
    ids: [<testId>, ...]
func:
    inherit: <true | false>
    ids: [<testId>, ...]
testTimeout:
    inherit: <true | false>
    ids: [<testId>, ...]
coreId:
    inherit: <true | false>
    ids: [<testId>, ...]
initTargetFunc:
    inherit: <true | false>
    ids: [<testId>, ...]
initFunc:
    inherit: <true | false>
    ids: [<testId>, ...]
endFunc:
    inherit: <true | false>
    ids: [<testId>, ...]
restoreTargetFunc:
    inherit: <true | false>
    ids: [<testId>, ...]
stubs:
    inherit: <true | false>
    ids: [<testId>, ...]
userStubs:
    inherit: <true | false>
    ids: [<testId>, ...]
testPoints:
    inherit: <true | false>
    ids: [<testId>, ...]
preCondition:
    inherit: <true | false>
    ids: [<testId>, ...]
assert:
    inherit: <true | false>
    ids: [<testId>, ...]
stackUsage:
    inherit: <true | false>
    ids: [<testId>, ...]
log:
    inherit: <true | false>
    ids: [<testId>, ...]
analyzer:
    inherit: <true | false>
    ids: [<testId>, ...]
hil:
    inherit: <true | false>
    ids: [<testId>, ...]
dryRun:
    inherit: <true | false>
    ids: [<testId>, ...]
diagrams:
    inherit: <true | false>
    ids: [<testId>, ...]
params:
    inherit: <true | false>
    ids: [<testId>, ...]

where:

 


 

id         (isys::CTestImportSources)

Defines inheritance for test ID.

 Syntax:

id:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

scope         (isys::CTestImportSources)

Defines inheritance for test scope.

 Syntax:

scope:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

desc         (isys::CTestImportSources)

Defines inheritance for description.

 Syntax:

desc:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

tags         (isys::CTestImportSources)

Defines inheritance for tags.

 Syntax:

tags:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

options         (isys::CTestImportSources)

Defines inheritance for options.

 Syntax:

options:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

persistVars         (isys::CTestImportSources)

Defines inheritance for persistent variables.

 Syntax:

persistVars:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

locals         (isys::CTestImportSources)

Defines inheritance for test local variables.

 Syntax:

locals:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

init         (isys::CTestImportSources)

Defines inheritance for variable initialization.

 Syntax:

init:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

beginStopCondition         (isys::CTestImportSources)

Defines inheritance for begin top condition.

 Syntax:

beginStopCondition:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

endStopCondition         (isys::CTestImportSources)

Defines inheritance for end stop condition.

 Syntax:

endStopCondition:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

func         (isys::CTestImportSources)

Defines inheritance for function under test.

 Syntax:

func:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

testTimeout         (isys::CTestImportSources)

Defines inheritance for test timeout.

 Syntax:

testTimeout:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

coreId         (isys::CTestImportSources)

Defines inheritance for coreId.

 Syntax:

coreId:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

initTargetFunc         (isys::CTestImportSources)

Defines inheritance for init target script function.

 Syntax:

initTargetFunc:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

initFunc         (isys::CTestImportSources)

Defines inheritance for init script function.

 Syntax:

initFunc:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

endFunc         (isys::CTestImportSources)

Defines inheritance for end script function.

 Syntax:

endFunc:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

restoreTargetFunc         (isys::CTestImportSources)

Defines inheritance for restore target function.

 Syntax:

restoreTargetFunc:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

stubs         (isys::CTestImportSources)

Defines inheritance for stubs.

 Syntax:

stubs:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

userStubs         (isys::CTestImportSources)

Defines inheritance for user stubs.

 Syntax:

userStubs:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

testPoints         (isys::CTestImportSources)

Defines inheritance for test points.

 Syntax:

testPoints:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

preCondition         (isys::CTestImportSources)

Defines inheritance for preconditions.

 Syntax:

preCondition:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

assert         (isys::CTestImportSources)

Defines inheritance for section assert.

 Syntax:

assert:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

stackUsage         (isys::CTestImportSources)

Defines inheritance for stack usage.

 Syntax:

stackUsage:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

log         (isys::CTestImportSources)

Defines inheritance for log section.

 Syntax:

log:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

analyzer         (isys::CTestImportSources)

Defines inheritance for analyzer section.

 Syntax:

analyzer:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

hil         (isys::CTestImportSources)

Defines inheritance for HIL section.

 Syntax:

hil:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

dryRun         (isys::CTestImportSources)

Defines inheritance for dry run section.

 Syntax:

dryRun:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

diagrams         (isys::CTestImportSources)

Defines inheritance for diagrams section.

 Syntax:

diagrams:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

params         (isys::CTestImportSources)

Defines inheritance for function parameters.

 Syntax:

params:
  inherit: <true | false>
  ids: [<testId>, ...]

where:

 


 

persistVars         (isys::CTestPersistentVars)

This section manages variables, which have lifetime of more than one test case. If you need variables for one test only, use test local variables.

 Syntax:

persistVars:
  decl: {<varName>: <varType>, ...}
  delete: [<varName>, ...]
  isDeleteAll: <true | false>

where:

Example(s):

    persistVars:
      decl:
        per_v: Vehicle

 


 

beginStopCondition         (isys::CTestStopCondition)

This section defines where the target should stop before test is started.

 Syntax:

beginStopCondition:
  stopType: <breakpoint | stop | rtExpression | noRun>
  timeout: <milliseconds>
  rtExpression: <expression>
  conditionCount: <count>
  conditionExpr: <expression>
  bpLocation: 
    resourceType: <function | file | address>
    resourceName: <fileName or functionName>
    srcFileLocation: <localHost | winIDEAHost>
    line: <number>
    isSearch: <true | false>
    linesRange: <number>
    searchContext: <any | code | comment>
    matchType: <plain | regEx | testPointId>
    pattern: <pattern>
    lineOffset: <number>
    numSteps: <number>

where:

 


 

bpLocation         (isys::CTestLocation)

Breakpoint location

 Syntax:

bpLocation:
  resourceType: <function | file | address>
  resourceName: <fileName or functionName>
  srcFileLocation: <localHost | winIDEAHost>
  line: <number>
  isSearch: <true | false>
  linesRange: <number>
  searchContext: <any | code | comment>
  matchType: <plain | regEx | testPointId>
  pattern: <pattern>
  lineOffset: <number>
  numSteps: <number>

where:

 


 

endStopCondition         (isys::CTestStopCondition)

This section defines where the target should stop to finish the test.

 Syntax:

endStopCondition:
  stopType: <breakpoint | stop | rtExpression | noRun>
  timeout: <milliseconds>
  rtExpression: <expression>
  conditionCount: <count>
  conditionExpr: <expression>
  bpLocation: 
    resourceType: <function | file | address>
    resourceName: <fileName or functionName>
    srcFileLocation: <localHost | winIDEAHost>
    line: <number>
    isSearch: <true | false>
    linesRange: <number>
    searchContext: <any | code | comment>
    matchType: <plain | regEx | testPointId>
    pattern: <pattern>
    lineOffset: <number>
    numSteps: <number>

where:

 


 

func         (isys::CTestFunction)

This section specifies the function to be tested in unit tests. It can be written as mapping as shown below, but also as list: [, [, ...], ]. Always use mapping form when writing comments to sections.

 Syntax:

func:
  func: <functionName>
  params: [<parameter>, ...]
  retVal: <varName>

where:

Example(s):

    func:
      func: min_int
      params:
      - 4
      - 9
      retVal: rv

    func: [min_int, [4, 9], rv]
    expect: [rv == 4]

 


 

initTargetFunc         (isys::CTestFunction)

This section specifies which script function should be called to initialize the target before test.

 Syntax:

initTargetFunc:
  func: <functionName>
  params: [<parameter>, ...]
  retVal: <varName>

where:

Example(s):

    func:
      func: min_int
      params:
      - 4
      - 9
      retVal: rv

    func: [min_int, [4, 9], rv]
    expect: [rv == 4]

 


 

initFunc         (isys::CTestFunction)

This section specifies which script function should be called before the tested function is called. Local test variables are already created and initialized at this time. Trace, profiler, and coverage are also initialized according to specification.
This function may be used for additional target initialization or initialization of complex variables (arrays and structures).

 Syntax:

initFunc:
  func: <functionName>
  params: [<parameter>, ...]
  retVal: <varName>

where:

Example(s):

    func:
      func: min_int
      params:
      - 4
      - 9
      retVal: rv

    func: [min_int, [4, 9], rv]
    expect: [rv == 4]

 


 

endFunc         (isys::CTestFunction)

This section specifies which script function should be called after the tested function returns. It can be used for complex text verifications, which can not be described by YAML test specfication.
For example, contents of arrays may be verified using this function, or additional data retrieved from trace, coverage or profiler.

 Syntax:

endFunc:
  func: <functionName>
  params: [<parameter>, ...]
  retVal: <varName>

where:

Example(s):

    func:
      func: min_int
      params:
      - 4
      - 9
      retVal: rv

    func: [min_int, [4, 9], rv]
    expect: [rv == 4]

 


 

restoreTargetFunc         (isys::CTestFunction)

This section specifies which function in the test suite should be called after the test ends. It can be used to restore target state after the test, usually to revert changes done in initTargetFunc.
For example, global variables may be restored.

 Syntax:

restoreTargetFunc:
  func: <functionName>
  params: [<parameter>, ...]
  retVal: <varName>

where:

Example(s):

    func:
      func: min_int
      params:
      - 4
      - 9
      retVal: rv

    func: [min_int, [4, 9], rv]
    expect: [rv == 4]

 


 

stubs         (isys::CTestStub)

This section defines which functions called by the function under test should be stubbed. This means, that stubbed functions are not executed, while their side effects are simulated. For example, the return value and global variables are set. It is also possible to specify the script extension method to be called, when the stub is hit.

 Syntax:

stubs:
- stubbedFunc: <functionName>
  isActive: <true | false>
  isCustomActivation: <true | false>
  params: [<parameter>, ...]
  retValName: <varName>
  scriptFunc: <functionName>
  hitLimits: 
    min: <numHits>
    max: <numHits>
log:
    before: [<varName>, ...]
    after: [<varName>, ...]
assignSteps:
  - expect: [<expression>, ...]
    assign: {<varName>: <varValue>, ...}
    scriptParams: [<parameter>, ...]
    next: <index>
- ...
- ...

where:

Example(s):

    func: [funcForIntStubTest, [], retVal]
    stubs:
    - func: [stubbedFuncInt, stubRV]
      assignSteps:
      - assign:
          stubRV: 654
        scriptParams: [3, 4]
      - assign:
          stubRV: 655
        scriptParams: [4, 5]
        next: 0     # continue with the first step
    expect:
    - retVal == 700

 


 

hitLimits         (isys::CTestMinMax)

Defines limits for number of hits for this stub. If recorded number of hits is outside these limits, test fails.

 Syntax:

hitLimits:
  min: <numHits>
  max: <numHits>

where:

 


 

log         (isys::CTestLog)

This section contains variables to be logged before and after stub execution.

 Syntax:

log:
  before: [<varName>, ...]
  after: [<varName>, ...]

where:

 


 

assignSteps         (isys::CTestEvalAssignStep)

This section contains evaluation and assignment steps.

 Syntax:

assignSteps:
- expect: [<expression>, ...]
  assign: {<varName>: <varValue>, ...}
  scriptParams: [<parameter>, ...]
  next: <index>
- ...

where:

 


 

userStubs         (isys::CTestUserStub)

This section defines which functions called by the function under test should be stubbed. This means, that stubbed functions are not executed. Instead we can define immediate return (for void functions) or replacement function implemented on target.

 Syntax:

userStubs:
- func: <functionName>
  isActive: <true | false>
  replacementFunc: <functionName>
- ...

where:

Example(s):

  func: [funcForIntStubTest, [], rv]
  userStubs:
  - func: stubbedFuncInt
    isActive: true
    replacementFunc: repl_stubbedFuncInt
  expect:
  - rv == 234

 


 

testPoints         (isys::CTestPoint)

This section defines arbitrary points in source code, where target state (variable values, registers, ...) can be logged, changed or verified.

 Syntax:

testPoints:
- tpId: <>
  isActive: <true | false>
  isCustomActivation: <true | false>
  conditionCount: <count>
  conditionExpr: <expression>
  scriptFunc: <functonName>
  location: 
    resourceType: <function | file | address>
    resourceName: <fileName or functionName>
    srcFileLocation: <localHost | winIDEAHost>
    line: <number>
    isSearch: <true | false>
    linesRange: <number>
    searchContext: <any | code | comment>
    matchType: <plain | regEx | testPointId>
    pattern: <pattern>
    lineOffset: <number>
    numSteps: <number>
log:
    before: [<varName>, ...]
    after: [<varName>, ...]
hitLimits:
    min: <numHits>
    max: <numHits>
steps:
  - expect: [<expression>, ...]
    assign: {<varName>: <varValue>, ...}
    scriptParams: [<parameter>, ...]
    next: <index>
- ...
- ...

where:

Example(s):

  testPoints:
  - tpId: tp_id_4
    location:
      resourceName: testPointTest
      line: 0
      isSearch: true
    log:
      before:
      - p1
      - x
      after:
      - p1
    steps:
    - expect:
      - p1 == 11
      assign:
        g_char1: 12
  - tpId: myComplexTestPoint
    scriptFunc: stubFunc3
    location:
      resourceName: testPointTest
      isSearch: true
      searchContext: any
      matchType: plain
      pattern: myComplexTestPoint
    log:
      before:
      - p1
      - x
      after:
      - x
    steps:
    - expect:
      - p1==11
      scriptParams:
      - 45

 


 

location         (isys::CTestLocation)

Location in source code of test point.

 Syntax:

location:
  resourceType: <function | file | address>
  resourceName: <fileName or functionName>
  srcFileLocation: <localHost | winIDEAHost>
  line: <number>
  isSearch: <true | false>
  linesRange: <number>
  searchContext: <any | code | comment>
  matchType: <plain | regEx | testPointId>
  pattern: <pattern>
  lineOffset: <number>
  numSteps: <number>

where:

 


 

log         (isys::CTestLog)

Defines which variables are logged before and after assignments are executed.

 Syntax:

log:
  before: [<varName>, ...]
  after: [<varName>, ...]

where:

 


 

hitLimits         (isys::CTestMinMax)

Defines limits for number of hits for this test point. If recorded number of hits is outside these limits, test fails.

 Syntax:

hitLimits:
  min: <numHits>
  max: <numHits>

where:

 


 

steps         (isys::CTestEvalAssignStep)

This section contains evaluation and assignment steps.

 Syntax:

steps:
- expect: [<expression>, ...]
  assign: {<varName>: <varValue>, ...}
  scriptParams: [<parameter>, ...]
  next: <index>
- ...

where:

 


 

preCondition         (isys::CTestAssert)

This section specifies conditions to be fulfilled before the test starts. Conditions are specified as expressions, which must evaluate to true.

 Syntax:

preCondition:
  isExpectException: <true | false>
  expressions: [<C expression>, ...]

where:

 


 

assert         (isys::CTestAssert)

This section specifies expected outcome of test regarding target exceptions and values of variables, registers, ...

 Syntax:

assert:
  isExpectException: <true | false>
  expressions: [<C expression>, ...]

where:

 


 

stackUsage         (isys::CTestStackUsage)

This section defines the limits for stack used by current test case.

 Syntax:

stackUsage:
  minLimit: <numBytes>
  maxLimit: <numBytes>

where:

 


 

log         (isys::CTestLog)

This section defines setting for logging of values before and after test.

 Syntax:

log:
  before: [<varName>, ...]
  after: [<varName>, ...]

where:

 


 

analyzer         (isys::CTestAnalyzer)

This section defines setting for coverage, profiler, and trace.

 Syntax:

analyzer:
  runMode: <off | start>
  document: <fileName>
  openMode: <u | w | a>
  isSlowRun: <true | false>
  trigger: <triggerName>
  isPredefTrigger: <true | false>
  isSaveAfterTest: <true | false>
  isCloseAfterTest: <true | false>
  trace: 
    isActive: <true | false>
    exportFormat: <Text | CSV | Binary | XML>
    exportFile: <fileName>
coverage:
    isActive: <true | false>
    isMeasureAllFunctions: <true | false>
    isIgnoreNonReachableCode: <true | false>
    mergeScope: <none | siblingsOnly | siblingsAndParent | all>
    mergeFilter: 
      filterId: <>
      type: <builtIn | script>
      coreId: <>
      partitions: [<partition>, ...]
      modules: [<>, ...]
      includedIds: [<testId>, ...]
      excludedIds: [<testId>, ...]
      includedFunctions: [<functionName>, ...]
      excludedFunctions: [<functionName>, ...]
      mustHaveAllTags: [<tag>, ...]
      mustHaveOneOfTags: [<tag>, ...]
      mustNotHaveAllTags: [<tag>, ...]
      mustNotHaveOneOfTags: [<tag>, ...]
      isOr1: <true | false>
      isOr2: <true | false>
      isOr3: <true | false>
      scriptFunction: <scriptFunctionName>
      scriptFunctionParams: [<scriptFunctionParam>, ...]
exportFormat: <HTML | Text | CSV | XML | Review (HTML) | Review (Text)> formatVariant: <variantName> exportFile: <fileName> isAssemblerInfo: <true | false> isLaunchViewer: <true | false> isExportModuleLines: <true | false> isExportSources: <true | false> isExportFunctionLines: <true | false> isExportAsm: <true | false> isExportRanges: <true | false> exportFunctionsFilter: <functionName> exportModulesFilter: <moduleName> statistics:
    - func: <functionName>
      code: <percentage>
      sourceLines: <percentage>
      branches: <percentage>
      taken: <percentage>
      notTaken: <percentage>
      both: <percentage>
      execCount: <>
- ...
profiler:
    isActive: <true | false>
    isMeasureAllFunctions: <true | false>
    exportFormat: <Text | XML | CSV | Text1 | XMLBinaryTimeline | BTF | MDF>
    exportFile: <>
    isExportActiveOnly: <true | false>
    isProfileAUX: <true | false>
    isSaveHistory: <true | false>
    codeAreas: 
    - name: <funcName or varName>
      value: <stateValue>
      netTime: 
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
grossTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
callTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
periodTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
outsideTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ... dataAreas:
    - name: <funcName or varName>
      value: <stateValue>
      netTime: 
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
grossTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
callTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
periodTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
outsideTime:
        min: [<lowerBound>, <upperBound>]
        minStart: [<lowerBound>, <upperBound>]
        minEnd: [<lowerBound>, <upperBound>]
        max: [<lowerBound>, <upperBound>]
        maxStart: [<lowerBound>, <upperBound>]
        maxEnd: [<lowerBound>, <upperBound>]
        total: [<lowerBound>, <upperBound>]
        average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ...

where:

Example(s):

  analyzer:
    runMode: start
    document: cumulative.trd
    openMode: w
    isSaveAfterTest: true
    isCloseAfterTest: false
    coverage:
      isActive: true
      statistics:
      - func: complexFunction
        code: 50

 


 

trace         (isys::CTestAnalyzerTrace)

Trace configuration.

 Syntax:

trace:
  isActive: <true | false>
  exportFormat: <Text | CSV | Binary | XML>
  exportFile: <fileName>

where:

 


 

coverage         (isys::CTestAnalyzerCoverage)

Coverage configuration with statistics criteria.

 Syntax:

coverage:
  isActive: <true | false>
  isMeasureAllFunctions: <true | false>
  isIgnoreNonReachableCode: <true | false>
  mergeScope: <none | siblingsOnly | siblingsAndParent | all>
  mergeFilter: 
    filterId: <>
    type: <builtIn | script>
    coreId: <>
    partitions: [<partition>, ...]
    modules: [<>, ...]
    includedIds: [<testId>, ...]
    excludedIds: [<testId>, ...]
    includedFunctions: [<functionName>, ...]
    excludedFunctions: [<functionName>, ...]
    mustHaveAllTags: [<tag>, ...]
    mustHaveOneOfTags: [<tag>, ...]
    mustNotHaveAllTags: [<tag>, ...]
    mustNotHaveOneOfTags: [<tag>, ...]
    isOr1: <true | false>
    isOr2: <true | false>
    isOr3: <true | false>
    scriptFunction: <scriptFunctionName>
    scriptFunctionParams: [<scriptFunctionParam>, ...]
exportFormat: <HTML | Text | CSV | XML | Review (HTML) | Review (Text)> formatVariant: <variantName> exportFile: <fileName> isAssemblerInfo: <true | false> isLaunchViewer: <true | false> isExportModuleLines: <true | false> isExportSources: <true | false> isExportFunctionLines: <true | false> isExportAsm: <true | false> isExportRanges: <true | false> exportFunctionsFilter: <functionName> exportModulesFilter: <moduleName> statistics:
  - func: <functionName>
    code: <percentage>
    sourceLines: <percentage>
    branches: <percentage>
    taken: <percentage>
    notTaken: <percentage>
    both: <percentage>
    execCount: <>
- ...

where:

Example(s):

    coverage:
      isActive: true
      exportFormat: HTML
      exportFile: testExport.html
      statistics:
      - func: max_int
        code: 96
        sourceLines: 85
        branches: 100
        notTaken: 100

 


 

profiler         (isys::CTestAnalyzerProfiler)

Profiler configuration with statistics criteria.

 Syntax:

profiler:
  isActive: <true | false>
  isMeasureAllFunctions: <true | false>
  exportFormat: <Text | XML | CSV | Text1 | XMLBinaryTimeline | BTF | MDF>
  exportFile: <>
  isExportActiveOnly: <true | false>
  isProfileAUX: <true | false>
  isSaveHistory: <true | false>
  codeAreas: 
  - name: <funcName or varName>
    value: <stateValue>
    netTime: 
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
grossTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
callTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
periodTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
outsideTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ... dataAreas:
  - name: <funcName or varName>
    value: <stateValue>
    netTime: 
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
grossTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
callTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
periodTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
outsideTime:
      min: [<lowerBound>, <upperBound>]
      minStart: [<lowerBound>, <upperBound>]
      minEnd: [<lowerBound>, <upperBound>]
      max: [<lowerBound>, <upperBound>]
      maxStart: [<lowerBound>, <upperBound>]
      maxEnd: [<lowerBound>, <upperBound>]
      total: [<lowerBound>, <upperBound>]
      average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ...

where:

Example(s):

  analyzer:
    profiler:
      isActive: true
      exportFormat: XML
      exportFile: profilerExport.xml
      isSaveHistory: true
      codeAreas:
      - name: 'max_int'
        netTime:
          min:
          - 6000
          - 8000
          max:
          - 6000
          - 8000
          total:
          - 6500
          - 8000
        grossTime:
          total:
          - 6000
        hits:
        - 1
        - 1

 


 

codeAreas         (isys::CTestProfilerStatistics)

Profiler statistics criteria for functions.

 Syntax:

codeAreas:
- name: <funcName or varName>
  value: <stateValue>
  netTime: 
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
grossTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
callTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
periodTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
outsideTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ...

where:

 


 

netTime         (isys::CTestProfilerTime)

Time spent for code inside function body, without sub-functions called from this function.

 Syntax:

netTime:
  min: [<lowerBound>, <upperBound>]
  minStart: [<lowerBound>, <upperBound>]
  minEnd: [<lowerBound>, <upperBound>]
  max: [<lowerBound>, <upperBound>]
  maxStart: [<lowerBound>, <upperBound>]
  maxEnd: [<lowerBound>, <upperBound>]
  total: [<lowerBound>, <upperBound>]
  average: [<lowerBound>, <upperBound>]

where:

 


 

grossTime         (isys::CTestProfilerTime)

Time spent for code inside function body, AND sub-functions called from this function.

 Syntax:

grossTime:
  min: [<lowerBound>, <upperBound>]
  minStart: [<lowerBound>, <upperBound>]
  minEnd: [<lowerBound>, <upperBound>]
  max: [<lowerBound>, <upperBound>]
  maxStart: [<lowerBound>, <upperBound>]
  maxEnd: [<lowerBound>, <upperBound>]
  total: [<lowerBound>, <upperBound>]
  average: [<lowerBound>, <upperBound>]

where:

 


 

callTime         (isys::CTestProfilerTime)

Gross time plus time spent in other contexts (tasks, interrupts) between entry/exit of a function.

 Syntax:

callTime:
  min: [<lowerBound>, <upperBound>]
  minStart: [<lowerBound>, <upperBound>]
  minEnd: [<lowerBound>, <upperBound>]
  max: [<lowerBound>, <upperBound>]
  maxStart: [<lowerBound>, <upperBound>]
  maxEnd: [<lowerBound>, <upperBound>]
  total: [<lowerBound>, <upperBound>]
  average: [<lowerBound>, <upperBound>]

where:

 


 

periodTime         (isys::CTestProfilerTime)

Time between function invocation. Total time is not defined for this type of time.

 Syntax:

periodTime:
  min: [<lowerBound>, <upperBound>]
  minStart: [<lowerBound>, <upperBound>]
  minEnd: [<lowerBound>, <upperBound>]
  max: [<lowerBound>, <upperBound>]
  maxStart: [<lowerBound>, <upperBound>]
  maxEnd: [<lowerBound>, <upperBound>]
  total: [<lowerBound>, <upperBound>]
  average: [<lowerBound>, <upperBound>]

where:

 


 

outsideTime         (isys::CTestProfilerTime)

Time spent outside a state - when the state is inactive.

 Syntax:

outsideTime:
  min: [<lowerBound>, <upperBound>]
  minStart: [<lowerBound>, <upperBound>]
  minEnd: [<lowerBound>, <upperBound>]
  max: [<lowerBound>, <upperBound>]
  maxStart: [<lowerBound>, <upperBound>]
  maxEnd: [<lowerBound>, <upperBound>]
  total: [<lowerBound>, <upperBound>]
  average: [<lowerBound>, <upperBound>]

where:

 


 

dataAreas         (isys::CTestProfilerStatistics)

Profiler statistics criteria for state variables.

 Syntax:

dataAreas:
- name: <funcName or varName>
  value: <stateValue>
  netTime: 
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
grossTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
callTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
periodTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
outsideTime:
    min: [<lowerBound>, <upperBound>]
    minStart: [<lowerBound>, <upperBound>]
    minEnd: [<lowerBound>, <upperBound>]
    max: [<lowerBound>, <upperBound>]
    maxStart: [<lowerBound>, <upperBound>]
    maxEnd: [<lowerBound>, <upperBound>]
    total: [<lowerBound>, <upperBound>]
    average: [<lowerBound>, <upperBound>]
hits: [<number>, ...]
- ...

where:

 


 

hil         (isys::CTestHIL)

This section contains HIL configuration to be applied before test starts.

 Syntax:

hil:
  params: {<hilParamName>: <hilParamValue>, ...}

where:

Example(s):

hil:
  params:
    DigitalOut.DOUT0: HIGH

 


 

dryRun         (isys::CTestDryRun)

This section contains assignments to be copied to section 'init' during Dry Run.

 Syntax:

dryRun:
  assign: {<hostVarName>: <expression>, ...}
  isUpdateCoverage: <true | false>
  isUpdateProfiler: <true | false>
  profilerMultiplier: <>
  profilerOffset: <>

where:

 


 

diagrams         (isys::CTestDiagrams)

This section contains specification for test output diagrams.

 Syntax:

diagrams:
  isActive: <true | false>
  diagrams: 
  - isActive: <true | false>
    diagramType: <flowchart | sequenceDiagram | callgraph | staticCallGraph | flamegraph | custom | customAsync>
    script: <scriptName.py>
    params: [<arg1>, ...]
    outFile: <fileName>
    isAddToReport: <true | false>
    viewer: <multiPage | singlePage | externalApp | none>
    dataFormat: <byExtension | bitmap | SVG>
    externalViewer: <pathToApp>
- ...

where:

 


 

diagrams         (isys::CTestDiagramConfig)

Contains specifications of diagrams.

 Syntax:

diagrams:
- isActive: <true | false>
  diagramType: <flowchart | sequenceDiagram | callgraph | staticCallGraph | flamegraph | custom | customAsync>
  script: <scriptName.py>
  params: [<arg1>, ...]
  outFile: <fileName>
  isAddToReport: <true | false>
  viewer: <multiPage | singlePage | externalApp | none>
  dataFormat: <byExtension | bitmap | SVG>
  externalViewer: <pathToApp>
- ...

where: