From ef3f8936cbb581e615e1e3c96f01ec9b42ceaa9e Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 3 Mar 2024 17:44:40 +0200 Subject: [PATCH] refactor(tvix/*/from_addr): improve test debuggability If there's an unexpected test failure, print it out, rather than just saying something is false even though it should be true. Use .expect() for this, which displays the error if it failed. We can't use expect_err(), as our stores are not display'able, so use an assertion with a message there. Change-Id: I2d88861d979d107edc0717fbdb3cdac9a6bfc5e4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11091 Tested-by: BuildkiteCI Reviewed-by: Brian Olsen Reviewed-by: flokli --- tvix/castore/src/blobservice/from_addr.rs | 8 ++++++-- tvix/castore/src/directoryservice/from_addr.rs | 8 ++++++-- tvix/store/src/pathinfoservice/from_addr.rs | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/tvix/castore/src/blobservice/from_addr.rs b/tvix/castore/src/blobservice/from_addr.rs index db221f05a..1f73c802c 100644 --- a/tvix/castore/src/blobservice/from_addr.rs +++ b/tvix/castore/src/blobservice/from_addr.rs @@ -115,7 +115,11 @@ mod tests { /// Correct scheme to connect to localhost over http, but with additional path, which is invalid. #[test_case("grpc+http://localhost/some-path", false; "grpc valid invalid host and path")] #[tokio::test] - async fn test_from_addr_tokio(uri_str: &str, is_ok: bool) { - assert_eq!(from_addr(uri_str).await.is_ok(), is_ok) + async fn test_from_addr_tokio(uri_str: &str, exp_succeed: bool) { + if exp_succeed { + from_addr(uri_str).await.expect("should succeed"); + } else { + assert!(from_addr(uri_str).await.is_err(), "should fail"); + } } } diff --git a/tvix/castore/src/directoryservice/from_addr.rs b/tvix/castore/src/directoryservice/from_addr.rs index 0a5a0464c..14251ee4b 100644 --- a/tvix/castore/src/directoryservice/from_addr.rs +++ b/tvix/castore/src/directoryservice/from_addr.rs @@ -114,7 +114,11 @@ mod tests { /// Correct scheme to connect to localhost over http, but with additional path, which is invalid. #[test_case("grpc+http://localhost/some-path", false; "grpc valid invalid host and path")] #[tokio::test] - async fn test_from_addr_tokio(uri_str: &str, is_ok: bool) { - assert_eq!(from_addr(uri_str).await.is_ok(), is_ok) + async fn test_from_addr_tokio(uri_str: &str, exp_succeed: bool) { + if exp_succeed { + from_addr(uri_str).await.expect("should succeed"); + } else { + assert!(from_addr(uri_str).await.is_err(), "should fail"); + } } } diff --git a/tvix/store/src/pathinfoservice/from_addr.rs b/tvix/store/src/pathinfoservice/from_addr.rs index 5113b19c1..f5a287cd7 100644 --- a/tvix/store/src/pathinfoservice/from_addr.rs +++ b/tvix/store/src/pathinfoservice/from_addr.rs @@ -174,7 +174,7 @@ mod tests { /// Correct scheme to connect to localhost over http, but with additional path, which is invalid. #[test_case("grpc+http://localhost/some-path", false; "grpc valid invalid host and path")] #[tokio::test] - async fn test_from_addr_tokio(uri_str: &str, is_ok: bool) { + async fn test_from_addr_tokio(uri_str: &str, exp_succeed: bool) { let resp = from_addr( uri_str, gen_blob_service().into(), @@ -182,6 +182,10 @@ mod tests { ) .await; - assert_eq!(resp.is_ok(), is_ok); + if exp_succeed { + resp.expect("should succeed"); + } else { + assert!(resp.is_err(), "should fail"); + } } }