diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-10-28 21:23:23 +1100 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-11-07 11:15:18 +1100 |
| commit | f5df56b26b5a9c46299e74591602940c0e48b08c (patch) | |
| tree | 5e45e4f86e3b70a650bef318bbbae57b1ba26554 /tests/coverage-map/closure_macro.rs | |
| parent | 8eef39f0825f03629373e430063f331149da6d37 (diff) | |
| download | rust-f5df56b26b5a9c46299e74591602940c0e48b08c.tar.gz rust-f5df56b26b5a9c46299e74591602940c0e48b08c.zip | |
coverage: Flatten `coverage-map/status-quo/` into its parent directory
Diffstat (limited to 'tests/coverage-map/closure_macro.rs')
| -rw-r--r-- | tests/coverage-map/closure_macro.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/coverage-map/closure_macro.rs b/tests/coverage-map/closure_macro.rs new file mode 100644 index 00000000000..9b289141c2e --- /dev/null +++ b/tests/coverage-map/closure_macro.rs @@ -0,0 +1,40 @@ +// compile-flags: --edition=2018 +#![feature(coverage_attribute)] + +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(()) +} |
