QuasselClient/src/qtshit/test.zig
2021-06-01 13:32:02 +01:00

131 lines
3.7 KiB
Zig

const std = @import("std");
const expect = std.testing.expect;
const global_allocator = std.testing.allocator;
const read = @import("./read.zig");
const write = @import("./write.zig");
const qvar = @import("./qvariant.zig");
test "read/write int" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
try write.add_int(byteList.writer(), 4242);
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_int(fBS.reader());
try expect(val == 4242);
}
test "read/write short" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
try write.add_short(byteList.writer(), 6969);
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_short(fBS.reader());
try expect(val == 6969);
}
test "read/write byte" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
try write.add_byte(byteList.writer(), 'a');
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_byte(fBS.reader());
try expect(val == 'a');
}
test "read/write string" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
var arr = "Hello World!".*;
try write.add_string(byteList.writer(), &arr);
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_string(fBS.reader(), global_allocator);
defer global_allocator.free(val);
try expect(std.mem.eql(u8, val, "Hello World!"));
}
test "read/write bytearray" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
var arr = std.ArrayList(u8).init(global_allocator);
defer arr.deinit();
try arr.append(13);
try arr.append(12);
try write.add_bytearray(byteList.writer(), arr);
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_bytearray(fBS.reader(), global_allocator);
val.deinit();
try expect(arr.items.len == val.items.len);
for (arr.items) |item, index| {
try std.io.getStdErr().writer().print("{d} vs {d} \n", .{ item, val.items[index] });
try std.testing.expect(item == val.items[index]);
}}
test "read/write stringlist" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
var arr = std.ArrayList([]const u8).init(global_allocator);
defer arr.deinit();
try arr.append("Hewwo");
try arr.append("World");
try write.add_stringlist(byteList.writer(), arr);
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_stringlist(fBS.reader(), global_allocator);
defer {
for (val.items) |str| {
global_allocator.free(str);
}
val.deinit();
}
try expect(arr.items.len == val.items.len);
for (arr.items) |str, index| {
try std.testing.expectEqualStrings(str, val.items[index]);
}
}
test "read/write byte variant" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
try write.add_qvariant(byteList.writer(), @enumToInt(qvar.QVariantTypes.byte));
try write.add_byte(byteList.writer(), 'a');
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_variant(fBS.reader(), global_allocator);
try expect(val.byte == 'a');
}
test "read/write int variant" {
var byteList = std.ArrayList(u8).init(global_allocator);
defer byteList.deinit();
try write.add_qvariant(byteList.writer(), @enumToInt(qvar.QVariantTypes.int_2));
try write.add_int(byteList.writer(), 1312);
var fBS = std.io.fixedBufferStream(byteList.items);
var val = try read.get_variant(fBS.reader(), global_allocator);
try expect(val.int == 1312);
}