Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
fuzzerInternalCoordIjk apps/fuzzers/fuzzerInternalCoordIjk.c 7 25 2 2 193 76 fuzzerInternalCoordIjk.c
fuzzerVertexes apps/fuzzers/fuzzerVertexes.c 62 155 7 9 778 332 fuzzerVertexes.c
fuzzerDirectedEdge apps/fuzzers/fuzzerDirectedEdge.c 74 143 7 11 908 392 fuzzerDirectedEdge.c
fuzzerEdgeLength apps/fuzzers/fuzzerEdgeLength.c 56 161 8 9 506 233 fuzzerEdgeLength.c
fuzzerDistances apps/fuzzers/fuzzerDistances.c 8 209 2 2 15 17 fuzzerDistances.c
fuzzerLatLngToCell apps/fuzzers/fuzzerLatLngToCell.c 40 177 6 7 280 151 fuzzerLatLngToCell.c
fuzzerCellArea apps/fuzzers/fuzzerCellArea.c 54 163 6 7 439 208 fuzzerCellArea.c
fuzzerInternalAlgos apps/fuzzers/fuzzerInternalAlgos.c 73 144 6 10 719 316 fuzzerInternalAlgos.c
fuzzerCellToChildPos apps/fuzzers/fuzzerCellToChildPos.c 12 205 4 4 172 65 fuzzerCellToChildPos.c
fuzzerCellToLatLng apps/fuzzers/fuzzerCellToLatLng.c 47 170 5 7 399 188 fuzzerCellToLatLng.c
fuzzerCellsToLinkedMultiPolygon apps/fuzzers/fuzzerCellsToLinkedMultiPolygon.c 79 138 7 12 823 350 fuzzerCellsToLinkedMultiPolygon.c
fuzzerPolygonToCells apps/fuzzers/fuzzerPolygonToCells.c 96 123 9 13 1116 489 fuzzerPolygonToCells.c
fuzzerHierarchy apps/fuzzers/fuzzerHierarchy.c 18 199 3 5 131 63 fuzzerHierarchy.c
fuzzerLocalIj apps/fuzzers/fuzzerLocalIj.c 45 181 6 5 697 286 fuzzerLocalIj.c
fuzzerIndexIO apps/fuzzers/fuzzerIndexIO.c 5 212 2 2 18 13 fuzzerIndexIO.c
fuzzerCompact apps/fuzzers/fuzzerCompact.c 19 198 3 5 243 101 fuzzerCompact.c
fuzzerResolutions apps/fuzzers/fuzzerResolutions.c 10 207 2 5 78 33 fuzzerResolutions.c
fuzzerPolygonToCellsNoHoles apps/fuzzers/fuzzerPolygonToCellsNoHoles.c 95 123 9 13 1100 482 fuzzerPolygonToCellsNoHoles.c
fuzzerCellProperties apps/fuzzers/fuzzerCellProperties.c 36 181 6 5 348 162 fuzzerCellProperties.c
fuzzerGridDisk apps/fuzzers/fuzzerGridDisk.c 26 191 6 7 374 165 fuzzerGridDisk.c

Fuzzer details

Fuzzer: fuzzerInternalCoordIjk

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 15 100.%
All colors 15 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 _ijkNormalize call site: 00006 /src/h3/src/h3lib/lib/coordijk.c:273

Runtime coverage analysis

Covered functions
5
Functions that are reachable but not covered
2
Reachable functions
7
Percentage of reachable functions covered
71.43%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerInternalCoordIjk.c 1
h3lib/lib/coordijk.c 4

Fuzzer: fuzzerVertexes

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 20 10.3%
gold [1:9] 11 5.69%
yellow [10:29] 1 0.51%
greenyellow [30:49] 3 1.55%
lawngreen 50+ 158 81.8%
All colors 193 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 36 _hex2dToGeo call site: 00151 /src/h3/src/h3lib/lib/faceijk.c:464
0 0 None 0 3 _geoAzDistanceRads call site: 00155 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 h3NeighborRotations call site: 00071 /src/h3/src/h3lib/lib/algos.c:356
0 0 None 0 0 h3NeighborRotations call site: 00083 /src/h3/src/h3lib/lib/algos.c:448
0 0 None 0 0 _ijkNormalize call site: 00023 /src/h3/src/h3lib/lib/coordijk.c:273
0 0 None 0 0 _hex2dToGeo call site: 00146 /src/h3/src/h3lib/lib/faceijk.c:441
0 0 None 0 0 _geoAzDistanceRads call site: 00154 /src/h3/src/h3lib/lib/latLng.c:201
0 0 None 0 0 _geoAzDistanceRads call site: 00159 /src/h3/src/h3lib/lib/latLng.c:234
0 0 None 0 0 _geoAzDistanceRads call site: 00159 /src/h3/src/h3lib/lib/latLng.c:238
0 0 None 0 0 vertexNumForDirection call site: 00103 /src/h3/src/h3lib/lib/vertex.c:138
0 0 None 0 0 directionForVertexNum call site: 00006 /src/h3/src/h3lib/lib/vertex.c:174
0 0 None 0 0 vertexRotations call site: 00069 /src/h3/src/h3lib/lib/vertex.c:80

