a6f924db7f
Instead of relying on runtime filter to limit scope to emulation platforms, use the type attribute for each platform and do the filtering very early on. This will speed things up for tests where we only run on emulation platforms. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
281 lines
6.6 KiB
YAML
281 lines
6.6 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 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
|
|
"testcases":
|
|
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
|
|
"pytest_args":
|
|
type: seq
|
|
required: false
|
|
sequence:
|
|
- type: str
|
|
"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
|
|
"modules":
|
|
type: seq
|
|
required: false
|
|
sequence:
|
|
- type: str
|
|
"platform_exclude":
|
|
type: str
|
|
required: false
|
|
"platform_allow":
|
|
type: str
|
|
required: false
|
|
"platform_type":
|
|
type: seq
|
|
required: false
|
|
sequence:
|
|
- type: str
|
|
"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
|
|
"testcases":
|
|
type: seq
|
|
required: false
|
|
sequence:
|
|
- type: str
|
|
"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
|
|
"pytest_args":
|
|
type: seq
|
|
required: false
|
|
sequence:
|
|
- type: str
|
|
"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
|
|
"modules":
|
|
type: seq
|
|
required: false
|
|
sequence:
|
|
- type: str
|
|
"platform_exclude":
|
|
type: str
|
|
required: false
|
|
"platform_allow":
|
|
type: str
|
|
required: false
|
|
"platform_type":
|
|
type: seq
|
|
required: false
|
|
sequence:
|
|
- type: str
|
|
"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
|