Skip to content

Commit d0e6c93

Browse files
committed
test(statetest): skip slow runtime fixtures
1 parent 40dde4e commit d0e6c93

1 file changed

Lines changed: 20 additions & 1 deletion

File tree

crates/revmc-statetest/src/compiled.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,20 @@ struct RuntimeTestContext<'a> {
8787
elapsed: &'a Arc<Mutex<Duration>>,
8888
}
8989

90+
fn skip_runtime_test(path: &Path) -> bool {
91+
if skip_test(path) {
92+
return true;
93+
}
94+
95+
// TODO: Remove this once runtime compilation handles these cases fast enough.
96+
// These generated execution-spec tests are interpreter coverage, but runtime
97+
// mode has to compile hundreds of large/duplicate variants and can exceed CI
98+
// timeouts on slower targets.
99+
path.file_name().is_some_and(|name| {
100+
name == "test_stack_overflow.json" || name == "precompsEIP2929Cancun.json"
101+
})
102+
}
103+
90104
/// Execute a test suite file using the runtime backend.
91105
///
92106
/// For each test unit, enqueue JIT compilation via the backend before executing.
@@ -95,7 +109,7 @@ fn execute_test_suite_runtime(
95109
elapsed: &Arc<Mutex<Duration>>,
96110
backend: &JitBackend,
97111
) -> Result<(), TestError> {
98-
if skip_test(path) {
112+
if skip_runtime_test(path) {
99113
return Ok(());
100114
}
101115

@@ -183,6 +197,7 @@ fn run_test_worker(
183197
return Ok(());
184198
};
185199

200+
let t0 = Instant::now();
186201
let result = match mode {
187202
CompileMode::Interpreter => {
188203
execute_test_suite(&test_path, &state.elapsed, false, false)
@@ -191,6 +206,10 @@ fn run_test_worker(
191206
execute_test_suite_runtime(&test_path, &state.elapsed, backend.unwrap())
192207
}
193208
};
209+
let elapsed = t0.elapsed();
210+
if elapsed > Duration::from_secs(5) {
211+
eprintln!("slow statetest file ({elapsed:?}): {}", test_path.display());
212+
}
194213

195214
state.console_bar.inc(1);
196215

0 commit comments

Comments
 (0)