Runtime coverage analysis

Covered functions
52
Functions that are reachable but not covered
10
Reachable functions
62
Percentage of reachable functions covered
83.87%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerVertexes.c 1
h3lib/lib/vertex.c 7
h3lib/lib/h3Index.c 10
h3lib/lib/baseCells.c 5
h3lib/lib/coordijk.c 16
h3lib/lib/faceijk.c 7
h3lib/lib/algos.c 2
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 3

Fuzzer: fuzzerDirectedEdge

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 6 2.84%
gold [1:9] 10 4.73%
yellow [10:29] 18 8.53%
greenyellow [30:49] 4 1.89%
lawngreen 50+ 173 81.9%
All colors 211 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
7 7 1 :

['getNumCells']

7 7 maxGridDiskSize call site: 00038 /src/h3/src/h3lib/lib/algos.c:172
0 0 None 0 175 gridDiskDistancesUnsafe call site: 00009 /src/h3/src/h3lib/lib/algos.c:580
0 0 None 0 166 gridDiskDistancesUnsafe call site: 00036 /src/h3/src/h3lib/lib/algos.c:625
0 0 None 0 96 gridDiskDistances call site: 00038 /src/h3/src/h3lib/lib/algos.c:236
0 0 None 0 96 gridDiskDistances call site: 00041 /src/h3/src/h3lib/lib/algos.c:238
0 0 None 0 36 _hex2dToGeo call site: 00175 /src/h3/src/h3lib/lib/faceijk.c:464
0 0 None 0 3 _geoAzDistanceRads call site: 00179 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 maxGridDiskSize call site: 00038 /src/h3/src/h3lib/lib/algos.c:169
0 0 None 0 0 gridDiskDistances call site: 00038 /src/h3/src/h3lib/lib/algos.c:229
0 0 None 0 0 _gridDiskDistancesInternal call site: 00044 /src/h3/src/h3lib/lib/algos.c:305
0 0 None 0 0 gridDiskDistancesUnsafe call site: 00009 /src/h3/src/h3lib/lib/algos.c:573
0 0 None 0 0 _ijkNormalize call site: 00086 /src/h3/src/h3lib/lib/coordijk.c:273

Runtime coverage analysis

Covered functions
63
Functions that are reachable but not covered
11
Reachable functions
74
Percentage of reachable functions covered
85.14%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerDirectedEdge.c 1
h3lib/lib/directedEdge.c 8
h3lib/lib/h3Index.c 11
h3lib/lib/baseCells.c 5
h3lib/lib/algos.c 7
h3lib/lib/coordijk.c 16
h3lib/lib/latLng.c 4
h3lib/lib/mathExtensions.c 1
h3lib/lib/vertex.c 2
h3lib/lib/faceijk.c 7
h3lib/lib/vec2d.c 3

Fuzzer: fuzzerEdgeLength

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2 1.26%
gold [1:9] 1 0.63%
yellow [10:29] 8 5.06%
greenyellow [30:49] 7 4.43%
lawngreen 50+ 140 88.6%
All colors 158 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 36 _hex2dToGeo call site: 00113 /src/h3/src/h3lib/lib/faceijk.c:464
0 0 None 0 3 _geoAzDistanceRads call site: 00117 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 _ijkNormalize call site: 00024 /src/h3/src/h3lib/lib/coordijk.c:273
0 0 None 0 0 _hex2dToGeo call site: 00108 /src/h3/src/h3lib/lib/faceijk.c:441
0 0 None 0 0 _geoAzDistanceRads call site: 00116 /src/h3/src/h3lib/lib/latLng.c:201
0 0 None 0 0 _geoAzDistanceRads call site: 00121 /src/h3/src/h3lib/lib/latLng.c:234
0 0 None 0 0 _geoAzDistanceRads call site: 00121 /src/h3/src/h3lib/lib/latLng.c:238
0 0 None 0 0 vertexRotations call site: 00070 /src/h3/src/h3lib/lib/vertex.c:80

Runtime coverage analysis

Covered functions
48
Functions that are reachable but not covered
8
Reachable functions
56
Percentage of reachable functions covered
85.71%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerEdgeLength.c 1
h3lib/lib/latLng.c 7
h3lib/lib/directedEdge.c 2
h3lib/lib/vertex.c 2
h3lib/lib/h3Index.c 7
h3lib/lib/baseCells.c 4
h3lib/lib/coordijk.c 15
h3lib/lib/faceijk.c 7
h3lib/lib/vec2d.c 3

Fuzzer: fuzzerDistances

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 4 40.0%
greenyellow [30:49] 1 10.0%
lawngreen 50+ 5 50.0%
All colors 10 100

