1{ 2 "type": "object", 3 "required": [ 4 "file-name", 5 "isa", 6 "commands" 7 ], 8 "additionalProperties": false, 9 "properties": { 10 "file-name": { 11 "type": "string" 12 }, 13 "skip": { 14 "type": "boolean" 15 }, 16 "only": { 17 "type": "boolean" 18 }, 19 "isa": { 20 "type": "object", 21 "required": [ 22 "title", 23 "description" 24 ], 25 "additionalProperties": false, 26 "properties": { 27 "title": { 28 "type": "string" 29 }, 30 "description": { 31 "type": "string" 32 }, 33 "properties": { 34 "type": "array", 35 "items": { 36 "type": "string" 37 } 38 }, 39 "exceptions": { 40 "type": "array", 41 "items": { 42 "type": "string" 43 } 44 }, 45 "verification": { 46 "type": "array", 47 "items": { 48 "type": "string" 49 } 50 }, 51 "instructions": { 52 "type": "array", 53 "items": { 54 "type": "object", 55 "additionalProperties": true, 56 "required": [ 57 "sig", 58 "format" 59 ], 60 "properties": { 61 "sig": { 62 "type": "string" 63 }, 64 "format": { 65 "type": "array", 66 "items": { 67 "type": "string" 68 } 69 }, 70 "type": { 71 "type": "string" 72 }, 73 "dtype": { 74 "type": "string" 75 } 76 } 77 } 78 } 79 } 80 }, 81 "commands": { 82 "type": "array", 83 "items": { 84 "type": "object", 85 "additionalProperties": false, 86 "required": [ 87 "file-name", 88 "code-template", 89 "isa" 90 ], 91 "properties": { 92 "isa": { 93 "type": "object", 94 "additionalProperties": false, 95 "properties": { 96 "instructions": { 97 "type": "array", 98 "items": { 99 "type": "object", 100 "additionalProperties": true, 101 "required": [ 102 "sig", 103 "format" 104 ], 105 "properties": { 106 "sig": { 107 "type": "string" 108 }, 109 "format": { 110 "type": "array", 111 "items": { 112 "type": "string" 113 } 114 }, 115 "type": { 116 "type": "string" 117 }, 118 "dtype": { 119 "type": "string" 120 } 121 } 122 } 123 }, 124 "description": { 125 "type": "string" 126 }, 127 "exceptions": { 128 "type": "array", 129 "items": { 130 "type": "string" 131 } 132 }, 133 "properties": { 134 "type": "array", 135 "items": { 136 "type": "string" 137 } 138 }, 139 "verification": { 140 "type": "array", 141 "items": { 142 "type": "string" 143 } 144 } 145 } 146 }, 147 "only": { 148 "type": "boolean" 149 }, 150 "skip": { 151 "type": "boolean" 152 }, 153 "file-name": { 154 "type": "string" 155 }, 156 "check-type": { 157 "type": "string", 158 "enum": ["empty", "none", "no-check", "exit-positive", "check-positive", "check-negative", "check-acc-nan-f32", "check-acc-nan-f64", "check-acc-1", "check-acc-minus-1"] 159 }, 160 "header-template": { 161 "type": "array", 162 "items": { 163 "type": "string" 164 } 165 }, 166 "code-template": { 167 "type": "string" 168 }, 169 "ignore": { 170 "type": "boolean" 171 }, 172 "tags": { 173 "type": "array", 174 "items": { 175 "type": "string" 176 } 177 }, 178 "bugid": { 179 "type": "array", 180 "items": { 181 "type": "string" 182 } 183 }, 184 "panda-options": { 185 "type": "string" 186 }, 187 "runner-options": { 188 "type": "array", 189 "items": { 190 "type": "string", 191 "enum": ["compile-failure", "compile-only", "run-failure", "use-pa", "verifier-only", "verifier-failure", "verifier-config", ""] 192 } 193 }, 194 "description": { 195 "type": "string" 196 }, 197 "template-cases": { 198 "type": "array", 199 "items": { 200 "type": "object", 201 "additionalProperties": false, 202 "required": ["values"], 203 "properties": { 204 "ignore": { 205 "type": "boolean" 206 }, 207 "tags": { 208 "type": "array", 209 "items": { 210 "type": "string" 211 } 212 }, 213 "bugid": { 214 "type": "array", 215 "items": { 216 "type": "string" 217 } 218 }, 219 "values": { 220 "type": "array", 221 "items": { 222 "type": [ "string","number" ] 223 } 224 }, 225 "exclude": { 226 "type": "array", 227 "items": { 228 "type": [ "string","integer" ] 229 } 230 } 231 } 232 } 233 }, 234 "cases": { 235 "type": "array", 236 "items": { 237 "type": "object", 238 "additionalProperties": false, 239 "properties": { 240 "case-template": { 241 "type": "string" 242 }, 243 "case-header-template": { 244 "type": "array", 245 "items": { 246 "type": "string" 247 } 248 }, 249 "values": { 250 "type": "array", 251 "items": { 252 "type": [ "string","number" ] 253 } 254 }, 255 "id": { 256 "type": [ "string", "integer" ] 257 }, 258 "ignore": { 259 "type": "boolean" 260 }, 261 "tags": { 262 "type": "array", 263 "items": { 264 "type": "string" 265 } 266 }, 267 "bugid": { 268 "type": "array", 269 "items": { 270 "type": "string" 271 } 272 }, 273 "case-check-type": { 274 "type": "string", 275 "enum": ["empty", "none", "no-check", "exit-positive", "check-positive", "check-negative", "check-acc-nan-f32", "check-acc-nan-f64", "check-acc-1", "check-acc-minus-1"] 276 }, 277 "runner-options" : { 278 "type": "array", 279 "items": { 280 "type": "string", 281 "enum": ["compile-failure", "compile-only", "run-failure", "use-pa", "verifier-only", "verifier-failure", "verifier-config", ""] 282 } 283 }, 284 "description": { 285 "type": "string" 286 } 287 }, 288 "anyOf": [ 289 { "required": ["values"] }, 290 { "required": ["case-template"] } 291 ] 292 } 293 } 294 } 295 } 296 } 297 } 298} 299