DoxigAlpha

start

Function parameters

Parameters

#
fuzz:*Fuzz

Type definitions in this namespace

Types

#

Functions in this namespace

Functions

#

Source

Implementation

#
pub fn start(fuzz: *Fuzz) void {
    const ws = fuzz.ws;
    fuzz.prog_node = ws.root_prog_node.start("Fuzzing", fuzz.run_steps.len);

    // For polling messages and sending updates to subscribers.
    fuzz.wait_group.start();
    _ = std.Thread.spawn(.{}, coverageRun, .{fuzz}) catch |err| {
        fuzz.wait_group.finish();
        fatal("unable to spawn coverage thread: {s}", .{@errorName(err)});
    };

    for (fuzz.run_steps) |run| {
        for (run.fuzz_tests.items) |unit_test_index| {
            assert(run.rebuilt_executable != null);
            ws.thread_pool.spawnWg(&fuzz.wait_group, fuzzWorkerRun, .{
                fuzz, run, unit_test_index,
            });
        }
    }
}