Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions .github/workflows/downstream-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
}, indent=2) + '\n')
print('DOWNSTREAM_GATE_PASSED')
PYTHON
- name: P-C inventory A source-bound conformance
- name: P-C paired A/B source-bound conformance
env:
PYTHONDONTWRITEBYTECODE: '1'
GIT_NO_LAZY_FETCH: '1'
Expand All @@ -107,6 +107,7 @@ jobs:
test "$(git --no-replace-objects --no-lazy-fetch rev-parse HEAD)" = "$GITHUB_SHA"
test "$(git --no-replace-objects --no-lazy-fetch rev-parse --is-shallow-repository)" = false
git --no-replace-objects --no-lazy-fetch cat-file -e '9fd261135b41daf1e377f9ef2db193fee6ec36be^{commit}'
git --no-replace-objects --no-lazy-fetch cat-file -e '92a45e1749936a19ebfe31e803289e0f4683d754^{commit}'
git --no-replace-objects --no-lazy-fetch cat-file -e "$GITHUB_SHA^{commit}"
out="$RUNNER_TEMP/downstream-gate-results"
mkdir -p "$out"
Expand All @@ -115,17 +116,28 @@ jobs:
python3 -B -S - "$out" <<'PC_TEST_EVIDENCE'
import pathlib, re, sys
# Conventional unittest output checks, not hostile-producer authentication.
expected_count = 93
expected_count = 94
out = pathlib.Path(sys.argv[1])
for mode in ('normal', 'optimized'):
stderr = (out / f'proof-slice-tests-{mode}.stderr').read_text(encoding='utf-8')
summary = re.search(r'\nRan ([1-9][0-9]*) tests in [0-9]+\.[0-9]{3}s\n\nOK\n\Z', stderr)
if summary is None or int(summary.group(1)) != expected_count or 'skipped=' in stderr:
raise RuntimeError('P-C focused tests have incomplete or unsuccessful execution: ' + mode)
print('P_C_FOCUSED_TESTS_PASSED: normal and optimized, 93 methods each, no skips')
print('P_C_FOCUSED_TESTS_PASSED: normal and optimized, 94 methods each, no skips')
PC_TEST_EVIDENCE
python3 -B -S tools/proof_slice_check.py --repo . --inventory-commit "$GITHUB_SHA" --inventory-path reviews/proof_dependencies_20261008/P_C/EXPECTED_INVENTORY.json > "$out/proof-slice-inventory-normal.json" 2> "$out/proof-slice-inventory-normal.stderr"
python3 -B -O -S tools/proof_slice_check.py --repo . --inventory-commit "$GITHUB_SHA" --inventory-path reviews/proof_dependencies_20261008/P_C/EXPECTED_INVENTORY.json > "$out/proof-slice-inventory-optimized.json" 2> "$out/proof-slice-inventory-optimized.stderr"
python3 -B -S tools/proof_slice_check.py --repo . --expected-commit 92a45e1749936a19ebfe31e803289e0f4683d754 --expected-path reviews/proof_dependencies_20261008/P_C/EXPECTED_INVENTORY.json --companion-commit "$GITHUB_SHA" --companion-path reviews/proof_dependencies_20261008/P_C/PROOF_SLICE.json > "$out/proof-slice-paired-normal.json" 2> "$out/proof-slice-paired-normal.stderr"
python3 -B -O -S tools/proof_slice_check.py --repo . --expected-commit 92a45e1749936a19ebfe31e803289e0f4683d754 --expected-path reviews/proof_dependencies_20261008/P_C/EXPECTED_INVENTORY.json --companion-commit "$GITHUB_SHA" --companion-path reviews/proof_dependencies_20261008/P_C/PROOF_SLICE.json > "$out/proof-slice-paired-optimized.json" 2> "$out/proof-slice-paired-optimized.stderr"
python3 -B -S - "$out" <<'PC_PAIRED_SCOPE'
import json, os, pathlib, sys
for mode in ('normal', 'optimized'):
report = json.loads((pathlib.Path(sys.argv[1]) / f'proof-slice-paired-{mode}.json').read_text())
if not (report['valid'] is True and report['phase'] == 'paired'
and report['validation_scope'] == 'pc-pilot-fixed-source'
and report['fixed_source_commit'] == '9fd261135b41daf1e377f9ef2db193fee6ec36be'
and report['inputs']['inventory']['commit'] == '92a45e1749936a19ebfe31e803289e0f4683d754'
and report['inputs']['companion']['commit'] == os.environ['GITHUB_SHA']):
raise RuntimeError('P-C requires independently pinned, pilot-scoped paired validation')
PC_PAIRED_SCOPE
- name: Retain evidence even on failure
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
Expand Down
Loading
Loading