Coverage Report

Created: 2026-10-28 07:26

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/fontations/fuzz/fuzz_targets/fuzz_basic_metadata.rs
Line
Count
Source
1
#![no_main]
2
use std::error::Error;
3
4
use libfuzzer_sys::fuzz_target;
5
use skrifa::raw::TableProvider;
6
7
mod helpers;
8
use helpers::*;
9
10
1.36k
fn do_metadata_things(data: &[u8]) -> Result<(), Box<dyn Error>> {
11
1.36k
    let font = select_font(data)?;
12
729
    if let Ok(avar) = font.avar() {
13
219
        let _ = avar.version();
14
219
        let _ = avar.axis_count();
15
5.81k
        for seg_map in avar.axis_segment_maps().iter().filter_map(Result::ok) {
16
5.81k
            let _ = seg_map.position_map_count.get();
17
5.81k
            let _ = seg_map.axis_value_maps();
18
5.81k
        }
19
510
    }
20
21
729
    if let Ok(os2) = font.os2() {
22
42
        let _ = os2.fs_selection();
23
42
        let _ = os2.fs_type();
24
687
    }
25
729
    if let Ok(post) = font.post() {
26
40
        let _ = post.is_fixed_pitch();
27
689
    }
28
29
729
    if let Ok(hhea) = font.hhea() {
30
158
        let _ = hhea.number_of_h_metrics();
31
158
        if let Ok(hmtx) = font.hmtx() {
32
95
            let _ = hmtx.h_metrics().iter().count();
33
95
            let _ = hmtx.left_side_bearings().iter().count();
34
95
        }
35
571
    }
36
37
729
    Ok(())
38
1.36k
}
39
40
fuzz_target!(|data: &[u8]| {
41
    let _ = do_metadata_things(data);
42
});