Repository navigation
tests: remove the subprocess time limits of CI tests and checks (EN-116) - #201
Draft
luisleo526 wants to merge 2 commits into
Draft
luisleo526 wants to merge 2 commits into
luisleo526 wants to merge 2 commits into
Conversation
…first, EN-116) Owner rule (EN-105 G9, EN-116): slowness never fails a required check. tests/_compile.py compile_cpp() kills the compiler after 60 seconds and the test fails with subprocess.TimeoutExpired. This test runs the helper in a fresh interpreter with CXX set to a wrapper that sleeps 62 seconds and then runs the real compiler with the same arguments, and requires exit 0, the success marker and no timeout text. It takes about 65 seconds on purpose. The test adds no time bound of its own and changes no production or helper code. On this commit it FAILS (the helper raises TimeoutExpired at 60 seconds); the next commit removes the bounds and it passes. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…k (EN-116) Owner rule (EN-105 G9, EN-116): slowness never fails a required check. The only hang catcher is the job envelope at the platform maximum, and an expiry there is a HANG (re-run), not a test failure. Exit codes, results and diagnostics are still checked. * 45 subprocess/spawn time limits removed (the `timeout` argument only; the call, its arguments and every result check stay): tests/_compile.py (4), tests/_e2e.py (4), tests/_requests.py (1), 19 test files (31 sites: build 60-180 s, run 10-30 s), scripts/gen_host_members.py (3), .github/pineforge/src/codegen-docs-rule.mjs (the 10 s git timeout). * 6 job-level `timeout-minutes` in .github/workflows/gate.yml (4) and test.yml (2) set from 10/30 to 360, the platform maximum. * .github/workflows/promote-baseline.yml: the Cloud SQL proxy readiness loop keeps its one-second poll interval and waits until the proxy answers; the 30-poll deadline and its failure exit are removed (the job envelope is the only hang catcher). It fails at once, with a plain message, if the proxy process has exited before it became ready (a liveness check, not a time limit). Not touched: the advertised 120 s transpile guard (pineforge_codegen/limits.py, README.md:483), the tests that assert a product time budget or speed (tests/test_input_safety.py, test_array_history.py:752, test_e2e_security_nested_helper_call.py:79, test_diagnostic_codes.py:257) and the timeoutMs recorded in fixture metadata. The previous commit adds tests/test_no_time_limit_on_slow_compiler.py, which fails without this change (a 62 second compiler raises TimeoutExpired in tests/_compile.py) and passes with it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
luisleo526
force-pushed
the
lv/en116-codegen-no-time-limits
branch
from
October 12, 2026 23:08
341a67c to
b7495e7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tests: a slow but correct compiler must pass the compile helper (red first, EN-116)
Owner rule (EN-105 G9, EN-116): slowness never fails a required check. tests/_compile.py
compile_cpp() kills the compiler after 60 seconds and the test fails with
subprocess.TimeoutExpired. This test runs the helper in a fresh interpreter with CXX set to
a wrapper that sleeps 62 seconds and then runs the real compiler with the same arguments,
and requires exit 0, the success marker and no timeout text. It takes about 65 seconds on
purpose. The test adds no time bound of its own and changes no production or helper code.
On this commit it FAILS (the helper raises TimeoutExpired at 60 seconds); the next commit
removes the bounds and it passes.
Remove every time limit that can fail a slow but correct codegen check (EN-116)
Owner rule (EN-105 G9, EN-116): slowness never fails a required check. The only hang catcher
is the job envelope at the platform maximum, and an expiry there is a HANG (re-run), not a
test failure. Exit codes, results and diagnostics are still checked.
timeoutargument only; the call, itsarguments and every result check stay): tests/_compile.py (4), tests/_e2e.py (4),
tests/_requests.py (1), 19 test files (31 sites: build 60-180 s, run 10-30 s), scripts/gen_host_members.py (3),
.github/pineforge/src/codegen-docs-rule.mjs (the 10 s git timeout).
timeout-minutesin .github/workflows/gate.yml (4) and test.yml (2) set from 10/30to 360, the platform maximum.
one-second poll interval and waits until the proxy answers; the 30-poll deadline and its
failure exit are removed (the job envelope is the only hang catcher). It fails at once, with a
plain message, if the proxy process has exited before it became ready (a liveness check, not a
time limit).
Not touched: the advertised 120 s transpile guard (pineforge_codegen/limits.py, README.md:483),
the tests that assert a product time budget or speed (tests/test_input_safety.py,
test_array_history.py:752, test_e2e_security_nested_helper_call.py:79, test_diagnostic_codes.py:257)
and the timeoutMs recorded in fixture metadata.
The previous commit adds tests/test_no_time_limit_on_slow_compiler.py, which fails without
this change (a 62 second compiler raises TimeoutExpired in tests/_compile.py) and passes with it.
Notes for review:
🤖 Generated with Claude Code