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