summaryrefslogtreecommitdiffstats
path: root/third_party/rust/env_logger/examples/in_tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/env_logger/examples/in_tests.rs')
-rw-r--r--third_party/rust/env_logger/examples/in_tests.rs54
1 files changed, 54 insertions, 0 deletions
diff --git a/third_party/rust/env_logger/examples/in_tests.rs b/third_party/rust/env_logger/examples/in_tests.rs
new file mode 100644
index 0000000000..c4487cc9c1
--- /dev/null
+++ b/third_party/rust/env_logger/examples/in_tests.rs
@@ -0,0 +1,54 @@
+/*!
+Using `env_logger` in tests.
+
+Log events will be captured by `cargo` and only printed if the test fails.
+You can run this example by calling:
+
+```text
+cargo test --example in_tests
+```
+
+You should see the `it_does_not_work` test fail and include its log output.
+*/
+
+#[cfg_attr(test, macro_use)]
+extern crate log;
+
+fn main() {}
+
+#[cfg(test)]
+mod tests {
+ fn init_logger() {
+ let _ = env_logger::builder()
+ // Include all events in tests
+ .filter_level(log::LevelFilter::max())
+ // Ensure events are captured by `cargo test`
+ .is_test(true)
+ // Ignore errors initializing the logger if tests race to configure it
+ .try_init();
+ }
+
+ #[test]
+ fn it_works() {
+ init_logger();
+
+ let a = 1;
+ let b = 2;
+
+ debug!("checking whether {} + {} = 3", a, b);
+
+ assert_eq!(3, a + b);
+ }
+
+ #[test]
+ fn it_does_not_work() {
+ init_logger();
+
+ let a = 1;
+ let b = 2;
+
+ debug!("checking whether {} + {} = 6", a, b);
+
+ assert_eq!(6, a + b);
+ }
+}