#
# 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
      "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
          "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
      "platform_exclude":
        type: str
        required: false
      "platform_allow":
        type: str
        required: false
      "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
  # 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
          "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
              "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
          "platform_exclude":
            type: str
            required: false
          "platform_allow":
            type: str
            required: false
          "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
