Accept optional saved-state smoke skips

This commit is contained in:
2026-07-26 17:18:38 +03:00
parent 9d7c4f38f3
commit c1d5d06f6d
4 changed files with 71 additions and 8 deletions
+61 -6
View File
@@ -686,7 +686,14 @@ def validate_saved_state_form(
if status not in {"skipped_no_saved_state", "verified_and_rolled_back"}:
failures.append({"code": "saved_state_form_status_unexpected", "path": str(path), "status": status})
if status in {"skipped_no_saved_state", "verified_and_rolled_back"}:
validate_saved_state_preflight(preflight, failures, "saved_state_form", path, expected_count_keys=("forms", "scanned", "limit"))
expected_count_keys = ("forms", "limit") if status == "skipped_no_saved_state" else ("forms", "scanned", "limit")
validate_saved_state_preflight(
preflight,
failures,
"saved_state_form",
path,
expected_count_keys=expected_count_keys,
)
if status == "skipped_no_saved_state":
if report.get("skipped") is not True:
failures.append({"code": "saved_state_form_skip_flag_missing", "path": str(path), "skipped": report.get("skipped")})
@@ -745,7 +752,8 @@ def validate_saved_state_module(
write_plan = report.get("write_plan") if isinstance(report.get("write_plan"), dict) else {}
preflight = report.get("saved_state_preflight") if isinstance(report.get("saved_state_preflight"), dict) else {}
preflight_counts = preflight.get("counts") if isinstance(preflight.get("counts"), dict) else {}
table = table_from_module_ref(report.get("module_ref"))
table = report.get("table") or report.get("saved_state_table") or table_from_module_ref(report.get("module_ref"))
skip_statuses = {"skipped_no_saved_state", "skipped_no_saved_state_candidate"}
summary = {
"path": str(path),
"status": report.get("status"),
@@ -763,15 +771,26 @@ def validate_saved_state_module(
expect_report_identity(report, failures, label, path, expected_base_id=base_id)
if table not in SAVED_STATE_TABLES:
failures.append({"code": "saved_state_module_table_unexpected", "path": str(path), "module_ref": report.get("module_ref")})
if require_write and report.get("status") == "skipped_no_saved_state":
if require_write and report.get("status") in skip_statuses:
failures.append({"code": "saved_state_module_write_required", "path": str(path)})
if report.get("status") not in {"skipped_no_saved_state", "verified_and_rolled_back"}:
if report.get("status") not in skip_statuses | {"verified_and_rolled_back"}:
failures.append({"code": "saved_state_module_status_unexpected", "path": str(path), "status": report.get("status")})
if report.get("status") in {"skipped_no_saved_state", "verified_and_rolled_back"}:
validate_saved_state_preflight(preflight, failures, "saved_state_module", path, expected_count_keys=("modules", "scanned", "limit"))
if report.get("status") == "skipped_no_saved_state":
expected_count_keys = ("modules", "limit") if report.get("status") == "skipped_no_saved_state" else ("modules", "scanned", "limit")
validate_saved_state_preflight(
preflight,
failures,
"saved_state_module",
path,
expected_count_keys=expected_count_keys,
)
if report.get("status") in skip_statuses:
if report.get("skipped") is not True:
failures.append({"code": "saved_state_module_skip_flag_missing", "path": str(path), "skipped": report.get("skipped")})
if report.get("status") == "skipped_no_saved_state_candidate":
diagnostics = report.get("diagnostics") if isinstance(report.get("diagnostics"), dict) else {}
if not str(diagnostics.get("message") or "").strip():
failures.append({"code": "saved_state_module_skip_diagnostics_missing", "path": str(path)})
if report.get("status") == "verified_and_rolled_back":
if write_plan.get("allowed") is not True:
failures.append({"code": "saved_state_module_write_plan_not_allowed", "path": str(path), "write_plan": write_plan})
@@ -1906,6 +1925,40 @@ def run_self_test() -> dict[str, Any]:
if soft["failures"]:
failures.append({"code": "self_test_soft_unexpected_failures", "failures": soft["failures"]})
public_skip_dir = reports_root / "public_skip"
write_self_test_reports(public_skip_dir, base_id="public_skip", composed=False, saved_state_written=False)
public_form_path = public_skip_dir / "saved-state-write-routes-smoke.json"
public_form_report = json.loads(public_form_path.read_text(encoding="utf-8"))
public_form_report["saved_state_preflight"]["counts"].pop("scanned", None)
write_json(public_form_path, public_form_report)
public_module_path = public_skip_dir / "module-stream-write-smoke-script.json"
public_module_report = json.loads(public_module_path.read_text(encoding="utf-8"))
public_module_report.update({
"status": "skipped_no_saved_state_candidate",
"table": "ConfigCASSave",
"diagnostics": {"message": "no safe saved-state BSL module stream candidates found"},
})
public_module_report.pop("module_ref", None)
public_module_report.pop("saved_state_preflight", None)
public_module_report.pop("write_plan", None)
public_module_report.pop("metadata_write", None)
write_json(public_module_path, public_module_report)
public_skip = validate_base("public_skip", public_skip_dir, validator_args())
if public_skip["failures"]:
failures.append({"code": "self_test_public_skip_unexpected_failures", "failures": public_skip["failures"]})
public_skip_strict = validate_base(
"public_skip",
public_skip_dir,
validator_args(require_saved_state_write_smoke=True),
)
public_skip_strict_codes = {str(failure.get("code")) for failure in public_skip_strict["failures"]}
if "saved_state_module_write_required" not in public_skip_strict_codes:
failures.append({
"code": "self_test_public_skip_strict_expected_failure_missing",
"expected": "saved_state_module_write_required",
"actual": sorted(public_skip_strict_codes),
})
strict_skip = validate_base(
base_id,
report_dir,
@@ -2339,6 +2392,8 @@ def run_self_test() -> dict[str, Any]:
"schema": "onec_verify_reports_self_test.v1",
"passed": not failures,
"soft": soft,
"public_skip": public_skip,
"public_skip_strict_failure_codes": sorted(public_skip_strict_codes),
"strict_skip_failure_codes": sorted(strict_codes),
"coverage_failure_codes": sorted(coverage_codes),
"consistency_failure_codes": sorted(consistency_codes),