fix: increase Java test timeout from 15s to 120s#1337
Merged
Conversation
Maven startup takes 2-5 seconds before tests even run, causing Java optimization benchmarks to timeout at the default 15 second limit. This fix adds a Java-specific timeout of 120 seconds that only applies to JUnit5 tests. Python and JavaScript tests remain unchanged at 15s. The timeout logic uses max(pytest_timeout, JAVA_TESTCASE_TIMEOUT) so explicit higher timeouts are still respected. Verified: All 339 tests pass, E2E Java optimization now completes successfully without timeout errors. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.
Problem
Java optimization was completely broken due to test timeouts. When running benchmarks on Java code, all optimization candidates were failing with:
This meant no Java code could be optimized through codeflash.
Root Cause
The 15-second test timeout was designed for Python's pytest, which starts almost instantly. Java's Maven has significant overhead:
With only 15 seconds total, Maven couldn't even finish starting up before timing out.
Solution
Added a Java-specific timeout of 120 seconds that gives Maven enough time to:
Code Changes
config_consts.py: Added Java timeout constant
test_runner.py: Applied Java timeout when framework is JUnit5
max(pytest_timeout, JAVA_TESTCASE_TIMEOUT)to respect explicit higher valuesSafety
This change ONLY affects Java tests:
If you explicitly pass a higher timeout, it's respected.
Testing
Before/After
Before:
After:
This unblocks Java optimization entirely.