#
# 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: no
    mapping:
      "arch_exclude":
        type: str
        required: no
      "arch_allow":
        type: str
        required: no
      "build_only":
        type: bool
        required: no
      "build_on_all":
        type: bool
        required: no
      "depends_on":
        type: str
        required: no
      "extra_args":
        type: str
        required: no
      "extra_sections":
        type: str
        required: no
      "filter":
        type: str
        required: no
      "integration_platforms":
        type: seq
        required: no
        sequence:
          - type: str
      "harness":
        type: str
        required: no
      "harness_config":
        type: map
        required: no
        mapping:
          "type":
            type: str
            required: no
          "fixture":
            type: str
            required: no
          "ordered":
            type: bool
            required: no
          "repeat":
            type: int
            required: no
          "regex":
            type: seq
            required: no
            sequence:
              - type: str
          "record":
            type: map
            required: no
            mapping:
              "regex":
                type: str
                required: no
      "min_ram":
        type: int
        required: no
      "min_flash":
        type: int
        required: no
      "platform_exclude":
        type: str
        required: no
      "platform_allow":
        type: str
        required: no
      "tags":
        type: str
        required: no
      "timeout":
        type: int
        required: no
      "toolchain_exclude":
        type: str
        required: no
      "toolchain_allow":
        type: str
        required: no
      "type":
        type: str
        enum: ["unit"]
      "skip":
        type: bool
        required: no
      "slow":
        type: bool
        required: no
  # The sample descriptor, if present
  "sample":
    type: map
    required: no
    mapping:
      "name":
        type: str
        required: yes
      "description":
        type: str
        required: no
  # 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: no
      regex;(([a-zA-Z0-9_]+)):
        type: map
        # has to be not-required, otherwise the parser gets
        # confused and things it never found it
        required: no
        mapping:
          "arch_exclude":
            type: str
            required: no
          "arch_allow":
            type: str
            required: no
          "build_only":
            type: bool
            required: no
          "build_on_all":
            type: bool
            required: no
          "depends_on":
            type: str
            required: no
          "extra_args":
            type: str
            required: no
          "extra_configs":
            type: seq
            required: no
            sequence:
              - type: str
          "extra_sections":
            type: str
            required: no
          "filter":
            type: str
            required: no
          "integration_platforms":
            type: seq
            required: no
            sequence:
              - type: str
          "harness":
            type: str
            required: no
          "harness_config":
            type: map
            required: no
            mapping:
              "type":
                type: str
                required: no
              "fixture":
                type: str
                required: no
              "ordered":
                type: bool
                required: no
              "repeat":
                type: int
                required: no
              "regex":
                type: seq
                required: no
                sequence:
                  - type: str
              "record":
                type: map
                required: no
                mapping:
                  "regex":
                    type: str
                    required: no
          "min_ram":
            type: int
            required: no
          "min_flash":
            type: int
            required: no
          "platform_exclude":
            type: str
            required: no
          "platform_allow":
            type: str
            required: no
          "tags":
            type: str
            required: no
          "timeout":
            type: int
            required: no
          "toolchain_exclude":
            type: str
            required: no
          "toolchain_allow":
            type: str
            required: no
          "type":
            type: str
            enum: ["unit"]
          "skip":
            type: bool
            required: no
          "slow":
            type: bool
            required: no
