Files
ARCADIA-Studio/harness/experiments/state-multiselect-delivery-audit-20260923/check-state-multiselect-outcomes-20260923.py
T

31 lines
1.9 KiB
Python

"""Independently count actual libtest outcomes in already byte-verified peer evidence."""
from pathlib import Path
import json
import re
import zipfile
ROOT = Path(__file__).resolve().parent.parent
PACKAGE = ROOT / '.local/state-multiselect-delivery-readback-20260923/checks'
manifest = json.loads((PACKAGE / 'manifest.json').read_bytes())
expected = {'core-2': (11, 0, 0, 0), 'desktop-2': (1286, 0, 6, 0),
'desktop-3': (122, 0, 0, 1170)}
results = {}
with zipfile.ZipFile(PACKAGE / 'evidence.zip') as archive:
for gate, counts in expected.items():
name = manifest['logicalFiles']['cargo/' + gate + '/stdout.log']
log = archive.read(name).decode('utf-8')
outcomes = re.findall(r'^test ([^\r\n]+) \.\.\. (ok|FAILED|ignored)(?:, [^\r\n]*)?\r?$', log, re.M)
names = [name for name, status in outcomes]
assert len(names) == len(set(names)), (gate, 'duplicate outcome')
actual = tuple(sum(status == value for _, status in outcomes) for value in ('ok', 'FAILED', 'ignored'))
summaries = re.findall(r'^test result: (ok|FAILED)\. (\d+) passed; (\d+) failed; (\d+) ignored; (\d+) measured; (\d+) filtered out;', log, re.M)
assert len(summaries) == 1, (gate, summaries)
state, passed, failed, ignored, measured, filtered = summaries[0]
assert state == 'ok' and int(measured) == 0
assert actual == tuple(map(int, (passed, failed, ignored))) == counts[:3]
assert int(filtered) == counts[3]
results[gate] = {'passed': actual[0], 'failed': actual[1], 'ignored': actual[2],
'filtered': int(filtered), 'actual_unique_outcomes': len(names),
'ignored_names': [name for name, status in outcomes if status == 'ignored']}
print(json.dumps({'result': 'PASS', 'scope': 'Recorded libtest output only; no new execution or complete listing admission.', 'gates': results}, indent=2))