lighthouse/eth2/utils/ssz/fuzz/fuzz_targets/fuzz_target_u8.rs

20 lines
556 B
Rust
Raw Normal View History

2019-02-20 03:46:25 +00:00
#![no_main]
#[macro_use] extern crate libfuzzer_sys;
extern crate ssz;
use ssz::{DecodeError, Decodable, Encodable};
// Fuzz ssz_decode(u8)
fuzz_target!(|data: &[u8]| {
let result: Result<(u8, usize), DecodeError> = Decodable::ssz_decode(data, 0);
2019-02-20 04:03:32 +00:00
if data.len() > 0 {
// Should have valid result
let (number_u8, index) = result.unwrap();
assert_eq!(number_u8, data[0]);
assert_eq!(index, 2);
} else {
// Length of 0 should return error
assert_eq!(result, Err(DecodeError::TooShort));
}
2019-02-20 03:46:25 +00:00
});