1# 2# Schema to validate a YAML file describing a Zephyr test platform 3# 4# We load this with pykwalify 5# (http://pykwalify.readthedocs.io/en/unstable/validation-rules.html), 6# a YAML structure validator, to validate the YAML files that describe 7# Zephyr test platforms 8# 9# The original spec comes from Zephyr's twister script 10# 11 12schema;platform-schema: 13 type: map 14 mapping: 15 "variants": 16 type: map 17 matching-rule: "any" 18 mapping: 19 regex;(([a-zA-Z0-9_]+)): 20 include: platform-schema 21 "identifier": 22 type: str 23 "maintainers": 24 type: seq 25 seq: 26 - type: str 27 "name": 28 type: str 29 "type": 30 type: str 31 enum: ["mcu", "qemu", "sim", "unit", "native"] 32 "simulation": 33 type: seq 34 seq: 35 - type: map 36 mapping: 37 "name": 38 type: str 39 required: true 40 enum: 41 [ 42 "qemu", 43 "simics", 44 "xt-sim", 45 "renode", 46 "nsim", 47 "mdb-nsim", 48 "tsim", 49 "armfvp", 50 "native", 51 "custom", 52 ] 53 "exec": 54 type: str 55 "arch": 56 type: str 57 enum: 58 [ 59 # architectures 60 "arc", 61 "arm", 62 "arm64", 63 "mips", 64 "nios2", 65 "posix", 66 "riscv", 67 "rx", 68 "sparc", 69 "x86", 70 "xtensa", 71 72 # unit testing 73 "unit", 74 ] 75 "vendor": 76 type: str 77 "tier": 78 type: int 79 "toolchain": 80 type: seq 81 seq: 82 - type: str 83 "sysbuild": 84 type: bool 85 "env": 86 type: seq 87 seq: 88 - type: str 89 "ram": 90 type: int 91 "flash": 92 type: int 93 "twister": 94 type: bool 95 "supported": 96 type: seq 97 seq: 98 - type: str 99 "testing": 100 type: map 101 mapping: 102 "timeout_multiplier": 103 type: number 104 required: false 105 "default": 106 type: bool 107 "binaries": 108 type: seq 109 seq: 110 - type: str 111 "only_tags": 112 type: seq 113 seq: 114 - type: str 115 "ignore_tags": 116 type: seq 117 seq: 118 - type: str 119 "renode": 120 type: map 121 mapping: 122 "uart": 123 type: str 124 "resc": 125 type: str 126 127include: platform-schema 128