title: “Chip-Level Test Libraries”

This subtree provides libary code for writing chip-level tests. Test library code should be considered any (reusable) code that could aid in the writing of chip-level tests.

Test Types

  • Chip-level Tests - A collection of software level tests that run on OpenTitan hardware, whose main purpose is pre-silicon verification and post-silicon bringup. These tests consist of: smoke, IP integration, and system-level tests. These tests are all executed on-device using the [on-device test framework]({{< relref “sw/device/lib/testing/test_framework/index.md” >}}). While most of these tests are top-level agnostic, some are not.
    • Smoke Tests - A software level test, written in C using DIFs, that performs a minimal set of operations on a given IP block to verify that it is alive and functioning.
    • IP Integration Tests - A software level test, written in C, that exercises some specific functionality specific to a given IP and toplevel. The Eargrey toplevel test plan describes these tests.
    • System-level Scenario Test - A software level test, written in C, that mimics complex system level use case scenarios. Such a test is designed to encompass multiple pieces of functionality tested by the IP integration tests.

Subfoldering Rules

  • [on-device test framework]({{< relref “sw/device/lib/testing/test_framework/index.md” >}}) code will live in: sw/device/lib/testing/test_framework.
  • Remaining test library code will not be subfoldered.

File Naming Conventions

  • Test libary code will be named: {IP or functionality name}_testutils.{h,c}

Documentation Index

{{% sectionContent %}}