authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-06-10 12:10:14+03:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-06-11 23:49:33+03:00
log488e1e5f51905485f9db37038e74bdea31ebd16e
tree1141f52b18bbd2c85b429c7d2809ebe5cf414513
parent95ab942184427e7c9b840d71f4d093931e3e48fb

stage2: small fixes + adjustments to std tests


11 files changed, 50 insertions(+), 47 deletions(-)

lib/std/compress.zig-1
......@@ -5,7 +5,6 @@ pub const gzip = @import("compress/gzip.zig");
55pub const zlib = @import("compress/zlib.zig");
66
77test {
8 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
98 _ = deflate;
109 _ = gzip;
1110 _ = zlib;
lib/std/compress/deflate/compressor.zig+4-1
......@@ -254,7 +254,10 @@ pub fn Compressor(comptime WriterType: anytype) type {
254254
255255 // Inner writer wrapped in a HuffmanBitWriter
256256 hm_bw: hm_bw.HuffmanBitWriter(WriterType) = undefined,
257 bulk_hasher: fn ([]u8, []u32) u32,
257 bulk_hasher: if (@import("builtin").zig_backend == .stage1)
258 fn ([]u8, []u32) u32
259 else
260 *const fn ([]u8, []u32) u32,
258261
259262 sync: bool, // requesting flush
260263 best_speed_enc: *fast.DeflateFast, // Encoder for best_speed
lib/std/compress/deflate/compressor_test.zig+15-24
......@@ -122,11 +122,8 @@ fn testToFromWithLevelAndLimit(level: deflate.Compression, input: []const u8, li
122122 try expect(compressed.items.len <= limit);
123123 }
124124
125 var decomp = try decompressor(
126 testing.allocator,
127 io.fixedBufferStream(compressed.items).reader(),
128 null,
129 );
125 var fib = io.fixedBufferStream(compressed.items);
126 var decomp = try decompressor(testing.allocator, fib.reader(), null);
130127 defer decomp.deinit();
131128
132129 var decompressed = try testing.allocator.alloc(u8, input.len);
......@@ -136,7 +133,9 @@ fn testToFromWithLevelAndLimit(level: deflate.Compression, input: []const u8, li
136133 try expect(read == input.len);
137134 try expect(mem.eql(u8, input, decompressed));
138135
139 try testSync(level, input);
136 if (builtin.zig_backend == .stage1) {
137 try testSync(level, input);
138 }
140139}
141140
142141fn testToFromWithLimit(input: []const u8, limit: [11]u32) !void {
......@@ -180,6 +179,7 @@ test "deflate/inflate" {
180179}
181180
182181test "very long sparse chunk" {
182 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
183183 // A SparseReader returns a stream consisting of 0s ending with 65,536 (1<<16) 1s.
184184 // This tests missing hash references in a very large input.
185185 const SparseReader = struct {
......@@ -377,6 +377,7 @@ test "compressor dictionary" {
377377// Update the hash for best_speed only if d.index < d.maxInsertIndex
378378// See https://golang.org/issue/2508
379379test "Go non-regression test for 2508" {
380 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
380381 var comp = try compressor(
381382 testing.allocator,
382383 io.null_writer,
......@@ -475,21 +476,16 @@ test "inflate reset" {
475476 try comp.close();
476477 }
477478
478 var decomp = try decompressor(
479 testing.allocator,
480 io.fixedBufferStream(compressed_strings[0].items).reader(),
481 null,
482 );
479 var fib = io.fixedBufferStream(compressed_strings[0].items);
480 var decomp = try decompressor(testing.allocator, fib.reader(), null);
483481 defer decomp.deinit();
484482
485483 var decompressed_0: []u8 = try decomp.reader()
486484 .readAllAlloc(testing.allocator, math.maxInt(usize));
487485 defer testing.allocator.free(decompressed_0);
488486
489 try decomp.reset(
490 io.fixedBufferStream(compressed_strings[1].items).reader(),
491 null,
492 );
487 fib = io.fixedBufferStream(compressed_strings[1].items);
488 try decomp.reset(fib.reader(), null);
493489
494490 var decompressed_1: []u8 = try decomp.reader()
495491 .readAllAlloc(testing.allocator, math.maxInt(usize));
......@@ -530,21 +526,16 @@ test "inflate reset dictionary" {
530526 try comp.close();
531527 }
532528
533 var decomp = try decompressor(
534 testing.allocator,
535 io.fixedBufferStream(compressed_strings[0].items).reader(),
536 dict,
537 );
529 var fib = io.fixedBufferStream(compressed_strings[0].items);
530 var decomp = try decompressor(testing.allocator, fib.reader(), dict);
538531 defer decomp.deinit();
539532
540533 var decompressed_0: []u8 = try decomp.reader()
541534 .readAllAlloc(testing.allocator, math.maxInt(usize));
542535 defer testing.allocator.free(decompressed_0);
543536
544 try decomp.reset(
545 io.fixedBufferStream(compressed_strings[1].items).reader(),
546 dict,
547 );
537 fib = io.fixedBufferStream(compressed_strings[1].items);
538 try decomp.reset(fib.reader(), dict);
548539
549540 var decompressed_1: []u8 = try decomp.reader()
550541 .readAllAlloc(testing.allocator, math.maxInt(usize));
lib/std/compress/deflate/decompressor.zig+19-6
......@@ -334,7 +334,10 @@ pub fn Decompressor(comptime ReaderType: type) type {
334334
335335 // Next step in the decompression,
336336 // and decompression state.
337 step: fn (*Self) Error!void,
337 step: if (@import("builtin").zig_backend == .stage1)
338 fn (*Self) Error!void
339 else
340 *const fn (*Self) Error!void,
338341 step_state: DecompressorState,
339342 final: bool,
340343 err: ?Error,
......@@ -479,7 +482,13 @@ pub fn Decompressor(comptime ReaderType: type) type {
479482 }
480483
481484 pub fn close(self: *Self) ?Error {
482 if (self.err == Error.EndOfStreamWithNoError) {
485 if (@import("builtin").zig_backend == .stage1) {
486 if (self.err == Error.EndOfStreamWithNoError) {
487 return null;
488 }
489 return self.err;
490 }
491 if (self.err == @as(?Error, error.EndOfStreamWithNoError)) {
483492 return null;
484493 }
485494 return self.err;
......@@ -920,7 +929,8 @@ test "truncated input" {
920929 };
921930
922931 for (tests) |t| {
923 var r = io.fixedBufferStream(t.input).reader();
932 var fib = io.fixedBufferStream(t.input);
933 const r = fib.reader();
924934 var z = try decompressor(testing.allocator, r, null);
925935 defer z.deinit();
926936 var zr = z.reader();
......@@ -959,7 +969,8 @@ test "Go non-regression test for 9842" {
959969 };
960970
961971 for (tests) |t| {
962 const reader = std.io.fixedBufferStream(t.input).reader();
972 var fib = std.io.fixedBufferStream(t.input);
973 const reader = fib.reader();
963974 var decomp = try decompressor(testing.allocator, reader, null);
964975 defer decomp.deinit();
965976
......@@ -1017,7 +1028,8 @@ test "inflate A Tale of Two Cities (1859) intro" {
10171028 \\
10181029 ;
10191030
1020 const reader = std.io.fixedBufferStream(&compressed).reader();
1031 var fib = std.io.fixedBufferStream(&compressed);
1032 const reader = fib.reader();
10211033 var decomp = try decompressor(testing.allocator, reader, null);
10221034 defer decomp.deinit();
10231035
......@@ -1082,7 +1094,8 @@ test "fuzzing" {
10821094
10831095fn decompress(input: []const u8) !void {
10841096 const allocator = testing.allocator;
1085 const reader = std.io.fixedBufferStream(input).reader();
1097 var fib = std.io.fixedBufferStream(input);
1098 const reader = fib.reader();
10861099 var decomp = try decompressor(allocator, reader, null);
10871100 defer decomp.deinit();
10881101 var output = try decomp.reader().readAllAlloc(allocator, math.maxInt(usize));
lib/std/compress/deflate/deflate_fast_test.zig+6-12
......@@ -78,11 +78,8 @@ test "best speed" {
7878 var decompressed = try testing.allocator.alloc(u8, want.items.len);
7979 defer testing.allocator.free(decompressed);
8080
81 var decomp = try inflate.decompressor(
82 testing.allocator,
83 io.fixedBufferStream(compressed.items).reader(),
84 null,
85 );
81 var fib = io.fixedBufferStream(compressed.items);
82 var decomp = try inflate.decompressor(testing.allocator, fib.reader(), null);
8683 defer decomp.deinit();
8784
8885 var read = try decomp.reader().readAll(decompressed);
......@@ -122,13 +119,13 @@ test "best speed max match offset" {
122119 // zeros1 is between 0 and 30 zeros.
123120 // The difference between the two abc's will be offset, which
124121 // is max_match_offset plus or minus a small adjustment.
125 var src_len: usize = @intCast(usize, offset + abc.len + @intCast(i32, extra));
122 var src_len: usize = @intCast(usize, offset + @as(i32, abc.len) + @intCast(i32, extra));
126123 var src = try testing.allocator.alloc(u8, src_len);
127124 defer testing.allocator.free(src);
128125
129126 mem.copy(u8, src, abc);
130127 if (!do_match_before) {
131 var src_offset: usize = @intCast(usize, offset - xyz.len);
128 var src_offset: usize = @intCast(usize, offset - @as(i32, xyz.len));
132129 mem.copy(u8, src[src_offset..], xyz);
133130 }
134131 var src_offset: usize = @intCast(usize, offset);
......@@ -149,11 +146,8 @@ test "best speed max match offset" {
149146 var decompressed = try testing.allocator.alloc(u8, src.len);
150147 defer testing.allocator.free(decompressed);
151148
152 var decomp = try inflate.decompressor(
153 testing.allocator,
154 io.fixedBufferStream(compressed.items).reader(),
155 null,
156 );
149 var fib = io.fixedBufferStream(compressed.items);
150 var decomp = try inflate.decompressor(testing.allocator, fib.reader(), null);
157151 defer decomp.deinit();
158152 var read = try decomp.reader().readAll(decompressed);
159153 _ = decomp.close();
lib/std/x.zig-1
......@@ -13,7 +13,6 @@ pub const net = struct {
1313};
1414
1515test {
16 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
1716 inline for (.{ os, net }) |module| {
1817 std.testing.refAllDecls(module);
1918 }
lib/std/x/os/io.zig+1
......@@ -117,6 +117,7 @@ pub const Reactor = struct {
117117};
118118
119119test "reactor/linux: drive async tcp client/listener pair" {
120 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
120121 if (native_os.tag != .linux) return error.SkipZigTest;
121122
122123 const ip = std.x.net.ip;
lib/std/x/os/net.zig+1-1
......@@ -381,7 +381,7 @@ pub const IPv6 = extern struct {
381381 });
382382 }
383383
384 const zero_span = span: {
384 const zero_span: struct { from: usize, to: usize } = span: {
385385 var i: usize = 0;
386386 while (i < self.octets.len) : (i += 2) {
387387 if (self.octets[i] == 0 and self.octets[i + 1] == 0) break;
src/Sema.zig+2-1
......@@ -19702,7 +19702,8 @@ fn coerce(
1970219702 // pointer to tuple to slice
1970319703 if (inst_ty.isSinglePointer() and
1970419704 inst_ty.childType().isTuple() and
19705 !dest_info.mutable and dest_info.size == .Slice)
19705 (!dest_info.mutable or inst_ty.ptrIsMutable() or inst_ty.childType().tupleFields().types.len == 0) and
19706 dest_info.size == .Slice)
1970619707 {
1970719708 return sema.coerceTupleToSlicePtrs(block, dest_ty, dest_ty_src, inst, inst_src);
1970819709 }
src/value.zig+1
......@@ -1062,6 +1062,7 @@ pub const Value = extern union {
10621062 sema_kit: ?Module.WipAnalysis,
10631063 ) Module.CompileError!BigIntConst {
10641064 switch (val.tag()) {
1065 .null_value,
10651066 .zero,
10661067 .bool_false,
10671068 .the_only_possible_value, // i0, u0
test/behavior/cast.zig+1
......@@ -1426,6 +1426,7 @@ test "coerce undefined single-item pointer of array to error union of slice" {
14261426}
14271427
14281428test "pointer to empty struct literal to mutable slice" {
1429 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
14291430 var x: []i32 = &.{};
14301431 try expect(x.len == 0);
14311432}