diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-06-12 18:07:04 +1000 | 
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-06-28 11:09:19 +1000 | 
| commit | e0625b4586c5a0f855a1157b09ae384f5de0ecf7 (patch) | |
| tree | d6f6d80e1d6b9aaec8b6340986a3e22475775651 /tests/run-coverage/closure_macro.rs | |
| parent | 22e119bbacd3aa11db04d84947b4fb2c5ccb0435 (diff) | |
| download | rust-e0625b4586c5a0f855a1157b09ae384f5de0ecf7.tar.gz rust-e0625b4586c5a0f855a1157b09ae384f5de0ecf7.zip | |
Migrate most of the existing coverage tests over to `run-coverage`
Diffstat (limited to 'tests/run-coverage/closure_macro.rs')
| -rw-r--r-- | tests/run-coverage/closure_macro.rs | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/tests/run-coverage/closure_macro.rs b/tests/run-coverage/closure_macro.rs new file mode 100644 index 00000000000..5e3b00d1ef5 --- /dev/null +++ b/tests/run-coverage/closure_macro.rs @@ -0,0 +1,40 @@ +// compile-flags: --edition=2018 +#![feature(no_coverage)] + +macro_rules! bail { + ($msg:literal $(,)?) => { + if $msg.len() > 0 { + println!("no msg"); + } else { + println!($msg); + } + return Err(String::from($msg)); + }; +} + +macro_rules! on_error { + ($value:expr, $error_message:expr) => { + $value.or_else(|e| { // FIXME(85000): no coverage in closure macros + let message = format!($error_message, e); + if message.len() > 0 { + println!("{}", message); + Ok(String::from("ok")) + } else { + bail!("error"); + } + }) + }; +} + +fn load_configuration_files() -> Result<String, String> { + Ok(String::from("config")) +} + +pub fn main() -> Result<(), String> { + println!("Starting service"); + let config = on_error!(load_configuration_files(), "Error loading configs: {}")?; + + let startup_delay_duration = String::from("arg"); + let _ = (config, startup_delay_duration); + Ok(()) +} | 