Runtime coverage analysis

Covered functions
4
Functions that are reachable but not covered
4
Reachable functions
8
Percentage of reachable functions covered
50.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerDistances.c 1
h3lib/lib/latLng.c 3

Fuzzer: fuzzerLatLngToCell

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 1 1.42%
yellow [10:29] 3 4.28%
greenyellow [30:49] 1 1.42%
lawngreen 50+ 65 92.8%
All colors 70 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 _isBaseCellPentagon call site: 00057 /src/h3/src/h3lib/lib/baseCells.c:825
0 0 None 0 0 _geoToHex2d call site: 00013 /src/h3/src/h3lib/lib/faceijk.c:397
0 0 None 0 0 _faceIjkToH3 call site: 00026 /src/h3/src/h3lib/lib/h3Index.c:686
0 0 None 0 0 _faceIjkToH3 call site: 00052 /src/h3/src/h3lib/lib/h3Index.c:730

Runtime coverage analysis

Covered functions
33
Functions that are reachable but not covered
7
Reachable functions
40
Percentage of reachable functions covered
82.5%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerLatLngToCell.c 1
h3lib/lib/h3Index.c 7
h3lib/lib/faceijk.c 3
h3lib/lib/vec3d.c 3
h3lib/lib/latLng.c 2
h3lib/lib/coordijk.c 13
h3lib/lib/baseCells.c 4

Fuzzer: fuzzerCellArea

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1 0.64%
gold [1:9] 0 0.0%
yellow [10:29] 7 4.54%
greenyellow [30:49] 1 0.64%
lawngreen 50+ 145 94.1%
All colors 154 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 3 _geoAzDistanceRads call site: 00071 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 _isBaseCellPentagon call site: 00005 /src/h3/src/h3lib/lib/baseCells.c:825
0 0 None 0 0 _ijkNormalize call site: 00018 /src/h3/src/h3lib/lib/coordijk.c:273
0 0 None 0 0 cellToBoundary call site: 00082 /src/h3/src/h3lib/lib/h3Index.c:907
0 0 None 0 0 _geoAzDistanceRads call site: 00070 /src/h3/src/h3lib/lib/latLng.c:201
0 0 None 0 0 _geoAzDistanceRads call site: 00075 /src/h3/src/h3lib/lib/latLng.c:234
0 0 None 0 0 _geoAzDistanceRads call site: 00075 /src/h3/src/h3lib/lib/latLng.c:238

Runtime coverage analysis

Covered functions
45
Functions that are reachable but not covered
9
Reachable functions
54
Percentage of reachable functions covered
83.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCellArea.c 1
h3lib/lib/latLng.c 8
h3lib/lib/h3Index.c 8
h3lib/lib/baseCells.c 1
h3lib/lib/coordijk.c 15
h3lib/lib/faceijk.c 8
h3lib/lib/vec2d.c 3

Fuzzer: fuzzerInternalAlgos

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 4 2.0%
gold [1:9] 0 0.0%
yellow [10:29] 1 0.5%
greenyellow [30:49] 2 1.0%
lawngreen 50+ 193 96.5%
All colors 200 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 36 _hex2dToGeo call site: 00131 /src/h3/src/h3lib/lib/faceijk.c:464
0 0 None 0 7 h3SetToVertexGraph call site: 00030 /src/h3/src/h3lib/lib/algos.c:1081
0 0 None 0 3 _geoAzDistanceRads call site: 00135 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 3 destroyLinkedMultiPolygon call site: 00198 /src/h3/src/h3lib/lib/linkedGeo.c:124
0 0 None 0 0 _ijkNormalize call site: 00050 /src/h3/src/h3lib/lib/coordijk.c:273
0 0 None 0 0 _hex2dToGeo call site: 00126 /src/h3/src/h3lib/lib/faceijk.c:441
0 0 None 0 0 _geoAzDistanceRads call site: 00134 /src/h3/src/h3lib/lib/latLng.c:201
0 0 None 0 0 _geoAzDistanceRads call site: 00139 /src/h3/src/h3lib/lib/latLng.c:234
0 0 None 0 0 _geoAzDistanceRads call site: 00139 /src/h3/src/h3lib/lib/latLng.c:238
0 0 None 0 0 initVertexGraph call site: 00031 /src/h3/src/h3lib/lib/vertexGraph.c:38
0 0 None 0 0 removeVertexNode call site: 00170 /src/h3/src/h3lib/lib/vertexGraph.c:155

Runtime coverage analysis

Covered functions
62
Functions that are reachable but not covered
11
Reachable functions
73
Percentage of reachable functions covered
84.93%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerInternalAlgos.c 1
h3lib/lib/algos.c 4
h3lib/lib/coordijk.c 16
h3lib/lib/h3Index.c 9
h3lib/lib/baseCells.c 3
h3lib/lib/vertexGraph.c 9
h3lib/lib/faceijk.c 7
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 5
h3lib/lib/linkedGeo.c 5

