Files
stack/agents/rocko/work/vikunja-502/runner-change.diff

47 lines
3.0 KiB
Diff

--- agents/rocko/work/vikunja-502/run-mutants.baseline.py 2026-10-21 23:53:18.260554870 -0500
+++ agents/rocko/work/vikunja-502/run-mutants.py 2026-10-22 00:00:01.232405637 -0500
@@ -3,7 +3,7 @@
from pathlib import Path
import argparse, hashlib, json, os, re, signal, subprocess, sys, time
packet = Path(__file__).resolve().parent
-root = Path('/mnt/storage/scratch/rocko-r191-r3')
+root = Path('/mnt/storage/scratch/rocko-v502')
all_sites = json.loads((packet/'all-mutants.json').read_text())
parser = argparse.ArgumentParser()
parser.add_argument('ids', nargs='*')
@@ -104,11 +104,15 @@
'failing':re.findall(r'^\s*not ok \d+ - (.*)$',text,re.M),
'counts':{k:int(v) for k,v in re.findall(r'^# (tests|pass|fail|skipped|cancelled) (\d+)\s*$',text,re.M)}}
-def timeout_cause(site):
+def timeout_cause(site, control=None):
if site['id']=='SR08':
return ('runtimes.mjs:333 loops on now() <= deadline; stop-run.test.mjs:106-108 '
'gives the second host a fixed fake clock with a real sleep. Removing the join '
'branch enters the delivery loop without advancing that clock. Original log: TAP header only.')
+ if not control or control.get('passed') is not True:
+ return ('Mutated '+site['file']+' timed out after 90s; no passing same-file control '
+ 'exists in this invocation. Detection is not established. '
+ 'Detailed cause must be recorded before review.')
return ('Mutated '+site['file']+' timed out after 90s while the same whole test file '
'passed unmutated in this invocation. Detailed cause must be recorded before review.')
@@ -138,7 +142,7 @@
if not old or old['status']!='timeout' or old['test']!=args.control_file or old['failing']:
raise SystemExit('historical timeout does not match approved control')
if Path(old['log']).read_text().strip()!='TAP version 13': raise SystemExit('historical timeout log changed')
- adjudication = {**old,'status':'killed-by-timeout','cause':timeout_cause(site),'control':controls[args.control_file],
+ adjudication = {**old,'status':'killed-by-timeout','cause':timeout_cause(site, controls[args.control_file]),'control':controls[args.control_file],
'original_log_sha256':hashlib.sha256(Path(old['log']).read_bytes()).hexdigest()}
(packet/'SR08-timeout-adjudication.json').write_text(json.dumps(adjudication,indent=2)+'\n')
print('TIMEOUT_KILL SR08',adjudication['cause'],flush=True)
@@ -162,7 +166,7 @@
elif observed['failing'] and expected: status = 'assertion-killed'
else: status = 'invalid-failure'
row = {**{k:s[k] for k in ['id','file','test','pattern','check']},**observed,'status':status}
- if observed['timeout']: row.update(cause=timeout_cause(s),control=control)
+ if observed['timeout']: row.update(cause=timeout_cause(s, control),control=control)
results.append(row)
result_file.write_text(json.dumps(results,indent=2)+'\n')
print(status,flush=True)