208 lines
4.9 KiB
YAML
208 lines
4.9 KiB
YAML
#
|
|
# 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_whitelist":
|
|
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
|
|
"harness":
|
|
type: str
|
|
required: no
|
|
"harness_config":
|
|
type: map
|
|
required: no
|
|
mapping:
|
|
"type":
|
|
type: str
|
|
required: yes
|
|
"ordered":
|
|
type: bool
|
|
required: no
|
|
"repeat":
|
|
type: int
|
|
required: no
|
|
"regex":
|
|
type: seq
|
|
required: yes
|
|
sequence:
|
|
- type: str
|
|
"min_ram":
|
|
type: int
|
|
required: no
|
|
"min_flash":
|
|
type: int
|
|
required: no
|
|
"platform_exclude":
|
|
type: str
|
|
required: no
|
|
"platform_whitelist":
|
|
type: str
|
|
required: no
|
|
"tags":
|
|
type: str
|
|
required: no
|
|
"timeout":
|
|
type: int
|
|
required: no
|
|
"toolchain_exclude":
|
|
type: str
|
|
required: no
|
|
"toolchain_whitelist":
|
|
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
|
|
"platforms":
|
|
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_whitelist":
|
|
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
|
|
"harness":
|
|
type: str
|
|
required: no
|
|
"harness_config":
|
|
type: map
|
|
required: no
|
|
mapping:
|
|
"type":
|
|
type: str
|
|
required: yes
|
|
"ordered":
|
|
type: bool
|
|
required: no
|
|
"repeat":
|
|
type: int
|
|
required: no
|
|
"regex":
|
|
type: seq
|
|
required: yes
|
|
sequence:
|
|
- type: str
|
|
"min_ram":
|
|
type: int
|
|
required: no
|
|
"min_flash":
|
|
type: int
|
|
required: no
|
|
"platform_exclude":
|
|
type: str
|
|
required: no
|
|
"platform_whitelist":
|
|
type: str
|
|
required: no
|
|
"tags":
|
|
type: str
|
|
required: no
|
|
"timeout":
|
|
type: int
|
|
required: no
|
|
"toolchain_exclude":
|
|
type: str
|
|
required: no
|
|
"toolchain_whitelist":
|
|
type: str
|
|
required: no
|
|
"type":
|
|
type: str
|
|
enum: [ 'unit' ]
|
|
"skip":
|
|
type: bool
|
|
required: no
|
|
"slow":
|
|
type: bool
|
|
required: no
|