// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  // 'name' is mandatory field
  name: "foo"
  intf: ["tl", "jtag"]

  // 'import_testplans' is a list of imported common testplans
  // paths are relative to repository top
  // all key_value pairs in this file other than 'import_testplans' and 'entries'
  // can be used for wildcard substitutions in imported testplans
  import_testplans: ["util/dvsim/examples/testplanner/common_testplan.hjson"]
  testpoints: [
    {
      // name of the testplan entry - should be unique
      name: smoke
      desc: '''FOO smoke test. Describe this test in sufficient detail. You can split
            the description on multiple lines like this (with 3 single-inverted commas.
            Note that the subsequent lines are indented right below where the inverted
            commas start.'''
      // verification stage for which this test is targeted for - V1, V2 or V3
      stage: V1
      // tests of actual written tests that maps to this entry
      tests: ["{name}_smoke"]
    }
    {
      name: feature1
      desc: "A single line description with single double-inverted commas."
      stage: V2
      // testplan entry with no tests added
      tests: ["{name}_{intf}_feature1"]
    }
    {
      name: feature2
      desc: '''**Goal**: How-to description

            **Stimulus**: If possible, in the description indicate a brief one-liner
            goal on the first line. Then, describe the stimulus and check procedures like
            this.

            **Check**: This style is not mandatory, but highly recommended. Also note that
            the description supports Markdown formatting. Add things:
            - like bullets
            - something in **bold** and in *italic*
              - A sub-bullet item\
                Continue describing above bullet on a new line.

            Start a new paragraph with two newlines.
            '''
      stage: V2
      // testplan entry with multiple tests added
      tests: ["foo_feature2_type1",
              "foo_feature2_type2",
              "foo_feature2_type3"]
    }
  ]

  covergroups: [
    {
      name: foo_cg
      desc: '''
            '''
    }
  ]
}
