R-1209 closed: the decoy suite gets 600 s in script-tests (the others keep 300 s; a time-out still fails) — it timed out on every CI push tonight
gates / gates (push) Successful in 15m40s
gates / gates (push) Successful in 15m40s
This commit is contained in:
@@ -35,6 +35,14 @@ for _stream in (sys.stdout, sys.stderr):
|
||||
|
||||
MARK = "FELHOM_SCRIPT_TESTS_GATE"
|
||||
TIMEOUT_S = 300
|
||||
# R-1209 (2026-10-21 night): the decoy suite runs every gate's decoys and took 250–255 s on the CI runner on green runs,
|
||||
# then over 300 s on every push that night (CI jobs 2177–2189) — ~155 s on DooPlex. A time-out is still a FAILURE (rc
|
||||
# „timeout"); only this one suite gets a longer limit. Pinned by test_script_tests_gate.py (timeout_for).
|
||||
SUITE_TIMEOUT_S = {"scripts/test_gate_decoys.py": 600}
|
||||
|
||||
|
||||
def timeout_for(rel):
|
||||
return SUITE_TIMEOUT_S.get(rel.replace(os.sep, "/"), TIMEOUT_S)
|
||||
SKIP_DIRS = {"__pycache__", ".git", "node_modules"}
|
||||
|
||||
|
||||
@@ -62,12 +70,13 @@ def main(argv):
|
||||
for s in suites:
|
||||
rel = os.path.relpath(s, root)
|
||||
t0 = time.time()
|
||||
limit = timeout_for(rel)
|
||||
try:
|
||||
p = subprocess.run([sys.executable, "-W", "ignore", s], cwd=root, env=env,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, timeout=TIMEOUT_S)
|
||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, timeout=limit)
|
||||
rc, tail = p.returncode, p.stdout.decode("utf-8", "replace").strip().splitlines()[-3:]
|
||||
except subprocess.TimeoutExpired:
|
||||
rc, tail = "timeout", ["(killed after %d s)" % TIMEOUT_S]
|
||||
rc, tail = "timeout", ["(killed after %d s)" % limit]
|
||||
verdict = "OK " if rc == 0 else "FAIL"
|
||||
print(" %s %-55s %5.1fs rc=%s" % (verdict, rel, time.time() - t0, rc))
|
||||
if rc != 0:
|
||||
|
||||
@@ -47,8 +47,18 @@ CASES = [
|
||||
]
|
||||
|
||||
|
||||
def timeouts_ok():
|
||||
"""R-1209: only the decoy suite gets the longer limit; every other suite keeps 300 s, and a time-out still fails."""
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
import script_tests_gate as g
|
||||
return (g.timeout_for("scripts/test_gate_decoys.py") == 600 and g.timeout_for("scripts/test_other.py") == g.TIMEOUT_S == 300)
|
||||
|
||||
|
||||
def main():
|
||||
bad = 0
|
||||
t_ok = timeouts_ok()
|
||||
bad += not t_ok
|
||||
print("%s %-32s" % ("ok " if t_ok else "FAIL", "per-suite time limits (R-1209)"))
|
||||
for name, files, nested, want in CASES:
|
||||
got = gate(fake_repo(files), nested)
|
||||
ok = got == want
|
||||
|
||||
Reference in New Issue
Block a user