aboutsummaryrefslogtreecommitdiff
path: root/src/test.rs
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2021-02-03 11:53:56 -0500
committerJack O'Connor <[email protected]>2021-02-03 11:53:56 -0500
commit9e08f5c38de44b8bb9aeb8a388653458b29e9665 (patch)
treee174d927457cc7d0e4f4af4b0fdf1ff55b0d135c /src/test.rs
parent3a8204f5f38109aae08f4ae58b275663e1cfebab (diff)
parentc2f90dfdb0ce8b33626f4b3fd789188417c9eb7b (diff)
merge "Adding from_hex and implementing FromStr for Hash"
https://github.com/BLAKE3-team/BLAKE3/pull/24
Diffstat (limited to 'src/test.rs')
-rw-r--r--src/test.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test.rs b/src/test.rs
index eefb1a3..6156185 100644
--- a/src/test.rs
+++ b/src/test.rs
@@ -567,3 +567,29 @@ fn test_join_lengths() {
);
assert_eq!(CUSTOM_JOIN_CALLS.load(Ordering::SeqCst), 1);
}
+
+#[test]
+fn test_hex_encoding_decoding() {
+ let digest_str = "04e0bb39f30b1a3feb89f536c93be15055482df748674b00d26e5a75777702e9";
+ let mut hasher = crate::Hasher::new();
+ hasher.update(b"foo");
+ let digest = hasher.finalize();
+ assert_eq!(digest.to_hex().as_str(), digest_str);
+
+ // Test round trip
+ let digest = crate::Hash::from_hex(digest_str).unwrap();
+ assert_eq!(digest.to_hex().as_str(), digest_str);
+
+ // Test string parsing via FromStr
+ let digest: crate::Hash = digest_str.parse().unwrap();
+ assert_eq!(digest.to_hex().as_str(), digest_str);
+
+ // Test errors
+ let bad_len = "04e0bb39f30b1";
+ let result = crate::Hash::from_hex(bad_len).unwrap_err();
+ assert_eq!(result, crate::ParseError::InvalidLen);
+
+ let bad_char = "Z4e0bb39f30b1a3feb89f536c93be15055482df748674b00d26e5a75777702e9";
+ let result = crate::Hash::from_hex(bad_char).unwrap_err();
+ assert_eq!(result, crate::ParseError::InvalidChar);
+}