From f5a1aa7523c7703c9380e2174465b87f58cd8344 Mon Sep 17 00:00:00 2001 From: Ahmad Afuni Date: Wed, 14 May 2025 00:22:11 +1000 Subject: [PATCH] chore: workaround for #230 (#231) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Workaround for debug panic * Use Rust exception handler 💀 --- src/backends/plonky2/circuits/mainpod.rs | 31 +++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/backends/plonky2/circuits/mainpod.rs b/src/backends/plonky2/circuits/mainpod.rs index a12e2cc..3b8b5db 100644 --- a/src/backends/plonky2/circuits/mainpod.rs +++ b/src/backends/plonky2/circuits/mainpod.rs @@ -1362,7 +1362,19 @@ mod tests { ] .into_iter() .for_each(|(op, st)| { - assert!(operation_verify(st, op, prev_statements.to_vec(), vec![]).is_err()) + let check = std::panic::catch_unwind(|| { + operation_verify(st, op, prev_statements.to_vec(), vec![]) + }); + match check { + Err(e) => { + let err_string = e.downcast_ref::().unwrap(); + if !err_string.contains("Integer too large to fit") { + panic!("Test failed with an unexpected error: {}", err_string); + } + } + Ok(Err(_)) => {} + _ => panic!("Test passed, yet it should have failed!"), + } }); } @@ -1877,8 +1889,21 @@ mod tests { ], OperationAux::None, ); - let prev_statements = vec![st1, st2, st3]; - assert!(operation_verify(st, op, prev_statements, vec![]).is_err()) + let prev_statements = [st1, st2, st3]; + + let check = std::panic::catch_unwind(|| { + operation_verify(st, op, prev_statements.to_vec(), vec![]) + }); + match check { + Err(e) => { + let err_string = e.downcast_ref::().unwrap(); + if !err_string.contains("Integer too large to fit") { + panic!("Test failed with an unexpected error: {}", err_string); + } + } + Ok(Err(_)) => {} + _ => panic!("Test passed, yet it should have failed!"), + } }) }