extern crate alloc;
use super::{WritableCrc, WritableDigest};
#[cfg(feature = "ciborium_0_2")]
mod writer;
#[cfg(feature = "ciborium_0_2")]
use writer::DummyWriter;
#[cfg(feature = "ciborium_0_2")]
use super::ForeignWritable;
#[cfg(feature = "ciborium_0_2")]
#[test]
fn single_write_cborium() {
use ciborium_ll;
let mut writer = DummyWriter::new();
let mut wrapped = ForeignWritable(&mut writer);
let mut encoder = ciborium_ll::Encoder::from(&mut wrapped);
encoder.push(ciborium_ll::Header::Array(Some(1))).unwrap();
encoder.text("Hello World", None).unwrap();
assert_eq!(writer.all_written().len(), 13);
}
#[test]
fn write_crc() {
use embedded_io::Write;
let crc_impl = crc::Crc::<u32>::new(&crc::CRC_32_BZIP2);
let mut wrapped = WritableCrc(crc_impl.digest());
let Ok(()) = wrapped.write_all(b"Hello ");
let Ok(()) = wrapped.write_all(b"World");
let mut reference = crc_impl.digest();
reference.update(b"Hello World");
assert_eq!(wrapped.0.finalize(), reference.finalize());
}
#[test]
fn write_sha() {
use embedded_io::Write;
use sha2::Digest;
let mut wrapped = WritableDigest(sha2::Sha256::new());
let Ok(()) = wrapped.write_all(b"Hello ");
let Ok(()) = wrapped.write_all(b"World");
assert_eq!(
&wrapped.0.finalize()[..],
&[
165, 145, 166, 212, 11, 244, 32, 64, 74, 1, 23, 51, 207, 183, 177, 144, 214, 44, 101,
191, 11, 205, 163, 43, 87, 178, 119, 217, 173, 159, 20, 110
]
);
}