Coverage Report

Created: 2025-07-12 06:24

/src/itoa/fuzz/fuzz_targets/fuzz_itoa.rs
Line
Count
Source (jump to first uncovered line)
1
#![no_main]
2
3
use arbitrary::Arbitrary;
4
use libfuzzer_sys::fuzz_target;
5
use std::mem;
6
7
3.57k
#[derive(Arbitrary, Debug)]
Unexecuted instantiation: <fuzz_itoa::IntegerInput as arbitrary::Arbitrary>::arbitrary::{closure#0}
Unexecuted instantiation: <fuzz_itoa::IntegerInput as arbitrary::Arbitrary>::arbitrary::{closure#1}
Unexecuted instantiation: <fuzz_itoa::IntegerInput as arbitrary::Arbitrary>::arbitrary::{closure#2}
Unexecuted instantiation: <fuzz_itoa::IntegerInput as arbitrary::Arbitrary>::arbitrary_take_rest::{closure#0}
<fuzz_itoa::IntegerInput as arbitrary::Arbitrary>::arbitrary_take_rest::{closure#1}
Line
Count
Source
7
1.78k
#[derive(Arbitrary, Debug)]
Unexecuted instantiation: <fuzz_itoa::IntegerInput as arbitrary::Arbitrary>::arbitrary_take_rest::{closure#2}
<fuzz_itoa::IntegerInput as arbitrary::Arbitrary>::try_size_hint::{closure#0}
Line
Count
Source
7
1.79k
#[derive(Arbitrary, Debug)]
8
enum IntegerInput {
9
    I8(i8),
10
    U8(u8),
11
    I16(i16),
12
    U16(u16),
13
    I32(i32),
14
    U32(u32),
15
    I64(i64),
16
    U64(u64),
17
    I128(i128),
18
    U128(u128),
19
    Isize(isize),
20
    Usize(usize),
21
}
22
23
macro_rules! test_itoa {
24
    ($val:expr) => {
25
        match $val {
26
            val => {
27
                let mut buffer = itoa::Buffer::new();
28
                let string = buffer.format(val);
29
                assert!(string.len() <= mem::size_of::<itoa::Buffer>());
30
                assert_eq!(val, string.parse().unwrap());
31
            }
32
        }
33
    };
34
}
35
36
fuzz_target!(|input: IntegerInput| {
37
    match input {
38
        IntegerInput::I8(val) => test_itoa!(val),
39
        IntegerInput::U8(val) => test_itoa!(val),
40
        IntegerInput::I16(val) => test_itoa!(val),
41
        IntegerInput::U16(val) => test_itoa!(val),
42
        IntegerInput::I32(val) => test_itoa!(val),
43
        IntegerInput::U32(val) => test_itoa!(val),
44
        IntegerInput::I64(val) => test_itoa!(val),
45
        IntegerInput::U64(val) => test_itoa!(val),
46
        IntegerInput::I128(val) => test_itoa!(val),
47
        IntegerInput::U128(val) => test_itoa!(val),
48
        IntegerInput::Isize(val) => test_itoa!(val),
49
        IntegerInput::Usize(val) => test_itoa!(val),
50
    }
51
});