test: final source recheck for V1 jet CV and V3 Taylor-Green runs
Both runners now re-derive the recorded source identity after the run (source_provenance.final_source_check) and only then mark the receipt complete. A changed source, or a recheck that fails, rewrites the receipt as invalid and raises: - V1: in-run receipts carry run_status=INCOMPLETE; finish_receipt sets COMPLETE or INVALID_SOURCE_CHANGED (+ source_recheck/source_after). - V3: completed stays False, invalid=SOURCE_CHANGED_DURING_RUN, no screening_pass; the assessor requires source_recheck UNCHANGED (frozen mode still accepts receipts from before the field existed). Interrupted runs keep INCOMPLETE / completed=False. Host tests cover unchanged, changed and failed rechecks and incomplete runs. No threshold or solver change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8cae58cdf1
commit
df0f586331
7 files changed
+159
-15
No files matched your search
@@ -319,6 +319,17 @@ def main():
|
||||
),
|
||||
flush=True,
|
||||
)
|
||||
from tests.validation.source_provenance import final_source_check
|
||||
recheck = final_source_check(
|
||||
dict(source=source, runtime_source=runtime),
|
||||
lambda: dict(source=verify_source(repo, args.expected_revision,
|
||||
current=args.current_checkout),
|
||||
runtime_source=runtime_source(repo)))
|
||||
report.update(recheck)
|
||||
if recheck["source_recheck"] != "UNCHANGED":
|
||||
report.update(invalid="SOURCE_CHANGED_DURING_RUN") # completed stays False
|
||||
save()
|
||||
raise RuntimeError("Source changed during the run; receipt marked invalid")
|
||||
report.update(
|
||||
completed=True,
|
||||
seconds=time.monotonic() - started,
|
||||
|
||||
Reference in new issue
Block a user