Fuzzer: fuzzerCellToChildPos

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 24 100.%
All colors 24 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 _hasChildAtRes call site: 00013 /src/h3/src/h3lib/lib/h3Index.c:185

Runtime coverage analysis

Covered functions
11
Functions that are reachable but not covered
1
Reachable functions
12
Percentage of reachable functions covered
91.67%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCellToChildPos.c 1
h3lib/lib/h3Index.c 8
h3lib/lib/baseCells.c 1
h3lib/lib/mathExtensions.c 1

Fuzzer: fuzzerCellToLatLng

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1 0.71%
gold [1:9] 8 5.71%
yellow [10:29] 8 5.71%
greenyellow [30:49] 7 5.0%
lawngreen 50+ 116 82.8%
All colors 140 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 3 _geoAzDistanceRads call site: 00070 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 _isBaseCellPentagon call site: 00004 /src/h3/src/h3lib/lib/baseCells.c:825
0 0 None 0 0 _ijkNormalize call site: 00017 /src/h3/src/h3lib/lib/coordijk.c:273
0 0 None 0 0 _geoAzDistanceRads call site: 00069 /src/h3/src/h3lib/lib/latLng.c:201
0 0 None 0 0 _geoAzDistanceRads call site: 00074 /src/h3/src/h3lib/lib/latLng.c:234
0 0 None 0 0 _geoAzDistanceRads call site: 00074 /src/h3/src/h3lib/lib/latLng.c:238

Runtime coverage analysis

Covered functions
39
Functions that are reachable but not covered
8
Reachable functions
47
Percentage of reachable functions covered
82.98%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCellToLatLng.c 1
h3lib/lib/h3Index.c 8
h3lib/lib/baseCells.c 1
h3lib/lib/coordijk.c 15
h3lib/lib/faceijk.c 8
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 3

Fuzzer: fuzzerCellsToLinkedMultiPolygon

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2 0.99%
gold [1:9] 1 0.49%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 198 98.5%
All colors 201 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 36 _hex2dToGeo call site: 00106 /src/h3/src/h3lib/lib/faceijk.c:464
0 0 None 0 3 _geoAzDistanceRads call site: 00110 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 _isBaseCellPentagon call site: 00010 /src/h3/src/h3lib/lib/baseCells.c:825
0 0 None 0 0 _ijkNormalize call site: 00023 /src/h3/src/h3lib/lib/coordijk.c:273
0 0 None 0 0 _hex2dToGeo call site: 00101 /src/h3/src/h3lib/lib/faceijk.c:441
0 0 None 0 0 _geoAzDistanceRads call site: 00109 /src/h3/src/h3lib/lib/latLng.c:201
0 0 None 0 0 _geoAzDistanceRads call site: 00114 /src/h3/src/h3lib/lib/latLng.c:234
0 0 None 0 0 _geoAzDistanceRads call site: 00114 /src/h3/src/h3lib/lib/latLng.c:238
0 0 None 0 0 normalizeMultiPolygon call site: 00173 /src/h3/src/h3lib/lib/linkedGeo.c:296
0 0 None 0 0 removeVertexNode call site: 00145 /src/h3/src/h3lib/lib/vertexGraph.c:155

Runtime coverage analysis

Covered functions
68
Functions that are reachable but not covered
11
Reachable functions
79
Percentage of reachable functions covered
86.08%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCellsToLinkedMultiPolygon.c 1
h3lib/lib/algos.c 3
h3lib/lib/vertexGraph.c 9
h3lib/lib/h3Index.c 7
h3lib/lib/baseCells.c 1
h3lib/lib/coordijk.c 15
h3lib/lib/faceijk.c 7
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 5
h3lib/lib/linkedGeo.c 11
h3lib/include/polygonAlgos.h 4
h3lib/lib/bbox.c 2

Fuzzer: fuzzerPolygonToCells

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 25 9.36%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 242 90.6%
All colors 267 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
107 107 1 :

['_faceIjkToCellBoundary']

107 107 cellToBoundary call site: 00093 /src/h3/src/h3lib/lib/h3Index.c:910
7 7 1 :

['getNumCells']

7 7 maxGridDiskSize call site: 00251 /src/h3/src/h3lib/lib/algos.c:172
0 0 None 4 1167 polygonToCells call site: 00159 /src/h3/src/h3lib/lib/algos.c:915
0 0 None 2 924 polygonToCells call site: 00164 /src/h3/src/h3lib/lib/algos.c:930
0 0 None 0 922 polygonToCells call site: 00165 /src/h3/src/h3lib/lib/algos.c:935
0 0 None 0 175 gridDiskDistancesUnsafe call site: 00227 /src/h3/src/h3lib/lib/algos.c:580
0 0 None 0 166 gridDiskDistancesUnsafe call site: 00249 /src/h3/src/h3lib/lib/algos.c:625
0 0 None 0 96 gridDiskDistances call site: 00251 /src/h3/src/h3lib/lib/algos.c:236
0 0 None 0 96 gridDiskDistances call site: 00254 /src/h3/src/h3lib/lib/algos.c:238
0 0 None 0 3 _geoAzDistanceRads call site: 00081 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 pointInsideGeoLoop call site: 00264 /src/h3/src/h3lib/include/polygonAlgos.h:105
0 0 None 0 0 pointInsideGeoLoop call site: 00264 /src/h3/src/h3lib/include/polygonAlgos.h:120

