Skip to content

Commit 726cec6

Browse files
committed
fuzzer: add min and max length
doesn't add API to set it in unit tests yet
1 parent 535df62 commit 726cec6

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

lib/fuzzer.zig

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ const Fuzzer = struct {
185185
if (f.recent_cases.entries.len == 0) {
186186
// Prepare initial input.
187187
try f.recent_cases.ensureUnusedCapacity(gpa, 100);
188-
const len = rng.uintLessThanBiased(usize, 80);
188+
const len = rng.intRangeAtMostBiased(usize, f.min_len, f.max_len);
189189
try f.input.resize(gpa, len);
190190
rng.bytes(f.input.items);
191191
f.recent_cases.putAssumeCapacity(.{
@@ -272,7 +272,7 @@ const Fuzzer = struct {
272272
const rng = fuzzer.rng.random();
273273

274274
if (f.input.items.len == 0) {
275-
const len = rng.uintLessThanBiased(usize, 80);
275+
const len = rng.intRangeAtMostBiased(usize, f.min_len, f.max_len);
276276
try f.input.resize(gpa, len);
277277
rng.bytes(f.input.items);
278278
return;
@@ -288,6 +288,9 @@ const Fuzzer = struct {
288288
} else {
289289
unreachable;
290290
}
291+
292+
assert(f.input.items.len >= f.min_len);
293+
assert(f.input.items.len <= f.max_len);
291294
}
292295
};
293296

@@ -308,6 +311,8 @@ var fuzzer: Fuzzer = .{
308311
.deduplicated_runs = 0,
309312
.recent_cases = .{},
310313
.coverage = undefined,
314+
.min_len = 0,
315+
.max_len = 80,
311316
};
312317

313318
export fn fuzzer_next() Fuzzer.Slice {

0 commit comments

Comments
 (0)