authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-03-10 23:50:04+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-03-10 23:50:04+01:00
log2f1052a313cb09f87f04cef56805c33be62eb169
tree53b8b7843c9af6af01ed2424d307c49cdfd0fa59
parent4ab13a359dfb14c93869e7f88320ec2aa438da9c

std: Fix broken tests


2 files changed, 15 insertions(+), 3 deletions(-)

lib/std/io.zig+8-2
......@@ -350,12 +350,18 @@ pub fn BitInStream(endian: builtin.Endian, comptime Error: type) type {
350350 switch (endian) {
351351 .Big => {
352352 out_buffer = @as(Buf, self.bit_buffer >> shift);
353 self.bit_buffer <<= n;
353 if (n >= u7_bit_count)
354 self.bit_buffer = 0
355 else
356 self.bit_buffer <<= n;
354357 },
355358 .Little => {
356359 const value = (self.bit_buffer << shift) >> shift;
357360 out_buffer = @as(Buf, value);
358 self.bit_buffer >>= n;
361 if (n >= u7_bit_count)
362 self.bit_buffer = 0
363 else
364 self.bit_buffer >>= n;
359365 },
360366 }
361367 self.bit_count -= n;
lib/std/mem.zig+7-1
......@@ -921,6 +921,9 @@ pub fn writeInt(comptime T: type, buffer: *[@divExact(T.bit_count, 8)]u8, value:
921921pub fn writeIntSliceLittle(comptime T: type, buffer: []u8, value: T) void {
922922 assert(buffer.len >= @divExact(T.bit_count, 8));
923923
924 if (T.bit_count == 0)
925 return set(u8, buffer, 0);
926
924927 // TODO I want to call writeIntLittle here but comptime eval facilities aren't good enough
925928 const uint = std.meta.IntType(false, T.bit_count);
926929 var bits = @truncate(uint, value);
......@@ -938,6 +941,9 @@ pub fn writeIntSliceLittle(comptime T: type, buffer: []u8, value: T) void {
938941pub fn writeIntSliceBig(comptime T: type, buffer: []u8, value: T) void {
939942 assert(buffer.len >= @divExact(T.bit_count, 8));
940943
944 if (T.bit_count == 0)
945 return set(u8, buffer, 0);
946
941947 // TODO I want to call writeIntBig here but comptime eval facilities aren't good enough
942948 const uint = std.meta.IntType(false, T.bit_count);
943949 var bits = @truncate(uint, value);
......@@ -1807,7 +1813,7 @@ test "sliceAsBytes" {
18071813}
18081814
18091815test "sliceAsBytes with sentinel slice" {
1810 const empty_string:[:0]const u8 = "";
1816 const empty_string: [:0]const u8 = "";
18111817 const bytes = sliceAsBytes(empty_string);
18121818 testing.expect(bytes.len == 0);
18131819}