Runtime coverage analysis

Covered functions
80
Functions that are reachable but not covered
16
Reachable functions
96
Percentage of reachable functions covered
83.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerPolygonToCells.c 3
h3lib/lib/algos.c 9
h3lib/include/polygonAlgos.h 2
h3lib/lib/bbox.c 5
h3lib/lib/h3Index.c 14
h3lib/lib/baseCells.c 5
h3lib/lib/coordijk.c 20
h3lib/lib/faceijk.c 11
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 7
h3lib/lib/polygon.c 2
h3lib/lib/vec3d.c 3
h3lib/lib/mathExtensions.c 1

Fuzzer: fuzzerHierarchy

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 1 3.70%
yellow [10:29] 1 3.70%
greenyellow [30:49] 1 3.70%
lawngreen 50+ 24 88.8%
All colors 27 100

Runtime coverage analysis

Covered functions
17
Functions that are reachable but not covered
1
Reachable functions
18
Percentage of reachable functions covered
94.44%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerHierarchy.c 1
h3lib/lib/h3Index.c 9
h3lib/lib/baseCells.c 1
h3lib/lib/mathExtensions.c 1
h3lib/lib/iterators.c 5

Fuzzer: fuzzerLocalIj

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 140 100.%
All colors 140 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 _isBaseCellPentagon call site: 00010 /src/h3/src/h3lib/lib/baseCells.c:825
0 0 None 0 0 gridPathCells call site: 00071 /src/h3/src/h3lib/lib/localij.c:680

Runtime coverage analysis

Covered functions
41
Functions that are reachable but not covered
4
Reachable functions
45
Percentage of reachable functions covered
91.11%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerLocalIj.c 2
h3lib/lib/localij.c 8
h3lib/lib/baseCells.c 4
h3lib/lib/h3Index.c 7
h3lib/lib/coordijk.c 19

Fuzzer: fuzzerIndexIO

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 4 80.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 20.0%
All colors 5 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 h3ToString call site: 00001 /src/h3/src/h3lib/lib/h3Index.c:78

Runtime coverage analysis

Covered functions
3
Functions that are reachable but not covered
2
Reachable functions
5
Percentage of reachable functions covered
60.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerIndexIO.c 1
h3lib/lib/h3Index.c 2

Fuzzer: fuzzerCompact

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 33 100.%
All colors 33 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 4 34 compactCells call site: 00002 /src/h3/src/h3lib/lib/h3Index.c:312
0 0 None 2 32 compactCells call site: 00003 /src/h3/src/h3lib/lib/h3Index.c:317
0 0 None 2 32 compactCells call site: 00009 /src/h3/src/h3lib/lib/h3Index.c:414
0 0 None 0 0 compactCells call site: 00002 /src/h3/src/h3lib/lib/h3Index.c:300

Runtime coverage analysis

Covered functions
17
Functions that are reachable but not covered
2
Reachable functions
19
Percentage of reachable functions covered
89.47%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCompact.c 1
h3lib/lib/h3Index.c 9
h3lib/lib/baseCells.c 1
h3lib/lib/mathExtensions.c 1
h3lib/lib/iterators.c 5

Fuzzer: fuzzerResolutions

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 1 10.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 9 90.0%
All colors 10 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 _isBaseCellPentagon call site: 00008 /src/h3/src/h3lib/lib/baseCells.c:825

Runtime coverage analysis

Covered functions
10
Functions that are reachable but not covered
0
Reachable functions
10
Percentage of reachable functions covered
100.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerResolutions.c 1
h3lib/lib/latLng.c 5
h3lib/lib/mathExtensions.c 1
h3lib/lib/h3Index.c 2
h3lib/lib/baseCells.c 1

Fuzzer: fuzzerPolygonToCellsNoHoles

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 28 10.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 234 89.3%
All colors 262 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
107 107 1 :

['_faceIjkToCellBoundary']

107 107 cellToBoundary call site: 00090 /src/h3/src/h3lib/lib/h3Index.c:910
7 7 1 :

['getNumCells']

