Linux debugging

Check our new training course

Linux debugging, tracing, profiling & perf. analysis

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

#
# 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
     "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: yes
     "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: seq
    required: yes
    sequence:
      - 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
             "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