A coverage-guided fuzzer for Python and Python extensions based on libFuzzer
Overall
score
91%
Registering counters with UpdateCounterArrays()
Uses _reserve_counter()
100%
100%
Calls UpdateCounterArrays()
100%
100%
Uses instrument_func()
25%
100%
Correct sequencing
86%
100%
Instrumentation verification
0%
50%
Multiple registrations
60%
60%
FuzzedDataProvider - consuming bytes and strings
FuzzedDataProvider instantiation
100%
100%
ConsumeBytes usage
92%
100%
ConsumeUnicode usage
100%
100%
Proper byte counts
100%
100%
Request construction
100%
100%
Exception handling
100%
100%
Fuzzer initialization with Setup()
Setup() called
100%
100%
TestOneInput defined
100%
100%
Setup() parameters correct
100%
100%
Fuzz() called
100%
100%
Exception handling
100%
100%
Command-line integration
100%
100%
Manual counter allocation for custom instrumentation
Counter allocation
100%
100%
Counter registration
100%
100%
Branch tracing
100%
100%
Counter-to-name mapping
50%
100%
Instrumenting individual functions with instrument_func()
Function instrumentation
0%
100%
Fuzzer initialization
100%
100%
FuzzedDataProvider usage
0%
100%
Fuzzer execution
100%
100%
Test callback
100%
50%
Instrumenting imports with instrument_imports()
instrument_imports() usage
100%
100%
Selective instrumentation
33%
40%
Import ordering
60%
92%
TestOneInput implementation
100%
100%
Direct C++ level string method hooking
String hook enabled
100%
100%
FuzzedDataProvider usage
100%
100%
Setup() called correctly
100%
100%
Fuzz() called
100%
100%
String comparison operations
100%
100%
Proper data flow
100%
100%
FuzzedDataProvider - consuming integers
FuzzedDataProvider instantiation
100%
100%
ConsumeInt usage
0%
0%
ConsumeIntInRange usage
100%
100%
ConsumeIntList usage
0%
0%
ConsumeIntListInRange usage
0%
100%
Fuzzer setup
0%
100%
Custom import loader support
instrument_imports usage
0%
100%
enable_loader_override parameter
0%
100%
Setup() initialization
100%
100%
FuzzedDataProvider usage
0%
100%
Fuzz() execution
100%
100%
Custom loader integration
30%
100%
Exception handling
100%
60%
Data flow tracing with _trace_cmp()
Fuzzer initialization
66%
100%
TestOneInput callback
100%
100%
FuzzedDataProvider usage
0%
0%
Function instrumentation
80%
100%
Comparison operations
100%
100%
Fuzzing execution
100%
100%
Integer comparison tracing
100%
100%
String comparison tracing
100%
100%
Install with Tessl CLI
npx tessl i tessl/pypi-atheris