Reject stale native runtime build provenance before release staging

This commit is contained in:
karl committed 2026-10-13 13:04:58 +02:00
1 parent ea2c3f4691
commit 07bbcb76e8
12 files changed
+204 -9

No files matched your search

@@ -0,0 +1,39 @@
from pathlib import Path
import tempfile
import unittest
import runtime_provenance as provenance
class ProvenanceTests(unittest.TestCase):
def test_line_endings_equivalent_but_changed_source_rejected(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
for name in provenance.INPUTS:
path = root / name
path.parent.mkdir(parents=True, exist_ok=True)
path.write_bytes(b"first\nsecond\n")
manifest = {"build_provenance": provenance.fingerprint(root)}
for name in provenance.INPUTS:
(root / name).write_bytes(b"first\r\nsecond\r\n")
provenance.verify(manifest, root)
(root / provenance.INPUTS[0]).write_bytes(b"different source\n")
with self.assertRaisesRegex(ValueError, "stale"):
provenance.verify(manifest, root)
def test_missing_old_inventory_rejected_and_inputs_bounded(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
for name in provenance.INPUTS:
path = root / name
path.parent.mkdir(parents=True, exist_ok=True)
path.write_bytes(b"source\n")
with self.assertRaisesRegex(ValueError, "missing or stale"):
provenance.verify({"worker_sha256": "old-valid-hash"}, root)
(root / provenance.INPUTS[0]).write_bytes(b"x" * (1024 * 1024 + 1))
with self.assertRaisesRegex(ValueError, "oversized"):
provenance.fingerprint(root)
if __name__ == "__main__":
unittest.main()