123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- #
- # 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
- "pytest_root":
- type: str
- 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
- "pytest_root":
- type: str
- 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
|