7 7 maxGridDiskSize call site: 00247 /src/h3/src/h3lib/lib/algos.c:172
0 0 None 4 1167 polygonToCells call site: 00155 /src/h3/src/h3lib/lib/algos.c:915
0 0 None 2 924 polygonToCells call site: 00160 /src/h3/src/h3lib/lib/algos.c:930
0 0 None 0 922 polygonToCells call site: 00161 /src/h3/src/h3lib/lib/algos.c:935
0 0 None 0 175 gridDiskDistancesUnsafe call site: 00223 /src/h3/src/h3lib/lib/algos.c:580
0 0 None 0 166 gridDiskDistancesUnsafe call site: 00245 /src/h3/src/h3lib/lib/algos.c:625
0 0 None 0 96 gridDiskDistances call site: 00247 /src/h3/src/h3lib/lib/algos.c:236
0 0 None 0 96 gridDiskDistances call site: 00250 /src/h3/src/h3lib/lib/algos.c:238
0 0 None 0 3 _geoAzDistanceRads call site: 00078 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 pointInsideGeoLoop call site: 00260 /src/h3/src/h3lib/include/polygonAlgos.h:105
0 0 None 0 0 pointInsideGeoLoop call site: 00260 /src/h3/src/h3lib/include/polygonAlgos.h:120

Runtime coverage analysis

Covered functions
79
Functions that are reachable but not covered
16
Reachable functions
95
Percentage of reachable functions covered
83.16%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerPolygonToCellsNoHoles.c 2
h3lib/lib/algos.c 9
h3lib/include/polygonAlgos.h 2
h3lib/lib/bbox.c 5
h3lib/lib/h3Index.c 14
h3lib/lib/baseCells.c 5
h3lib/lib/coordijk.c 20
h3lib/lib/faceijk.c 11
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 7
h3lib/lib/polygon.c 2
h3lib/lib/vec3d.c 3
h3lib/lib/mathExtensions.c 1

Fuzzer: fuzzerCellProperties

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 8 7.27%
yellow [10:29] 1 0.90%
greenyellow [30:49] 6 5.45%
lawngreen 50+ 95 86.3%
All colors 110 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 50 _faceIjkPentToVerts call site: 00078 /src/h3/src/h3lib/lib/faceijk.c:634
0 0 None 0 0 _ijkNormalize call site: 00035 /src/h3/src/h3lib/lib/coordijk.c:273

Runtime coverage analysis

Covered functions
33
Functions that are reachable but not covered
3
Reachable functions
36
Percentage of reachable functions covered
91.67%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCellProperties.c 1
h3lib/lib/h3Index.c 13
h3lib/lib/baseCells.c 1
h3lib/lib/coordijk.c 14
h3lib/lib/faceijk.c 4

Fuzzer: fuzzerGridDisk

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1 1.44%
gold [1:9] 0 0.0%
yellow [10:29] 2 2.89%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 66 95.6%
All colors 69 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 96 gridDiskDistances call site: 00039 /src/h3/src/h3lib/lib/algos.c:238
0 0 None 0 0 gridDiskDistances call site: 00038 /src/h3/src/h3lib/lib/algos.c:229
0 0 None 0 0 gridDiskDistancesSafe call site: 00053 /src/h3/src/h3lib/lib/algos.c:331
0 0 None 0 0 h3NeighborRotations call site: 00011 /src/h3/src/h3lib/lib/algos.c:356
0 0 None 0 0 gridDiskDistancesUnsafe call site: 00007 /src/h3/src/h3lib/lib/algos.c:573
0 0 None 0 0 gridDisksUnsafe call site: 00067 /src/h3/src/h3lib/lib/algos.c:667
0 0 None 0 0 getNumCells call site: 00002 /src/h3/src/h3lib/lib/latLng.c:320

Runtime coverage analysis

