#
# Schema to validate a YAML file describing a Zephyr test platform
#
# We load this with pykwalify
# (http://pykwalify.readthedocs.io/en/unstable/validation-rules.html),
# a YAML structure validator, to validate the YAML files that describe
# Zephyr test platforms
#
# The original spec comes from Zephyr's twister script
#
type: map
mapping:
  "common":
    type: map
    required: false
    mapping:
      "arch_exclude":
        type: str
        required: false
      "arch_allow":
        type: str
        required: false
      "build_only":
        type: bool
        required: false
      "build_on_all":
        type: bool
        required: false
      "depends_on":
        type: str
        required: false
      "extra_args":
        type: str
        required: false
      "extra_sections":
        type: str
        required: false
      "filter":
        type: str
        required: false
      "integration_platforms":
        type: seq
        required: false
        sequence:
          - type: str
      "testcases":
        type: seq
        required: false
        sequence:
          - type: str
      "harness":
        type: str
        required: false
      "harness_config":
        type: map
        required: false
        mapping:
          "type":
            type: str
            required: false
          "fixture":
            type: str
            required: false
          "ordered":
            type: bool
            required: false
          "repeat":
            type: int
            required: false
          "pytest_root":
            type: str
            required: false
          "pytest_args":
            type: seq
            required: false
            sequence:
              - type: str
          "regex":
            type: seq
            required: false
            sequence:
              - type: str
          "record":
            type: map
            required: false
            mapping:
              "regex":
                type: str
                required: false
      "min_ram":
        type: int
        required: false
      "min_flash":
        type: int
        required: false
      "modules":
        type: seq
        required: false
        sequence:
          - type: str
      "platform_exclude":
        type: str
        required: false
      "platform_allow":
        type: str
        required: false
      "platform_type":
        type: seq
        required: false
        sequence:
          - type: str
      "tags":
        type: str
        required: false
      "timeout":
        type: int
        required: false
      "toolchain_exclude":
        type: str
        required: false
      "toolchain_allow":
        type: str
        required: false
      "type":
        type: str
        enum: ["unit"]
      "skip":
        type: bool
        required: false
      "slow":
        type: bool
        required: false
      "sysbuild":
        type: bool
        required: false
  # The sample descriptor, if present
  "sample":
    type: map
    required: false
    mapping:
      "name":
        type: str
        required: true
      "description":
        type: str
        required: false
  # The list of testcases -- IDK why this is a sequence of
  # maps maps, shall just be a sequence of maps
  # maybe it is just an artifact?
  "tests":
    type: map
    matching-rule: "any"
    mapping:
      # The key for the testname is any, so
      # regex;(([a-zA-Z0-9_]+)) for this to work, note below we
      # make it required: false
      regex;(([a-zA-Z0-9_]+)):
        type: map
        # has to be not-required, otherwise the parser gets
        # confused and things it never found it
        required: false
        mapping:
          "arch_exclude":
            type: str
            required: false
          "arch_allow":
            type: str
            required: false
          "testcases":
            type: seq
            required: false
            sequence:
              - type: str
          "build_only":
            type: bool
            required: false
          "build_on_all":
            type: bool
            required: false
          "depends_on":
            type: str
            required: false
          "extra_args":
            type: str
            required: false
          "extra_configs":
            type: seq
            required: false
            sequence:
              - type: str
          "extra_sections":
            type: str
            required: false
          "filter":
            type: str
            required: false
          "integration_platforms":
            type: seq
            required: false
            sequence:
              - type: str
          "harness":
            type: str
            required: false
          "harness_config":
            type: map
            required: false
            mapping:
              "type":
                type: str
                required: false
              "fixture":
                type: str
                required: false
              "ordered":
                type: bool
                required: false
              "repeat":
                type: int
                required: false
              "pytest_root":
                type: str
                required: false
              "pytest_args":
                type: seq
                required: false
                sequence:
                  - type: str
              "regex":
                type: seq
                required: false
                sequence:
                  - type: str
              "record":
                type: map
                required: false
                mapping:
                  "regex":
                    type: str
                    required: false
          "min_ram":
            type: int
            required: false
          "min_flash":
            type: int
            required: false
          "modules":
            type: seq
            required: false
            sequence:
              - type: str
          "platform_exclude":
            type: str
            required: false
          "platform_allow":
            type: str
            required: false
          "platform_type":
            type: seq
            required: false
            sequence:
              - type: str
          "tags":
            type: str
            required: false
          "timeout":
            type: int
            required: false
          "toolchain_exclude":
            type: str
            required: false
          "toolchain_allow":
            type: str
            required: false
          "type":
            type: str
            enum: ["unit"]
          "skip":
            type: bool
            required: false
          "slow":
            type: bool
            required: false
          "sysbuild":
            type: bool
            required: false
