This guide is for QA engineers verifying an APIC system's behavior. You do not write C++: you define test flows declaratively in a Tests CSV file - a table of injections and expected results. The injection and the results check is done directly in the runtime loop, so it is high performance accurate tests.
1. Your Job
A test flow is a sequence of steps against the system's ICD elements (the same
LRU.Block.Element paths defined by DBSimGenerator):
inject a value into one element, then check that another element reaches an expected
result within a timeout. You build this entirely in a CSV table - see the full column
reference in the Tests CSV specification.
2. Anatomy of a Test Flow
Each row is one step, with these columns:
| Column | What you put in it |
|---|---|
| Test Name | A unique identifier for the flow. Leave it empty on every row after the first to chain that row into the same flow - see section 3. |
| Element | The LRU.Block.Element ICD path you're
injecting into or monitoring, e.g. LRU_FC.Control.State. |
| Injection Raw / Injection Eng | The raw or engineering-unit value to drive into the element. Leave both blank on a row that only checks a result. |
| Result | The expected value or range (e.g. 2:8)
to compare against. |
| Compare Operator | How to compare: ==,
<, >, <=, >=,
!=. |
| Timeout | Milliseconds to wait before failing. Leave empty to wait indefinitely - use that deliberately, since a runaway test won't fail on its own. |
3. Chaining Steps into a Flow
A real flow is usually more than one row: inject a value, then check its effect, optionally chained into further injections and checks. Leave Test Name empty on every row after the first to continue the same flow:
Test Name,Element,Injection Raw,Injection Eng,Result,Compare Operator,Timeout
Test1,LRU_FC.Control.State,,4,,
,LRU_FC.Control.Control,,,5,<=
Test2 in range,LRU_FC.Control.State,,2,,
,LRU_FC.Control.Control,,,2:8,,
Test1 injects 4 into State, then checks that
Control is <= 5. Test2 in range injects
2 into State, then checks that Control falls
within 2:8.
4. Where This Fits
Two levels of test flow, both written in this same CSV format:
- Unit tests - one flow per model, verifying its behavior in isolation before integration.
- ATP tests (Acceptance Test Procedure) - flows covering the system as a whole, validating end-to-end behavior against requirements.
5. Full CSV Reference
For the complete column specification, supported compare operators, and timeout semantics, see the Tests CSV reference and How to Write and Run Automated Tests.