Covered functions
24
Functions that are reachable but not covered
2
Reachable functions
26
Percentage of reachable functions covered
92.31%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerGridDisk.c 1
h3lib/lib/algos.c 10
h3lib/lib/latLng.c 1
h3lib/lib/mathExtensions.c 1
h3lib/lib/h3Index.c 6
h3lib/lib/baseCells.c 3
h3lib/lib/coordijk.c 2

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/h3/src/apps/fuzzers/fuzzerCellToLatLng.c ['fuzzerCellToLatLng'] ['fuzzerCellToLatLng']
/src/h3/src/h3lib/lib/coordijk.c ['fuzzerInternalCoordIjk', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerLocalIj', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties', 'fuzzerGridDisk'] ['fuzzerInternalCoordIjk', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerLocalIj', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties', 'fuzzerGridDisk']
/src/h3/src/apps/fuzzers/fuzzerCompact.c ['fuzzerCompact'] ['fuzzerCompact']
/src/h3/src/apps/fuzzers/fuzzerGridDisk.c ['fuzzerGridDisk'] ['fuzzerGridDisk']
/src/h3/src/apps/fuzzers/fuzzerVertexes.c ['fuzzerVertexes'] ['fuzzerVertexes']
/src/h3/src/apps/fuzzers/fuzzerInternalAlgos.c ['fuzzerInternalAlgos'] ['fuzzerInternalAlgos']
/src/h3/src/apps/fuzzers/fuzzerLocalIj.c ['fuzzerLocalIj'] ['fuzzerLocalIj']
/src/h3/src/h3lib/lib/latLng.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerDistances', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerResolutions', 'fuzzerPolygonToCellsNoHoles', 'fuzzerGridDisk'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerDistances', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerResolutions', 'fuzzerPolygonToCellsNoHoles', 'fuzzerGridDisk']
/src/h3/src/apps/fuzzers/fuzzerCellProperties.c ['fuzzerCellProperties'] ['fuzzerCellProperties']
/src/h3/src/h3lib/lib/linkedGeo.c ['fuzzerInternalAlgos', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerInternalAlgos', 'fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/apps/fuzzers/fuzzerCellsToLinkedMultiPolygon.c ['fuzzerCellsToLinkedMultiPolygon'] ['fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/h3lib/lib/vec3d.c ['fuzzerLatLngToCell', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles'] ['fuzzerLatLngToCell', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles']
/src/h3/src/apps/fuzzers/fuzzerCellToChildPos.c ['fuzzerCellToChildPos'] ['fuzzerCellToChildPos']
/src/h3/src/apps/fuzzers/fuzzerCellArea.c ['fuzzerCellArea'] ['fuzzerCellArea']
/src/h3/src/apps/fuzzers/fuzzerEdgeLength.c ['fuzzerEdgeLength'] ['fuzzerEdgeLength']
/src/h3/src/h3lib/lib/baseCells.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToChildPos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerHierarchy', 'fuzzerLocalIj', 'fuzzerCompact', 'fuzzerResolutions', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties', 'fuzzerGridDisk'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToChildPos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerHierarchy', 'fuzzerLocalIj', 'fuzzerCompact', 'fuzzerResolutions', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties', 'fuzzerGridDisk']
/src/h3/src/apps/fuzzers/fuzzerInternalCoordIjk.c ['fuzzerInternalCoordIjk'] ['fuzzerInternalCoordIjk']
/src/h3/src/h3lib/lib/h3Index.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToChildPos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerHierarchy', 'fuzzerLocalIj', 'fuzzerIndexIO', 'fuzzerCompact', 'fuzzerResolutions', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties', 'fuzzerGridDisk'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToChildPos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerHierarchy', 'fuzzerLocalIj', 'fuzzerIndexIO', 'fuzzerCompact', 'fuzzerResolutions', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties', 'fuzzerGridDisk']
/src/h3/src/h3lib/lib/vec2d.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles']
/src/h3/src/h3lib/lib/iterators.c ['fuzzerHierarchy', 'fuzzerCompact'] ['fuzzerHierarchy', 'fuzzerCompact']
/src/h3/src/apps/fuzzers/fuzzerResolutions.c ['fuzzerResolutions'] ['fuzzerResolutions']
/src/h3/src/h3lib/lib/directedEdge.c ['fuzzerDirectedEdge', 'fuzzerEdgeLength'] ['fuzzerDirectedEdge', 'fuzzerEdgeLength']
/src/h3/src/h3lib/lib/mathExtensions.c ['fuzzerDirectedEdge', 'fuzzerCellToChildPos', 'fuzzerPolygonToCells', 'fuzzerHierarchy', 'fuzzerCompact', 'fuzzerResolutions', 'fuzzerPolygonToCellsNoHoles', 'fuzzerGridDisk'] ['fuzzerCellToChildPos', 'fuzzerHierarchy', 'fuzzerCompact', 'fuzzerResolutions', 'fuzzerGridDisk']
/src/h3/src/apps/fuzzers/fuzzerDirectedEdge.c ['fuzzerDirectedEdge'] ['fuzzerDirectedEdge']
/src/h3/src/h3lib/lib/algos.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerInternalAlgos', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles', 'fuzzerGridDisk'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerInternalAlgos', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles', 'fuzzerGridDisk']
/src/h3/src/apps/fuzzers/fuzzerDistances.c ['fuzzerDistances'] ['fuzzerDistances']
/src/h3/src/apps/fuzzers/fuzzerHierarchy.c ['fuzzerHierarchy'] ['fuzzerHierarchy']
/src/h3/src/h3lib/include/polygonAlgos.h ['fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles'] ['fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles']
/src/h3/src/apps/fuzzers/fuzzerLatLngToCell.c ['fuzzerLatLngToCell'] ['fuzzerLatLngToCell']
/src/h3/src/apps/fuzzers/fuzzerIndexIO.c ['fuzzerIndexIO'] ['fuzzerIndexIO']
/src/h3/src/h3lib/lib/vertex.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength']
/src/h3/src/apps/fuzzers/fuzzerPolygonToCells.c ['fuzzerPolygonToCells'] ['fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerPolygonToCellsNoHoles.c ['fuzzerPolygonToCellsNoHoles'] ['fuzzerPolygonToCellsNoHoles']
/src/h3/src/h3lib/lib/faceijk.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerLatLngToCell', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerCellToLatLng', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles', 'fuzzerCellProperties']
/src/h3/src/h3lib/lib/bbox.c ['fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles'] ['fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles']
/src/h3/src/h3lib/lib/localij.c ['fuzzerLocalIj'] ['fuzzerLocalIj']
/src/h3/src/h3lib/lib/polygon.c ['fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles'] ['fuzzerPolygonToCells', 'fuzzerPolygonToCellsNoHoles']
/src/h3/src/h3lib/lib/vertexGraph.c ['fuzzerInternalAlgos', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerInternalAlgos', 'fuzzerCellsToLinkedMultiPolygon']

Directories in report

Directory
/src/h3/src/apps/fuzzers/
/src/h3/src/h3lib/lib/
/src/h3/src/h3lib/include/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
fuzzerInternalCoordIjk fuzzerLogFile-0-GP3P4HWpi1.data fuzzerLogFile-0-GP3P4HWpi1.data.yaml fuzzerInternalCoordIjk.covreport
fuzzerVertexes fuzzerLogFile-0-VNJj0wqqRM.data fuzzerLogFile-0-VNJj0wqqRM.data.yaml fuzzerVertexes.covreport
fuzzerDirectedEdge fuzzerLogFile-0-dJd1UF1wR8.data fuzzerLogFile-0-dJd1UF1wR8.data.yaml fuzzerDirectedEdge.covreport
fuzzerEdgeLength fuzzerLogFile-0-xu1Ikcuude.data fuzzerLogFile-0-xu1Ikcuude.data.yaml fuzzerEdgeLength.covreport
fuzzerDistances fuzzerLogFile-0-SnxgBxTHsS.data fuzzerLogFile-0-SnxgBxTHsS.data.yaml fuzzerDistances.covreport
fuzzerLatLngToCell fuzzerLogFile-0-iyscAm29f1.data fuzzerLogFile-0-iyscAm29f1.data.yaml fuzzerLatLngToCell.covreport
fuzzerCellArea fuzzerLogFile-0-VCUtfDlFul.data fuzzerLogFile-0-VCUtfDlFul.data.yaml fuzzerCellArea.covreport
fuzzerInternalAlgos fuzzerLogFile-0-KC0gWKKgoT.data fuzzerLogFile-0-KC0gWKKgoT.data.yaml fuzzerInternalAlgos.covreport
fuzzerCellToChildPos fuzzerLogFile-0-0rejXOteyG.data fuzzerLogFile-0-0rejXOteyG.data.yaml fuzzerCellToChildPos.covreport
fuzzerCellToLatLng fuzzerLogFile-0-v3Ckd42VDY.data fuzzerLogFile-0-v3Ckd42VDY.data.yaml fuzzerCellToLatLng.covreport
fuzzerCellsToLinkedMultiPolygon fuzzerLogFile-0-eZ3MO3pm6k.data fuzzerLogFile-0-eZ3MO3pm6k.data.yaml fuzzerCellsToLinkedMultiPolygon.covreport
fuzzerPolygonToCells fuzzerLogFile-0-jbP1m6Ef51.data fuzzerLogFile-0-jbP1m6Ef51.data.yaml fuzzerPolygonToCells.covreport
fuzzerHierarchy fuzzerLogFile-0-YKnIP4vOFj.data fuzzerLogFile-0-YKnIP4vOFj.data.yaml fuzzerHierarchy.covreport
fuzzerLocalIj fuzzerLogFile-0-bBY5HbOM0p.data fuzzerLogFile-0-bBY5HbOM0p.data.yaml fuzzerLocalIj.covreport
fuzzerIndexIO fuzzerLogFile-0-GrkwyWgy8y.data fuzzerLogFile-0-GrkwyWgy8y.data.yaml fuzzerIndexIO.covreport
fuzzerCompact fuzzerLogFile-0-xAH0XbFtUo.data fuzzerLogFile-0-xAH0XbFtUo.data.yaml fuzzerCompact.covreport
fuzzerResolutions fuzzerLogFile-0-Mbr9Fx6rX5.data fuzzerLogFile-0-Mbr9Fx6rX5.data.yaml fuzzerResolutions.covreport
fuzzerPolygonToCellsNoHoles fuzzerLogFile-0-NlrK8P8h74.data fuzzerLogFile-0-NlrK8P8h74.data.yaml fuzzerPolygonToCellsNoHoles.covreport
fuzzerCellProperties fuzzerLogFile-0-nFzW2Fi74e.data fuzzerLogFile-0-nFzW2Fi74e.data.yaml fuzzerCellProperties.covreport
fuzzerGridDisk fuzzerLogFile-0-uqSPxu5mQf.data fuzzerLogFile-0-uqSPxu5mQf.data.yaml fuzzerGridDisk.covreport