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");...@@ -5,7 +5,6 @@ pub const gzip = @import("compress/gzip.zig");
5pub const zlib = @import("compress/zlib.zig");5pub const zlib = @import("compress/zlib.zig");
66
7test {7test {
8 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
9 _ = deflate;8 _ = deflate;
10 _ = gzip;9 _ = gzip;
11 _ = zlib;10 _ = zlib;
lib/std/compress/deflate/compressor.zig+4-1
...@@ -254,7 +254,10 @@ pub fn Compressor(comptime WriterType: anytype) type {...@@ -254,7 +254,10 @@ pub fn Compressor(comptime WriterType: anytype) type {
254254
255 // Inner writer wrapped in a HuffmanBitWriter255 // Inner writer wrapped in a HuffmanBitWriter
256 hm_bw: hm_bw.HuffmanBitWriter(WriterType) = undefined,256 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
259 sync: bool, // requesting flush262 sync: bool, // requesting flush
260 best_speed_enc: *fast.DeflateFast, // Encoder for best_speed263 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...@@ -122,11 +122,8 @@ fn testToFromWithLevelAndLimit(level: deflate.Compression, input: []const u8, li
122 try expect(compressed.items.len <= limit);122 try expect(compressed.items.len <= limit);
123 }123 }
124124
125 var decomp = try decompressor(125 var fib = io.fixedBufferStream(compressed.items);
126 testing.allocator,126 var decomp = try decompressor(testing.allocator, fib.reader(), null);
127 io.fixedBufferStream(compressed.items).reader(),
128 null,
129 );
130 defer decomp.deinit();127 defer decomp.deinit();
131128
132 var decompressed = try testing.allocator.alloc(u8, input.len);129 var decompressed = try testing.allocator.alloc(u8, input.len);
...@@ -136,7 +133,9 @@ fn testToFromWithLevelAndLimit(level: deflate.Compression, input: []const u8, li...@@ -136,7 +133,9 @@ fn testToFromWithLevelAndLimit(level: deflate.Compression, input: []const u8, li
136 try expect(read == input.len);133 try expect(read == input.len);
137 try expect(mem.eql(u8, input, decompressed));134 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 }
140}139}
141140
142fn testToFromWithLimit(input: []const u8, limit: [11]u32) !void {141fn testToFromWithLimit(input: []const u8, limit: [11]u32) !void {
...@@ -180,6 +179,7 @@ test "deflate/inflate" {...@@ -180,6 +179,7 @@ test "deflate/inflate" {
180}179}
181180
182test "very long sparse chunk" {181test "very long sparse chunk" {
182 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
183 // A SparseReader returns a stream consisting of 0s ending with 65,536 (1<<16) 1s.183 // A SparseReader returns a stream consisting of 0s ending with 65,536 (1<<16) 1s.
184 // This tests missing hash references in a very large input.184 // This tests missing hash references in a very large input.
185 const SparseReader = struct {185 const SparseReader = struct {
...@@ -377,6 +377,7 @@ test "compressor dictionary" {...@@ -377,6 +377,7 @@ test "compressor dictionary" {
377// Update the hash for best_speed only if d.index < d.maxInsertIndex377// Update the hash for best_speed only if d.index < d.maxInsertIndex
378// See https://golang.org/issue/2508378// See https://golang.org/issue/2508
379test "Go non-regression test for 2508" {379test "Go non-regression test for 2508" {
380 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
380 var comp = try compressor(381 var comp = try compressor(
381 testing.allocator,382 testing.allocator,
382 io.null_writer,383 io.null_writer,
...@@ -475,21 +476,16 @@ test "inflate reset" {...@@ -475,21 +476,16 @@ test "inflate reset" {
475 try comp.close();476 try comp.close();
476 }477 }
477478
478 var decomp = try decompressor(479 var fib = io.fixedBufferStream(compressed_strings[0].items);
479 testing.allocator,480 var decomp = try decompressor(testing.allocator, fib.reader(), null);
480 io.fixedBufferStream(compressed_strings[0].items).reader(),
481 null,
482 );
483 defer decomp.deinit();481 defer decomp.deinit();
484482
485 var decompressed_0: []u8 = try decomp.reader()483 var decompressed_0: []u8 = try decomp.reader()
486 .readAllAlloc(testing.allocator, math.maxInt(usize));484 .readAllAlloc(testing.allocator, math.maxInt(usize));
487 defer testing.allocator.free(decompressed_0);485 defer testing.allocator.free(decompressed_0);
488486
489 try decomp.reset(487 fib = io.fixedBufferStream(compressed_strings[1].items);
490 io.fixedBufferStream(compressed_strings[1].items).reader(),488 try decomp.reset(fib.reader(), null);
491 null,
492 );
493489
494 var decompressed_1: []u8 = try decomp.reader()490 var decompressed_1: []u8 = try decomp.reader()
495 .readAllAlloc(testing.allocator, math.maxInt(usize));491 .readAllAlloc(testing.allocator, math.maxInt(usize));
...@@ -530,21 +526,16 @@ test "inflate reset dictionary" {...@@ -530,21 +526,16 @@ test "inflate reset dictionary" {
530 try comp.close();526 try comp.close();
531 }527 }
532528
533 var decomp = try decompressor(529 var fib = io.fixedBufferStream(compressed_strings[0].items);
534 testing.allocator,530 var decomp = try decompressor(testing.allocator, fib.reader(), dict);
535 io.fixedBufferStream(compressed_strings[0].items).reader(),
536 dict,
537 );
538 defer decomp.deinit();531 defer decomp.deinit();
539532
540 var decompressed_0: []u8 = try decomp.reader()533 var decompressed_0: []u8 = try decomp.reader()
541 .readAllAlloc(testing.allocator, math.maxInt(usize));534 .readAllAlloc(testing.allocator, math.maxInt(usize));
542 defer testing.allocator.free(decompressed_0);535 defer testing.allocator.free(decompressed_0);
543536
544 try decomp.reset(537 fib = io.fixedBufferStream(compressed_strings[1].items);
545 io.fixedBufferStream(compressed_strings[1].items).reader(),538 try decomp.reset(fib.reader(), dict);
546 dict,
547 );
548539
549 var decompressed_1: []u8 = try decomp.reader()540 var decompressed_1: []u8 = try decomp.reader()
550 .readAllAlloc(testing.allocator, math.maxInt(usize));541 .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 {...@@ -334,7 +334,10 @@ pub fn Decompressor(comptime ReaderType: type) type {
334334
335 // Next step in the decompression,335 // Next step in the decompression,
336 // and decompression state.336 // 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,
338 step_state: DecompressorState,341 step_state: DecompressorState,
339 final: bool,342 final: bool,
340 err: ?Error,343 err: ?Error,
...@@ -479,7 +482,13 @@ pub fn Decompressor(comptime ReaderType: type) type {...@@ -479,7 +482,13 @@ pub fn Decompressor(comptime ReaderType: type) type {
479 }482 }
480483
481 pub fn close(self: *Self) ?Error {484 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)) {
483 return null;492 return null;
484 }493 }
485 return self.err;494 return self.err;
...@@ -920,7 +929,8 @@ test "truncated input" {...@@ -920,7 +929,8 @@ test "truncated input" {
920 };929 };
921930
922 for (tests) |t| {931 for (tests) |t| {
923 var r = io.fixedBufferStream(t.input).reader();932 var fib = io.fixedBufferStream(t.input);
933 const r = fib.reader();
924 var z = try decompressor(testing.allocator, r, null);934 var z = try decompressor(testing.allocator, r, null);
925 defer z.deinit();935 defer z.deinit();
926 var zr = z.reader();936 var zr = z.reader();
...@@ -959,7 +969,8 @@ test "Go non-regression test for 9842" {...@@ -959,7 +969,8 @@ test "Go non-regression test for 9842" {
959 };969 };
960970
961 for (tests) |t| {971 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();
963 var decomp = try decompressor(testing.allocator, reader, null);974 var decomp = try decompressor(testing.allocator, reader, null);
964 defer decomp.deinit();975 defer decomp.deinit();
965976
...@@ -1017,7 +1028,8 @@ test "inflate A Tale of Two Cities (1859) intro" {...@@ -1017,7 +1028,8 @@ test "inflate A Tale of Two Cities (1859) intro" {
1017 \\1028 \\
1018 ;1029 ;
10191030
1020 const reader = std.io.fixedBufferStream(&compressed).reader();1031 var fib = std.io.fixedBufferStream(&compressed);
1032 const reader = fib.reader();
1021 var decomp = try decompressor(testing.allocator, reader, null);1033 var decomp = try decompressor(testing.allocator, reader, null);
1022 defer decomp.deinit();1034 defer decomp.deinit();
10231035
...@@ -1082,7 +1094,8 @@ test "fuzzing" {...@@ -1082,7 +1094,8 @@ test "fuzzing" {
10821094
1083fn decompress(input: []const u8) !void {1095fn decompress(input: []const u8) !void {
1084 const allocator = testing.allocator;1096 const allocator = testing.allocator;
1085 const reader = std.io.fixedBufferStream(input).reader();1097 var fib = std.io.fixedBufferStream(input);
1098 const reader = fib.reader();
1086 var decomp = try decompressor(allocator, reader, null);1099 var decomp = try decompressor(allocator, reader, null);
1087 defer decomp.deinit();1100 defer decomp.deinit();
1088 var output = try decomp.reader().readAllAlloc(allocator, math.maxInt(usize));1101 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" {...@@ -78,11 +78,8 @@ test "best speed" {
78 var decompressed = try testing.allocator.alloc(u8, want.items.len);78 var decompressed = try testing.allocator.alloc(u8, want.items.len);
79 defer testing.allocator.free(decompressed);79 defer testing.allocator.free(decompressed);
8080
81 var decomp = try inflate.decompressor(81 var fib = io.fixedBufferStream(compressed.items);
82 testing.allocator,82 var decomp = try inflate.decompressor(testing.allocator, fib.reader(), null);
83 io.fixedBufferStream(compressed.items).reader(),
84 null,
85 );
86 defer decomp.deinit();83 defer decomp.deinit();
8784
88 var read = try decomp.reader().readAll(decompressed);85 var read = try decomp.reader().readAll(decompressed);
...@@ -122,13 +119,13 @@ test "best speed max match offset" {...@@ -122,13 +119,13 @@ test "best speed max match offset" {
122 // zeros1 is between 0 and 30 zeros.119 // zeros1 is between 0 and 30 zeros.
123 // The difference between the two abc's will be offset, which120 // The difference between the two abc's will be offset, which
124 // is max_match_offset plus or minus a small adjustment.121 // 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));
126 var src = try testing.allocator.alloc(u8, src_len);123 var src = try testing.allocator.alloc(u8, src_len);
127 defer testing.allocator.free(src);124 defer testing.allocator.free(src);
128125
129 mem.copy(u8, src, abc);126 mem.copy(u8, src, abc);
130 if (!do_match_before) {127 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));
132 mem.copy(u8, src[src_offset..], xyz);129 mem.copy(u8, src[src_offset..], xyz);
133 }130 }
134 var src_offset: usize = @intCast(usize, offset);131 var src_offset: usize = @intCast(usize, offset);
...@@ -149,11 +146,8 @@ test "best speed max match offset" {...@@ -149,11 +146,8 @@ test "best speed max match offset" {
149 var decompressed = try testing.allocator.alloc(u8, src.len);146 var decompressed = try testing.allocator.alloc(u8, src.len);
150 defer testing.allocator.free(decompressed);147 defer testing.allocator.free(decompressed);
151148
152 var decomp = try inflate.decompressor(149 var fib = io.fixedBufferStream(compressed.items);
153 testing.allocator,150 var decomp = try inflate.decompressor(testing.allocator, fib.reader(), null);
154 io.fixedBufferStream(compressed.items).reader(),
155 null,
156 );
157 defer decomp.deinit();151 defer decomp.deinit();
158 var read = try decomp.reader().readAll(decompressed);152 var read = try decomp.reader().readAll(decompressed);
159 _ = decomp.close();153 _ = decomp.close();
lib/std/x.zig-1
...@@ -13,7 +13,6 @@ pub const net = struct {...@@ -13,7 +13,6 @@ pub const net = struct {
13};13};
1414
15test {15test {
16 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
17 inline for (.{ os, net }) |module| {16 inline for (.{ os, net }) |module| {
18 std.testing.refAllDecls(module);17 std.testing.refAllDecls(module);
19 }18 }
lib/std/x/os/io.zig+1
...@@ -117,6 +117,7 @@ pub const Reactor = struct {...@@ -117,6 +117,7 @@ pub const Reactor = struct {
117};117};
118118
119test "reactor/linux: drive async tcp client/listener pair" {119test "reactor/linux: drive async tcp client/listener pair" {
120 if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest;
120 if (native_os.tag != .linux) return error.SkipZigTest;121 if (native_os.tag != .linux) return error.SkipZigTest;
121122
122 const ip = std.x.net.ip;123 const ip = std.x.net.ip;
lib/std/x/os/net.zig+1-1
...@@ -381,7 +381,7 @@ pub const IPv6 = extern struct {...@@ -381,7 +381,7 @@ pub const IPv6 = extern struct {
381 });381 });
382 }382 }
383383
384 const zero_span = span: {384 const zero_span: struct { from: usize, to: usize } = span: {
385 var i: usize = 0;385 var i: usize = 0;
386 while (i < self.octets.len) : (i += 2) {386 while (i < self.octets.len) : (i += 2) {
387 if (self.octets[i] == 0 and self.octets[i + 1] == 0) break;387 if (self.octets[i] == 0 and self.octets[i + 1] == 0) break;
src/Sema.zig+2-1
...@@ -19702,7 +19702,8 @@ fn coerce(...@@ -19702,7 +19702,8 @@ fn coerce(
19702 // pointer to tuple to slice19702 // pointer to tuple to slice
19703 if (inst_ty.isSinglePointer() and19703 if (inst_ty.isSinglePointer() and
19704 inst_ty.childType().isTuple() and19704 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)
19706 {19707 {
19707 return sema.coerceTupleToSlicePtrs(block, dest_ty, dest_ty_src, inst, inst_src);19708 return sema.coerceTupleToSlicePtrs(block, dest_ty, dest_ty_src, inst, inst_src);
19708 }19709 }
src/value.zig+1
...@@ -1062,6 +1062,7 @@ pub const Value = extern union {...@@ -1062,6 +1062,7 @@ pub const Value = extern union {
1062 sema_kit: ?Module.WipAnalysis,1062 sema_kit: ?Module.WipAnalysis,
1063 ) Module.CompileError!BigIntConst {1063 ) Module.CompileError!BigIntConst {
1064 switch (val.tag()) {1064 switch (val.tag()) {
1065 .null_value,
1065 .zero,1066 .zero,
1066 .bool_false,1067 .bool_false,
1067 .the_only_possible_value, // i0, u01068 .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" {...@@ -1426,6 +1426,7 @@ test "coerce undefined single-item pointer of array to error union of slice" {
1426}1426}
14271427
1428test "pointer to empty struct literal to mutable slice" {1428test "pointer to empty struct literal to mutable slice" {
1429 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1429 var x: []i32 = &.{};1430 var x: []i32 = &.{};
1430 try expect(x.len == 0);1431 try expect(x.len == 0);
1431}1432}