diff --git a/Cargo.toml b/Cargo.toml index c7dfdf30c..f9f91f042 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,6 +56,7 @@ num-bigint = "0.4.4" # Pin to this specific commit in order to work around an issue where proptest doesn't build properly in wasm environments # see https://github.com/proptest-rs/proptest/pull/270 for more info proptest = { git = "https://github.com/bmwill/proptest.git", rev = "1a0fe8676aeb61a83f67731404363972c8462424", default-features = false, features = ["std"] } +test-strategy = "0.3.1" proptest-derive = { version = "0.4.0" } [target.wasm32-unknown-unknown.dev-dependencies] diff --git a/src/types/address.rs b/src/types/address.rs index 698abc74d..b01663930 100644 --- a/src/types/address.rs +++ b/src/types/address.rs @@ -177,6 +177,7 @@ impl std::error::Error for AddressParseError {} #[cfg(test)] mod test { use super::*; + use test_strategy::proptest; #[cfg(target_arch = "wasm32")] use wasm_bindgen_test::wasm_bindgen_test as test; @@ -200,28 +201,26 @@ mod test { println!("{a}"); } - proptest::proptest! { - #[test] - fn roundtrip_display_fromstr(address: Address) { - let s = address.to_string(); - let a = s.parse::
().unwrap(); - assert_eq!(address, a); - } + #[proptest] + fn roundtrip_display_fromstr(address: Address) { + let s = address.to_string(); + let a = s.parse::().unwrap(); + assert_eq!(address, a); + } - #[test] - #[cfg(feature = "serde")] - fn roundtrip_bcs(address: Address) { - let b = bcs::to_bytes(&address).unwrap(); - let a = bcs::from_bytes(&b).unwrap(); - assert_eq!(address, a); - } + #[proptest] + #[cfg(feature = "serde")] + fn roundtrip_bcs(address: Address) { + let b = bcs::to_bytes(&address).unwrap(); + let a = bcs::from_bytes(&b).unwrap(); + assert_eq!(address, a); + } - #[test] - #[cfg(feature = "serde")] - fn roundtrip_json(address: Address) { - let s = serde_json::to_string(&address).unwrap(); - let a = serde_json::from_str(&s).unwrap(); - assert_eq!(address, a); - } + #[proptest] + #[cfg(feature = "serde")] + fn roundtrip_json(address: Address) { + let s = serde_json::to_string(&address).unwrap(); + let a = serde_json::from_str(&s).unwrap(); + assert_eq!(address, a); } } diff --git a/src/types/crypto/mod.rs b/src/types/crypto/mod.rs index 9797b2880..b0becc88b 100644 --- a/src/types/crypto/mod.rs +++ b/src/types/crypto/mod.rs @@ -100,17 +100,16 @@ macro_rules! impl_base64_helper { mod $test_module { use super::$display; use super::$fromstr; + use test_strategy::proptest; #[cfg(target_arch = "wasm32")] use wasm_bindgen_test::wasm_bindgen_test as test; - proptest::proptest! { - #[test] - fn roundtrip_display_fromstr(array: $fromstr) { - let s = $display(&array.0).to_string(); - let a = s.parse::<$fromstr>().unwrap(); - assert_eq!(array, a); - } + #[proptest] + fn roundtrip_display_fromstr(array: $fromstr) { + let s = $display(&array.0).to_string(); + let a = s.parse::<$fromstr>().unwrap(); + assert_eq!(array, a); } } }; diff --git a/src/types/crypto/signature.rs b/src/types/crypto/signature.rs index 17f870d40..902378942 100644 --- a/src/types/crypto/signature.rs +++ b/src/types/crypto/signature.rs @@ -467,26 +467,25 @@ mod serialization { use super::*; use base64ct::Base64; use base64ct::Encoding; + use test_strategy::proptest; #[cfg(target_arch = "wasm32")] use wasm_bindgen_test::wasm_bindgen_test as test; - proptest::proptest! { - #[test] - #[cfg(feature = "serde")] - fn roundtrip_bcs(signature: UserSignature) { - let b = bcs::to_bytes(&signature).unwrap(); - let s = bcs::from_bytes(&b).unwrap(); - assert_eq!(signature, s); - } + #[proptest] + #[cfg(feature = "serde")] + fn roundtrip_bcs(signature: UserSignature) { + let b = bcs::to_bytes(&signature).unwrap(); + let s = bcs::from_bytes(&b).unwrap(); + assert_eq!(signature, s); + } - #[test] - #[cfg(feature = "serde")] - fn roundtrip_json(signature: UserSignature) { - let s = serde_json::to_string(&signature).unwrap(); - let sig = serde_json::from_str(&s).unwrap(); - assert_eq!(signature, sig); - } + #[proptest] + #[cfg(feature = "serde")] + fn roundtrip_json(signature: UserSignature) { + let s = serde_json::to_string(&signature).unwrap(); + let sig = serde_json::from_str(&s).unwrap(); + assert_eq!(signature, sig); } #[test] diff --git a/src/types/crypto/zklogin.rs b/src/types/crypto/zklogin.rs index 2b053d9dd..09cc5f93f 100644 --- a/src/types/crypto/zklogin.rs +++ b/src/types/crypto/zklogin.rs @@ -167,6 +167,7 @@ mod test { use num_bigint::BigUint; use proptest::prelude::*; use std::str::FromStr; + use test_strategy::proptest; #[cfg(target_arch = "wasm32")] use wasm_bindgen_test::wasm_bindgen_test as test; @@ -182,30 +183,28 @@ mod test { assert_eq!(seed.unpadded(), [1; 31].as_slice()); } - proptest! { - #[test] - fn dont_crash_on_large_inputs( - bytes in proptest::collection::vec(any::