Files
erofs-freebsd-out-tree/tests/pre15/EVIDENCE-SCHEMA.json
T
2026-08-18 09:20:44 +02:00

96 lines
3.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://erofs.example/pre15/evidence.schema.json",
"title": "EROFS FreeBSD Pre15 immutable run evidence",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"run_id",
"mode",
"case_id",
"dut_head",
"dut_tree",
"worktree_diff_sha256",
"freebsd_source",
"linux_source",
"module_sha256",
"fixture_sha256",
"command_argv",
"start_utc",
"end_utc",
"deadline_seconds",
"exit_code",
"timed_out",
"target_marker",
"status",
"reason",
"failure_origin",
"cleanup",
"stdout",
"stderr",
"raw_sha256",
"ownership_manifest",
"cleanup_log",
"identity",
"fixtures",
"module"
],
"properties": {
"schema_version": { "const": 1 },
"run_id": { "type": "string", "minLength": 1 },
"mode": { "enum": ["host", "build", "qemu", "smoke", "control"] },
"case_id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
"dut_head": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
"dut_tree": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
"worktree_diff_sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
"freebsd_source": { "type": "string", "minLength": 1 },
"linux_source": { "type": "string", "minLength": 1 },
"module_sha256": {
"oneOf": [
{ "type": "null" },
{ "type": "string", "pattern": "^[0-9a-f]{64}$" }
]
},
"fixture_sha256": {
"type": "array",
"items": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
},
"command_argv": {
"type": "array",
"minItems": 1,
"items": { "type": "string" }
},
"start_utc": { "type": "string", "format": "date-time" },
"end_utc": { "type": "string", "format": "date-time" },
"deadline_seconds": { "type": "integer", "minimum": 1 },
"exit_code": { "type": ["integer", "null"] },
"timed_out": { "type": "boolean" },
"target_marker": { "enum": ["reached", "not_reached"] },
"status": {
"enum": ["PASS", "DUT_FAIL", "RUNNER_FAIL", "INFRA_BLOCKED", "STOP", "NOT_RUN"]
},
"reason": { "type": "string", "minLength": 1 },
"failure_origin": { "enum": ["none", "dut", "runner", "infrastructure", "gate", "plan"] },
"cleanup": { "enum": ["PASS", "FAIL"] },
"stdout": { "type": "string", "minLength": 1 },
"stderr": { "type": "string", "minLength": 1 },
"raw_sha256": {
"type": "object",
"additionalProperties": false,
"required": ["stdout", "stderr", "ownership", "cleanup"],
"properties": {
"stdout": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
"stderr": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
"ownership": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
"cleanup": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
}
},
"ownership_manifest": { "type": "string", "minLength": 1 },
"cleanup_log": { "type": "string", "minLength": 1 },
"identity": { "type": "object" },
"fixtures": { "type": "array" },
"module": { "type": ["object", "null"] }
}
}