Chip-Level Test Libraries
This subtree contains test libary code that could aid in the writing of chip-level tests. Test library code consists of two components:
- the on-device test framework.
testutils libraries are designed to wrap several DIF invocations that are commonly used together across many chip-level tests.
They are not designed to wrap a single DIF call.
The on-device test framework provides a generic platform for writing chip-level tests.
testutilslibraries should be placed in
- The on-device test framework
code will live in:
testutilslibraries will be named:
<IP or functionality name>_testutils.<h,c>
testutilsfunction names should take on the following format:
<IP or functionality name>_testutils_<function name>(). This corresponds to the format:
- There is no strict return typing required, though ideally most
testutilsfunctions should return void or bool. This is because test errors should be checked in
testutilsfunctions themselves using the
CHECK()macros defined in
- Try to keep
testutilslibraries toplevel agnostic (e.g., don’t include
hw/top_earlgrey/sw/autogen/top_earlgrey.hif you can avoid it). This means
dif_<ip>_init()DIFs should be invoked in chip-level tests, not
testutils, and the DIF handles should be passed in as parameters to
sw/device/lib/dif_base.htypes where appropriate. This allows testutils functions to easily mix with DIFs within chip-level tests.
- Avoid defining testutils that call a single DIF, and use the DIF directly. If a DIF does not exist for your needs, create one by following the DIF developement guide.