diff --git a/ceno_host/tests/test_elf.rs b/ceno_host/tests/test_elf.rs index 6353a0cf9..d7ec86bc9 100644 --- a/ceno_host/tests/test_elf.rs +++ b/ceno_host/tests/test_elf.rs @@ -104,11 +104,19 @@ fn test_ceno_rt_io() -> Result<()> { let _steps = run(&mut state)?; let all_messages = messages_to_strings(&read_all_messages(&state)); - for msg in &all_messages { - print!("{msg}"); + + if cfg!(debug_assertions) { + println!("Running in debug mode\n"); + for msg in &all_messages { + print!("Message: {msg}"); + } + assert_eq!(&all_messages[0], "📜📜📜 Hello, World!\n"); + assert_eq!(&all_messages[1], "🌏🌍🌎\n"); + } else { + println!("Running in production mode\n"); + assert_eq!(all_messages.len(),0); } - assert_eq!(&all_messages[0], "📜📜📜 Hello, World!\n"); - assert_eq!(&all_messages[1], "🌏🌍🌎\n"); + Ok(()) } diff --git a/ceno_rt/src/io.rs b/ceno_rt/src/io.rs index 3b0e0205b..12c6536ed 100644 --- a/ceno_rt/src/io.rs +++ b/ceno_rt/src/io.rs @@ -74,4 +74,22 @@ mod macros { let _ = core::writeln!($crate::info_out(), $($arg)*); }; } + + #[macro_export] + macro_rules! debug_print { + ($($arg:tt)*) => { + + // compiles only in debug mode + #[cfg(debug_assertions)] + { + let _ = core::writeln!($crate::info_out(), $($arg)*); + } + + // compiles only in production mode + #[cfg(not(debug_assertions))] + { + + } + } + } } diff --git a/examples/examples/ceno_rt_io.rs b/examples/examples/ceno_rt_io.rs index 76988c9a2..cdc3f9b42 100644 --- a/examples/examples/ceno_rt_io.rs +++ b/examples/examples/ceno_rt_io.rs @@ -1,8 +1,8 @@ extern crate ceno_rt; -use ceno_rt::println; +use ceno_rt::debug_print; use core::fmt::Write; fn main() { - println!("📜📜📜 Hello, World!"); - println!("🌏🌍🌎"); + debug_print!("📜📜📜 Hello, World!"); + debug_print!("🌏🌍🌎"); }