Skip to content

Commit fc1e828

Browse files
committed
Report all diverged properties.
1 parent cb79409 commit fc1e828

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

test_utils/src/lib.rs

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,28 @@ macro_rules! test_interpreter_and_jit {
276276
Ok(()) => {
277277
let (instruction_count_jit, result_jit) = vm.execute_program(&$executable, false);
278278
let tracer_jit = &vm.context_object_pointer;
279+
let mut diverged = false;
280+
if format!("{:?}", result_interpreter) != format!("{:?}", result_jit) {
281+
println!(
282+
"Result of interpreter ({:?}) and JIT ({:?}) diverged",
283+
result_interpreter, result_jit,
284+
);
285+
diverged = true;
286+
}
287+
if instruction_count_interpreter != instruction_count_jit {
288+
println!(
289+
"Instruction meter of interpreter ({:?}) and JIT ({:?}) diverged",
290+
instruction_count_interpreter, instruction_count_jit,
291+
);
292+
diverged = true;
293+
}
294+
if interpreter_final_pc != vm.registers[11] {
295+
println!(
296+
"Final PC of interpreter ({:?}) and JIT ({:?}) result diverged",
297+
interpreter_final_pc, vm.registers[11],
298+
);
299+
diverged = true;
300+
}
279301
if !TestContextObject::compare_trace_log(&_tracer_interpreter, tracer_jit) {
280302
let analysis = Analysis::from_executable(&$executable).unwrap();
281303
let stdout = std::io::stdout();
@@ -288,20 +310,9 @@ macro_rules! test_interpreter_and_jit {
288310
analysis
289311
.disassemble_trace_log(&mut stdout.lock(), &tracer_jit.trace_log)
290312
.unwrap();
291-
panic!();
313+
diverged = true;
292314
}
293-
assert_eq!(
294-
format!("{:?}", result_interpreter), format!("{:?}", result_jit),
295-
"Interpreter and JIT instruction result diverged",
296-
);
297-
assert_eq!(
298-
instruction_count_interpreter, instruction_count_jit,
299-
"Interpreter and JIT instruction meter diverged",
300-
);
301-
assert_eq!(
302-
interpreter_final_pc, vm.registers[11],
303-
"Interpreter and JIT instruction final PC diverged",
304-
);
315+
assert!(!diverged);
305316
}
306317
}
307318
}

0 commit comments

Comments
 (0)