Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and 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
     "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
     "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
  # 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: no
                 "fixture":
                    type: str
                    required: no
                 "ordered":
                    type: bool
                    required: no
                 "repeat":
                    type: int
                    required: no
                 "regex":
                    type: seq
                    required: no
                    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