diff options
| author | Jack O'Connor <[email protected]> | 2021-02-03 11:53:56 -0500 |
|---|---|---|
| committer | Jack O'Connor <[email protected]> | 2021-02-03 11:53:56 -0500 |
| commit | 9e08f5c38de44b8bb9aeb8a388653458b29e9665 (patch) | |
| tree | e174d927457cc7d0e4f4af4b0fdf1ff55b0d135c /src/test.rs | |
| parent | 3a8204f5f38109aae08f4ae58b275663e1cfebab (diff) | |
| parent | c2f90dfdb0ce8b33626f4b3fd789188417c9eb7b (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.rs | 26 |
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); +} |
