use bytes::Bytes;
#[cfg(fuzzing)]
use honggfuzz::fuzz;
use melvm::Covenant;
#[cfg(fuzzing)]
fn main() {
use env_logger::Env;
env_logger::Builder::from_env(Env::default().default_filter_or("blkstructs")).init();
loop {
fuzz!(|data: &[u8]| { test_once(data) });
}
}
#[allow(dead_code)]
fn test_once(data: &[u8]) {
let (first, second) = data.split_at(data.len() / 2);
let covenant = Covenant::from_bytes(first);
if let Ok(covenant) = covenant {
if covenant.weight() > 10000000 {
return;
}
eprintln!("{:?}", covenant.to_ops());
eprintln!("{:?}", second.len());
covenant
.debug_execute(&[Bytes::from(second.iter().map(|_f| 0u8).collect::<Vec<_>>()).into()]);
assert_eq!(Covenant::from_ops(&covenant.to_ops()), covenant);
}
}
#[cfg(not(fuzzing))]
fn main() {}