#
# 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 sanitycheck script
#

type: map
mapping:
  "identifier":
    type: str
  "name":
    type: str
  "type":
    type: str
    enum: [ 'mcu', 'qemu', 'sim', 'unit', 'native']
  "simulation":
    type: str
    enum: [ 'qemu', 'simics', 'xt-sim', 'renode', 'nsim']
  "arch":
    type: str
  "toolchain":
    type: seq
    seq:
      -
        type: str
  "env":
    type: seq
    seq:
      -
        type: str
  "ram":
    type: int
  "flash":
    type: int
  "sanitycheck":
    type: bool
  "supported":
    type: seq
    seq:
      -
        type: str
  "testing":
    type: map
    mapping:
      "default":
        type: bool
      "ignore_tags":
        type: seq
        seq:
          -
            type: str
