| author | |
| committer | |
| log | 488e1e5f51905485f9db37038e74bdea31ebd16e |
| tree | 1141f52b18bbd2c85b429c7d2809ebe5cf414513 |
| parent | 95ab942184427e7c9b840d71f4d093931e3e48fb |
11 files changed, 50 insertions(+), 47 deletions(-)
lib/std/compress.zig-1| ... | ... | @@ -5,7 +5,6 @@ pub const gzip = @import("compress/gzip.zig"); |
| 5 | 5 | pub const zlib = @import("compress/zlib.zig"); |
| 6 | 6 | |
| 7 | 7 | test { |
| 8 | if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; | |
| 9 | 8 | _ = deflate; |
| 10 | 9 | _ = gzip; |
| 11 | 10 | _ = zlib; |
lib/std/compress/deflate/compressor.zig+4-1| ... | ... | @@ -254,7 +254,10 @@ pub fn Compressor(comptime WriterType: anytype) type { |
| 254 | 254 | |
| 255 | 255 | // Inner writer wrapped in a HuffmanBitWriter |
| 256 | 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, | |
| 258 | 261 | |
| 259 | 262 | sync: bool, // requesting flush |
| 260 | 263 | 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 | 122 | try expect(compressed.items.len <= limit); |
| 123 | 123 | } |
| 124 | 124 | |
| 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); | |
| 130 | 127 | defer decomp.deinit(); |
| 131 | 128 | |
| 132 | 129 | var decompressed = try testing.allocator.alloc(u8, input.len); |
| ... | ... | @@ -136,7 +133,9 @@ fn testToFromWithLevelAndLimit(level: deflate.Compression, input: []const u8, li |
| 136 | 133 | try expect(read == input.len); |
| 137 | 134 | try expect(mem.eql(u8, input, decompressed)); |
| 138 | 135 | |
| 139 | try testSync(level, input); | |
| 136 | if (builtin.zig_backend == .stage1) { | |
| 137 | try testSync(level, input); | |
| 138 | } | |
| 140 | 139 | } |
| 141 | 140 | |
| 142 | 141 | fn testToFromWithLimit(input: []const u8, limit: [11]u32) !void { |
| ... | ... | @@ -180,6 +179,7 @@ test "deflate/inflate" { |
| 180 | 179 | } |
| 181 | 180 | |
| 182 | 181 | test "very long sparse chunk" { |
| 182 | if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; | |
| 183 | 183 | // A SparseReader returns a stream consisting of 0s ending with 65,536 (1<<16) 1s. |
| 184 | 184 | // This tests missing hash references in a very large input. |
| 185 | 185 | const SparseReader = struct { |
| ... | ... | @@ -377,6 +377,7 @@ test "compressor dictionary" { |
| 377 | 377 | // Update the hash for best_speed only if d.index < d.maxInsertIndex |
| 378 | 378 | // See https://golang.org/issue/2508 |
| 379 | 379 | test "Go non-regression test for 2508" { |
| 380 | if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; | |
| 380 | 381 | var comp = try compressor( |
| 381 | 382 | testing.allocator, |
| 382 | 383 | io.null_writer, |
| ... | ... | @@ -475,21 +476,16 @@ test "inflate reset" { |
| 475 | 476 | try comp.close(); |
| 476 | 477 | } |
| 477 | 478 | |
| 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); | |
| 483 | 481 | defer decomp.deinit(); |
| 484 | 482 | |
| 485 | 483 | var decompressed_0: []u8 = try decomp.reader() |
| 486 | 484 | .readAllAlloc(testing.allocator, math.maxInt(usize)); |
| 487 | 485 | defer testing.allocator.free(decompressed_0); |
| 488 | 486 | |
| 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); | |
| 493 | 489 | |
| 494 | 490 | var decompressed_1: []u8 = try decomp.reader() |
| 495 | 491 | .readAllAlloc(testing.allocator, math.maxInt(usize)); |
| ... | ... | @@ -530,21 +526,16 @@ test "inflate reset dictionary" { |
| 530 | 526 | try comp.close(); |
| 531 | 527 | } |
| 532 | 528 | |
| 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); | |
| 538 | 531 | defer decomp.deinit(); |
| 539 | 532 | |
| 540 | 533 | var decompressed_0: []u8 = try decomp.reader() |
| 541 | 534 | .readAllAlloc(testing.allocator, math.maxInt(usize)); |
| 542 | 535 | defer testing.allocator.free(decompressed_0); |
| 543 | 536 | |
| 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); | |
| 548 | 539 | |
| 549 | 540 | var decompressed_1: []u8 = try decomp.reader() |
| 550 | 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 | 334 | |
| 335 | 335 | // Next step in the decompression, |
| 336 | 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 | 341 | step_state: DecompressorState, |
| 339 | 342 | final: bool, |
| 340 | 343 | err: ?Error, |
| ... | ... | @@ -479,7 +482,13 @@ pub fn Decompressor(comptime ReaderType: type) type { |
| 479 | 482 | } |
| 480 | 483 | |
| 481 | 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 | 492 | return null; |
| 484 | 493 | } |
| 485 | 494 | return self.err; |
| ... | ... | @@ -920,7 +929,8 @@ test "truncated input" { |
| 920 | 929 | }; |
| 921 | 930 | |
| 922 | 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 | 934 | var z = try decompressor(testing.allocator, r, null); |
| 925 | 935 | defer z.deinit(); |
| 926 | 936 | var zr = z.reader(); |
| ... | ... | @@ -959,7 +969,8 @@ test "Go non-regression test for 9842" { |
| 959 | 969 | }; |
| 960 | 970 | |
| 961 | 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 | 974 | var decomp = try decompressor(testing.allocator, reader, null); |
| 964 | 975 | defer decomp.deinit(); |
| 965 | 976 | |
| ... | ... | @@ -1017,7 +1028,8 @@ test "inflate A Tale of Two Cities (1859) intro" { |
| 1017 | 1028 | \\ |
| 1018 | 1029 | ; |
| 1019 | 1030 | |
| 1020 | const reader = std.io.fixedBufferStream(&compressed).reader(); | |
| 1031 | var fib = std.io.fixedBufferStream(&compressed); | |
| 1032 | const reader = fib.reader(); | |
| 1021 | 1033 | var decomp = try decompressor(testing.allocator, reader, null); |
| 1022 | 1034 | defer decomp.deinit(); |
| 1023 | 1035 | |
| ... | ... | @@ -1082,7 +1094,8 @@ test "fuzzing" { |
| 1082 | 1094 | |
| 1083 | 1095 | fn decompress(input: []const u8) !void { |
| 1084 | 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 | 1099 | var decomp = try decompressor(allocator, reader, null); |
| 1087 | 1100 | defer decomp.deinit(); |
| 1088 | 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 | 78 | var decompressed = try testing.allocator.alloc(u8, want.items.len); |
| 79 | 79 | defer testing.allocator.free(decompressed); |
| 80 | 80 | |
| 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); | |
| 86 | 83 | defer decomp.deinit(); |
| 87 | 84 | |
| 88 | 85 | var read = try decomp.reader().readAll(decompressed); |
| ... | ... | @@ -122,13 +119,13 @@ test "best speed max match offset" { |
| 122 | 119 | //	zeros1 is between 0 and 30 zeros. |
| 123 | 120 | // The difference between the two abc's will be offset, which |
| 124 | 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 | 123 | var src = try testing.allocator.alloc(u8, src_len); |
| 127 | 124 | defer testing.allocator.free(src); |
| 128 | 125 | |
| 129 | 126 | mem.copy(u8, src, abc); |
| 130 | 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 | 129 | mem.copy(u8, src[src_offset..], xyz); |
| 133 | 130 | } |
| 134 | 131 | var src_offset: usize = @intCast(usize, offset); |
| ... | ... | @@ -149,11 +146,8 @@ test "best speed max match offset" { |
| 149 | 146 | var decompressed = try testing.allocator.alloc(u8, src.len); |
| 150 | 147 | defer testing.allocator.free(decompressed); |
| 151 | 148 | |
| 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); | |
| 157 | 151 | defer decomp.deinit(); |
| 158 | 152 | var read = try decomp.reader().readAll(decompressed); |
| 159 | 153 | _ = decomp.close(); |
lib/std/x.zig-1| ... | ... | @@ -13,7 +13,6 @@ pub const net = struct { |
| 13 | 13 | }; |
| 14 | 14 | |
| 15 | 15 | test { |
| 16 | if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; | |
| 17 | 16 | inline for (.{ os, net }) |module| { |
| 18 | 17 | std.testing.refAllDecls(module); |
| 19 | 18 | } |
lib/std/x/os/io.zig+1| ... | ... | @@ -117,6 +117,7 @@ pub const Reactor = struct { |
| 117 | 117 | }; |
| 118 | 118 | |
| 119 | 119 | test "reactor/linux: drive async tcp client/listener pair" { |
| 120 | if (@import("builtin").zig_backend != .stage1) return error.SkipZigTest; | |
| 120 | 121 | if (native_os.tag != .linux) return error.SkipZigTest; |
| 121 | 122 | |
| 122 | 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 | 381 | }); |
| 382 | 382 | } |
| 383 | 383 | |
| 384 | const zero_span = span: { | |
| 384 | const zero_span: struct { from: usize, to: usize } = span: { | |
| 385 | 385 | var i: usize = 0; |
| 386 | 386 | while (i < self.octets.len) : (i += 2) { |
| 387 | 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 | 19702 | // pointer to tuple to slice |
| 19703 | 19703 | if (inst_ty.isSinglePointer() and |
| 19704 | 19704 | 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 | 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 | 1062 | sema_kit: ?Module.WipAnalysis, |
| 1063 | 1063 | ) Module.CompileError!BigIntConst { |
| 1064 | 1064 | switch (val.tag()) { |
| 1065 | .null_value, | |
| 1065 | 1066 | .zero, |
| 1066 | 1067 | .bool_false, |
| 1067 | 1068 | .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 | 1426 | } |
| 1427 | 1427 | |
| 1428 | 1428 | test "pointer to empty struct literal to mutable slice" { |
| 1429 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | |
| 1429 | 1430 | var x: []i32 = &.{}; |
| 1430 | 1431 | try expect(x.len == 0); |
| 1431 | 1432 | } |