srctree

Gregory Mullen parent 72a21310 3b2f514d
add subscribe tests

src/Packet.zig added: 19, removed: 5, total 14
@@ -41,7 +41,7 @@ pub const ControlType = enum(u4) {
};
 
/// mqtt 5.0 -- 2.1.3
pub fn flags(cpt: ControlType) !flags {
pub fn flags(cpt: ControlType) !Flags {
return switch (cpt) {
.reserved => error.Invalidcpt,
.connect, .connack, .publish, .puback, .pubrec, .pubcomp => .{},
 
src/Subscribe.zig added: 19, removed: 5, total 14
@@ -12,7 +12,7 @@ pub fn send(s: Subscribe, any: *AnyWriter) !void {
var fbs = std.io.fixedBufferStream(&buffer);
var w = fbs.writer();
 
log.err("writing subscribe packet", .{});
log.debug("writing subscribe packet", .{});
try w.writeInt(u16, 10, .big);
try w.writeByte(0); // No props
for (s.channels) |ch| {
@@ -21,7 +21,7 @@ pub fn send(s: Subscribe, any: *AnyWriter) !void {
try w.writeByte(0x01); // options
}
const pkt: Packet = .{
.header = .{ .kind = .SUBSCRIBE, .flags = try Packet.ControlType.SUBSCRIBE.flags() },
.header = .{ .kind = .subscribe, .flags = try Packet.ControlType.subscribe.flags() },
.body = fbs.getWritten(),
};
try pkt.send(any);
@@ -34,6 +34,20 @@ pub const Ack = struct {
}
};
 
test Subscribe {
const c = Subscribe{ .channels = &[1][]const u8{
"subscribe",
} };
var buffer: [0xffff]u8 = undefined;
var fbs = std.io.fixedBufferStream(&buffer);
var writer = fbs.writer();
var any = writer.any();
 
try c.send(&any);
 
try std.testing.expectEqual(fbs.pos, 17);
}
 
const Packet = @import("Packet.zig");
 
const std = @import("std");