| # | 
 | # 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: | 
 |   "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 |