sanitycheck: move schemas to scripts/schemas

Move yaml schemas into one single location. We have quite a few schema
used across the tree, one common place will make them easier to find and
reference.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2020-12-07 11:18:07 -05:00
commit c24bf6f183
4 changed files with 3 additions and 3 deletions

View file

@ -0,0 +1,46 @@
type: seq
sequence:
- type: map
required: no
mapping:
"available":
type: bool
required: false
"connected":
type: bool
required: true
"id":
type: str
required: true
"notes":
type: str
required: false
"platform":
type: str
required: true
"probe_id":
type: str
required: false
"product":
type: str
required: true
"runner":
type: str
required: true
"serial":
type: str
required: false
"post_script":
type: str
required: false
"post_flash_script":
type: str
required: false
"pre_script":
type: str
required: false
"fixtures":
type: seq
required: no
sequence:
- type: str

View file

@ -0,0 +1,57 @@
#
# 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", "mdb-nsim", "tsim"]
"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
"only_tags":
type: seq
seq:
-
type: str
"ignore_tags":
type: seq
seq:
- type: str

View file

@ -0,0 +1,234 @@
#
# 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