Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
78
third-party/vendor/digest/src/dev.rs
vendored
Normal file
78
third-party/vendor/digest/src/dev.rs
vendored
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
//! Development-related functionality
|
||||
|
||||
pub use blobby;
|
||||
|
||||
mod fixed;
|
||||
mod mac;
|
||||
mod rng;
|
||||
mod variable;
|
||||
mod xof;
|
||||
|
||||
pub use fixed::*;
|
||||
pub use mac::*;
|
||||
pub use variable::*;
|
||||
pub use xof::*;
|
||||
|
||||
/// Define hash function test
|
||||
#[macro_export]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "dev")))]
|
||||
macro_rules! new_test {
|
||||
($name:ident, $test_name:expr, $hasher:ty, $test_func:ident $(,)?) => {
|
||||
#[test]
|
||||
fn $name() {
|
||||
use digest::dev::blobby::Blob2Iterator;
|
||||
let data = include_bytes!(concat!("data/", $test_name, ".blb"));
|
||||
|
||||
for (i, row) in Blob2Iterator::new(data).unwrap().enumerate() {
|
||||
let [input, output] = row.unwrap();
|
||||
if let Some(desc) = $test_func::<$hasher>(input, output) {
|
||||
panic!(
|
||||
"\n\
|
||||
Failed test №{}: {}\n\
|
||||
input:\t{:?}\n\
|
||||
output:\t{:?}\n",
|
||||
i, desc, input, output,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// Define [`Update`][crate::Update] impl benchmark
|
||||
#[macro_export]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "dev")))]
|
||||
macro_rules! bench_update {
|
||||
(
|
||||
$init:expr;
|
||||
$($name:ident $bs:expr;)*
|
||||
) => {
|
||||
$(
|
||||
#[bench]
|
||||
fn $name(b: &mut Bencher) {
|
||||
let mut d = $init;
|
||||
let data = [0; $bs];
|
||||
|
||||
b.iter(|| {
|
||||
digest::Update::update(&mut d, &data[..]);
|
||||
});
|
||||
|
||||
b.bytes = $bs;
|
||||
}
|
||||
)*
|
||||
};
|
||||
}
|
||||
|
||||
/// Feed ~1 MiB of pseudorandom data to an updatable state.
|
||||
pub fn feed_rand_16mib<D: crate::Update>(d: &mut D) {
|
||||
let buf = &mut [0u8; 1024];
|
||||
let mut rng = rng::RNG;
|
||||
let n = 16 * (1 << 20) / buf.len();
|
||||
for _ in 0..n {
|
||||
rng.fill(buf);
|
||||
d.update(buf);
|
||||
// additional byte, so size of fed data
|
||||
// will not be multiple of block size
|
||||
d.update(&[42]);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue