You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fuzzer accepts list of types which can be provided in different formats: string, object or Class<*> in Java. Then seed
33
+
generator accepts these types and produces seeds which are used as base objects for value generation and mutations.
34
+
Fuzzing logic about how to choose, combine and mutate values from seed set is only fuzzing responsibility. API should not provide such abilities except general fuzzing configuring.
35
+
31
36
## Parameters
32
37
33
38
The general fuzzing process gets the list of parameter descriptions as input and returns the corresponding list of values. The simplest description is the specific object type, for example:
@@ -62,13 +67,13 @@ Thus, FP interprets the _Byte_ and _Unsigned Byte_ descriptions in different way
62
67
63
68
During the fuzzing process, some parameters get the refined description, for example:
64
69
65
-
```java
66
-
publicboolean isNaN(Number n) {
67
-
if (!(n instanceofDouble)) {
68
-
returnfalse;
69
-
}
70
-
returnDouble.isNaN((Double) n);
70
+
```
71
+
public boolean isNaN(Number n) {
72
+
if (!(n instanceof Double)) {
73
+
return false;
71
74
}
75
+
return Double.isNaN((Double) n);
76
+
}
72
77
```
73
78
74
79
In the above example, let the parameter be `Integer`. Considering the feedback, the fuzzer suggests that nothing but `Double` might increase coverage, so the type may be downcasted to `Double`. This allows for filtering out a priori unfitting values.
@@ -88,7 +93,7 @@ _Dynamic_ values are generated in two ways:
88
93
89
94
Dynamic values should have the higher priority for a sample, that's why they should be chosen either first or at least more likely than the statically generated ones. In general, the algorithm that guides the fuzzing process looks like this:
90
95
91
-
```python
96
+
```
92
97
# dynamic values are stored with respect to their return priority
0 commit comments