aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-12-10 00:05:05 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-12-10 00:05:05 +0000
commit26c75e23303daeecd94467ea90095c201d447557 (patch)
treebd2b35ee6c3531ba594b3189da39f3d4c2b324c1
parent40a2346136b01ec60c7bbbbea21fbf04180ab5e3 (diff)
parent1c83b984cac44971876d000365f63646f8404d37 (diff)
downloadanyhow-android12L-d2-s7-release.tar.gz
Change-Id: I557fef679e844413a51476a0d50787258000b4c8
-rw-r--r--patches/0001-Support-RUST_BACKTRACE-settings-in-test_fmt.patch64
-rw-r--r--tests/test_fmt.rs20
2 files changed, 74 insertions, 10 deletions
diff --git a/patches/0001-Support-RUST_BACKTRACE-settings-in-test_fmt.patch b/patches/0001-Support-RUST_BACKTRACE-settings-in-test_fmt.patch
new file mode 100644
index 0000000..b577c41
--- /dev/null
+++ b/patches/0001-Support-RUST_BACKTRACE-settings-in-test_fmt.patch
@@ -0,0 +1,64 @@
+From 7a58c3792b5f844514036b1f098eda228ba0ab8f Mon Sep 17 00:00:00 2001
+From: Matthew Maurer <mmaurer@google.com>
+Date: Tue, 23 Nov 2021 22:39:07 +0000
+Subject: [PATCH] Support RUST_BACKTRACE settings in test_fmt
+
+Setting `RUST_BACKTRACE` when running tests is useful so that the logs
+will contain backtraces when a test fails. `anyhow` uses this
+environment variable as well when formatting its errors. `test_fmt`
+currently tests that formatting is an exact match, so adding a trailing
+backtrace causes them to fail.
+
+This patch checks that the formatted error *starts with* the intended
+result, thus allowing it to pass when a backtrace is appended.
+
+Change-Id: I7ea8bcded841558d845f0cba4a92a2339a6db3f5
+---
+ tests/test_fmt.rs | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/tests/test_fmt.rs b/tests/test_fmt.rs
+index cc49291..5703ebb 100644
+--- a/tests/test_fmt.rs
++++ b/tests/test_fmt.rs
+@@ -68,27 +68,27 @@ Error {
+
+ #[test]
+ fn test_display() {
+- assert_eq!("g failed", h().unwrap_err().to_string());
++ assert!(h().unwrap_err().to_string().starts_with("g failed"));
+ }
+
+ #[test]
+ fn test_altdisplay() {
+- assert_eq!(EXPECTED_ALTDISPLAY_F, format!("{:#}", f().unwrap_err()));
+- assert_eq!(EXPECTED_ALTDISPLAY_G, format!("{:#}", g().unwrap_err()));
+- assert_eq!(EXPECTED_ALTDISPLAY_H, format!("{:#}", h().unwrap_err()));
++ assert!(format!("{:#}", f().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_F));
++ assert!(format!("{:#}", g().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_G));
++ assert!(format!("{:#}", h().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_H));
+ }
+
+ #[test]
+ #[cfg_attr(not(backtrace), ignore)]
+ fn test_debug() {
+- assert_eq!(EXPECTED_DEBUG_F, format!("{:?}", f().unwrap_err()));
+- assert_eq!(EXPECTED_DEBUG_G, format!("{:?}", g().unwrap_err()));
+- assert_eq!(EXPECTED_DEBUG_H, format!("{:?}", h().unwrap_err()));
++ assert!(format!("{:?}", f().unwrap_err()).starts_with(EXPECTED_DEBUG_F));
++ assert!(format!("{:?}", g().unwrap_err()).starts_with(EXPECTED_DEBUG_G));
++ assert!(format!("{:?}", h().unwrap_err()).starts_with(EXPECTED_DEBUG_H));
+ }
+
+ #[test]
+ fn test_altdebug() {
+- assert_eq!(EXPECTED_ALTDEBUG_F, format!("{:#?}", f().unwrap_err()));
+- assert_eq!(EXPECTED_ALTDEBUG_G, format!("{:#?}", g().unwrap_err()));
+- assert_eq!(EXPECTED_ALTDEBUG_H, format!("{:#?}", h().unwrap_err()));
++ assert!(format!("{:#?}", f().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_F));
++ assert!(format!("{:#?}", g().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_G));
++ assert!(format!("{:#?}", h().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_H));
+ }
+--
+2.34.0.rc2.393.gf8c9666880-goog
+
diff --git a/tests/test_fmt.rs b/tests/test_fmt.rs
index cc49291..5703ebb 100644
--- a/tests/test_fmt.rs
+++ b/tests/test_fmt.rs
@@ -68,27 +68,27 @@ Error {
#[test]
fn test_display() {
- assert_eq!("g failed", h().unwrap_err().to_string());
+ assert!(h().unwrap_err().to_string().starts_with("g failed"));
}
#[test]
fn test_altdisplay() {
- assert_eq!(EXPECTED_ALTDISPLAY_F, format!("{:#}", f().unwrap_err()));
- assert_eq!(EXPECTED_ALTDISPLAY_G, format!("{:#}", g().unwrap_err()));
- assert_eq!(EXPECTED_ALTDISPLAY_H, format!("{:#}", h().unwrap_err()));
+ assert!(format!("{:#}", f().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_F));
+ assert!(format!("{:#}", g().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_G));
+ assert!(format!("{:#}", h().unwrap_err()).starts_with(EXPECTED_ALTDISPLAY_H));
}
#[test]
#[cfg_attr(not(backtrace), ignore)]
fn test_debug() {
- assert_eq!(EXPECTED_DEBUG_F, format!("{:?}", f().unwrap_err()));
- assert_eq!(EXPECTED_DEBUG_G, format!("{:?}", g().unwrap_err()));
- assert_eq!(EXPECTED_DEBUG_H, format!("{:?}", h().unwrap_err()));
+ assert!(format!("{:?}", f().unwrap_err()).starts_with(EXPECTED_DEBUG_F));
+ assert!(format!("{:?}", g().unwrap_err()).starts_with(EXPECTED_DEBUG_G));
+ assert!(format!("{:?}", h().unwrap_err()).starts_with(EXPECTED_DEBUG_H));
}
#[test]
fn test_altdebug() {
- assert_eq!(EXPECTED_ALTDEBUG_F, format!("{:#?}", f().unwrap_err()));
- assert_eq!(EXPECTED_ALTDEBUG_G, format!("{:#?}", g().unwrap_err()));
- assert_eq!(EXPECTED_ALTDEBUG_H, format!("{:#?}", h().unwrap_err()));
+ assert!(format!("{:#?}", f().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_F));
+ assert!(format!("{:#?}", g().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_G));
+ assert!(format!("{:#?}", h().unwrap_err()).starts_with(EXPECTED_ALTDEBUG_H));
}