96 lines
3.1 KiB
JSON
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"] }
|
|
}
|
|
}
|