Accept optional saved-state smoke skips
This commit is contained in:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user