1From 0dedafec9fb850f4041cb7b323282b19381cb1f2 Mon Sep 17 00:00:00 2001
2From: Matthew Maurer <[email protected]>
3Date: Wed, 31 Jan 2024 15:07:59 +0100
4Subject: [PATCH] Support RUST_BACKTRACE settings in test_fmt
5
6Setting `RUST_BACKTRACE` when running tests is useful so that the logs
7will contain backtraces when a test fails. `anyhow` uses this
8environment variable as well when formatting its errors. `test_fmt`
9currently tests that formatting is an exact match, so adding a trailing
10backtrace causes them to fail.
11
12This patch checks that the formatted error *starts with* the intended
13result, thus allowing it to pass when a backtrace is appended.
14
15Change-Id: I7ea8bcded841558d845f0cba4a92a2339a6db3f5
16---
17 tests/test_fmt.rs | 20 ++++++++++----------
18 1 file changed, 10 insertions(+), 10 deletions(-)
19
20diff --git b/tests/test_fmt.rs a/tests/test_fmt.rs
21index 9766d366..016b4b8c 100644
22--- b/tests/test_fmt.rs
23+++ a/tests/test_fmt.rs
24@@ -68,27 +68,27 @@ Error {
25
26 #[test]
27 fn test_display() {
28-    assert_eq!("g failed", h().unwrap_err().to_string());
29+    assert!(h().unwrap_err().to_string().starts_with("g failed"));
30 }
31
32 #[test]
33 fn test_altdisplay() {
34-    assert_eq!(EXPECTED_ALTDISPLAY_F, format!("{:#}", f().unwrap_err()));
35-    assert_eq!(EXPECTED_ALTDISPLAY_G, format!("{:#}", g().unwrap_err()));
36-    assert_eq!(EXPECTED_ALTDISPLAY_H, format!("{:#}", h().unwrap_err()));
37+    assert!(format!("{:#}", f().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_F));
38+    assert!(format!("{:#}", g().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_G));
39+    assert!(format!("{:#}", h().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_H));
40 }
41
42 #[test]
43 #[cfg_attr(not(std_backtrace), ignore)]
44 fn test_debug() {
45-    assert_eq!(EXPECTED_DEBUG_F, format!("{:?}", f().unwrap_err()));
46-    assert_eq!(EXPECTED_DEBUG_G, format!("{:?}", g().unwrap_err()));
47-    assert_eq!(EXPECTED_DEBUG_H, format!("{:?}", h().unwrap_err()));
48+    assert!(format!("{:?}", f().unwrap_err()).starts_with(EXPECTED_DEBUG_F));
49+    assert!(format!("{:?}", g().unwrap_err()).starts_with(EXPECTED_DEBUG_G));
50+    assert!(format!("{:?}", h().unwrap_err()).starts_with(EXPECTED_DEBUG_H));
51 }
52
53 #[test]
54 fn test_altdebug() {
55-    assert_eq!(EXPECTED_ALTDEBUG_F, format!("{:#?}", f().unwrap_err()));
56-    assert_eq!(EXPECTED_ALTDEBUG_G, format!("{:#?}", g().unwrap_err()));
57-    assert_eq!(EXPECTED_ALTDEBUG_H, format!("{:#?}", h().unwrap_err()));
58+    assert!(format!("{:#?}", f().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_F));
59+    assert!(format!("{:#?}", g().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_G));
60+    assert!(format!("{:#?}", h().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_H));
61 }
62--
632.43.0.429.g432eaa2c6b-goog
64
65