authorgravatar for tgschultz@gmail.comtgschultz <tgschultz@gmail.com> 2018-11-30 15:02:10-06:00
committergravatar for tgschultz@gmail.comtgschultz <tgschultz@gmail.com> 2018-11-30 15:02:10-06:00
log8423bd423b7a8cf32246f9d27a400a2cf14ce770
treeb5780850f42fec2df2169f78ca64896dbeff48d7
parent5936bdf8a4163d0c75444e5c8554316de63e3864

Added explicit test for #1810 issue to io_test.zig.


1 files changed, 48 insertions(+), 0 deletions(-)

std/io_test.zig+48
......@@ -260,6 +260,54 @@ test "BitOutStream" {
260260 try bit_stream_le.writeBits(u0(0), 0);
261261}
262262
263test "BitStreams with File Stream" {
264 const tmp_file_name = "temp_test_file.txt";
265 {
266 var file = try os.File.openWrite(tmp_file_name);
267 defer file.close();
268
269 var file_out = file.outStream();
270 var file_out_stream = &file_out.stream;
271 const OutError = os.File.WriteError;
272 var bit_stream = io.BitOutStream(builtin.endian, OutError).init(file_out_stream);
273
274 try bit_stream.writeBits(u2(1), 1);
275 try bit_stream.writeBits(u5(2), 2);
276 try bit_stream.writeBits(u128(3), 3);
277 try bit_stream.writeBits(u8(4), 4);
278 try bit_stream.writeBits(u9(5), 5);
279 try bit_stream.writeBits(u1(1), 1);
280 try bit_stream.flushBits();
281 }
282 {
283 var file = try os.File.openRead(tmp_file_name);
284 defer file.close();
285
286 var file_in = file.inStream();
287 var file_in_stream = &file_in.stream;
288 const InError = os.File.ReadError;
289 var bit_stream = io.BitInStream(builtin.endian, InError).init(file_in_stream);
290
291 var out_bits: usize = undefined;
292
293 assert(1 == try bit_stream.readBits(u2, 1, &out_bits));
294 assert(out_bits == 1);
295 assert(2 == try bit_stream.readBits(u5, 2, &out_bits));
296 assert(out_bits == 2);
297 assert(3 == try bit_stream.readBits(u128, 3, &out_bits));
298 assert(out_bits == 3);
299 assert(4 == try bit_stream.readBits(u8, 4, &out_bits));
300 assert(out_bits == 4);
301 assert(5 == try bit_stream.readBits(u9, 5, &out_bits));
302 assert(out_bits == 5);
303 assert(1 == try bit_stream.readBits(u1, 1, &out_bits));
304 assert(out_bits == 1);
305
306 assertError(bit_stream.readBitsNoEof(u1, 1), error.EndOfStream);
307 }
308 try os.deleteFile(tmp_file_name);
309}
310
263311fn testIntSerializerDeserializer(comptime endian: builtin.Endian, comptime is_packed: bool) !void {
264312 //@NOTE: if this test is taking too long, reduce the maximum tested bitsize
265313 const max_test_bitsize = 128;