feature. See also
. The project being documented here (as the example) is the Zig library itself.
Run.sendRunFuzzTestMessage
fn sendRunFuzzTestMessage(
io: Io,
file: Io.File,
test_names: []const []const u8,
kind: std.Build.abi.fuzz.LimitKind,
amount_or_instance: u64,
) !void
File
Code
fn sendRunFuzzTestMessage(
io: Io,
file: Io.File,
test_names: []const []const u8,
kind: std.Build.abi.fuzz.LimitKind,
amount_or_instance: u64,
) !void {
const header: std.zig.Client.Message.Header = .{
.tag = .start_fuzzing,
.bytes_len = 1 + 8 + 4 + count: {
var c: u32 = @intCast(test_names.len * 4);
for (test_names) |name| {
c += @intCast(name.len);
}
break :count c;
},
};
var w = file.writerStreaming(io, &.{});
w.interface.writeStruct(header, .little) catch |err| switch (err) {
error.WriteFailed => return w.err.?,
};
w.interface.writeByte(@backingInt(kind)) catch |err| switch (err) {
error.WriteFailed => return w.err.?,
};
w.interface.writeInt(u64, amount_or_instance, .little) catch |err| switch (err) {
error.WriteFailed => return w.err.?,
};
w.interface.writeInt(u32, @intCast(test_names.len), .little) catch |err| switch (err) {
error.WriteFailed => return w.err.?,
};
for (test_names) |test_name| {
w.interface.writeInt(u32, @intCast(test_name.len), .little) catch |err| switch (err) {
error.WriteFailed => return w.err.?,
};
w.interface.writeAll(test_name) catch |err| switch (err) {
error.WriteFailed => return w.err.?,
};
}
}