| ... | ... | @@ -701,7 +701,11 @@ const TestCase = struct { |
| 701 | 701 | }; |
| 702 | 702 | |
| 703 | 703 | test "tar: Go test cases" { |
| 704 | | const test_dir = try std.fs.openDirAbsolute("/usr/local/go/src/archive/tar/testdata", .{}); |
| 704 | const test_dir = if (std.os.getenv("GO_TAR_TESTDATA_PATH")) |path| |
| 705 | try std.fs.openDirAbsolute(path, .{}) |
| 706 | else |
| 707 | return error.SkipZigTest; |
| 708 | |
| 705 | 709 | const cases = [_]TestCase{ |
| 706 | 710 | .{ |
| 707 | 711 | .path = "gnu.tar", |
| ... | ... | @@ -781,12 +785,6 @@ test "tar: Go test cases" { |
| 781 | 785 | .path = "pax-bad-hdr-file.tar", |
| 782 | 786 | .err = error.InvalidPaxAttribute, |
| 783 | 787 | }, |
| 784 | | // |
| 785 | | // .{ |
| 786 | | // .path = "pax-bad-mtime-file.tar", |
| 787 | | // .err = error.TarBadHeader, |
| 788 | | // }, |
| 789 | | // |
| 790 | 788 | .{ |
| 791 | 789 | // size is in pax attribute |
| 792 | 790 | .path = "pax-pos-size-file.tar", |
| ... | ... | @@ -987,8 +985,6 @@ test "tar: Go test cases" { |
| 987 | 985 | }; |
| 988 | 986 | |
| 989 | 987 | for (cases) |case| { |
| 990 | | //if (!std.mem.eql(u8, case.path, "pax-pos-size-file.tar")) continue; |
| 991 | | |
| 992 | 988 | var fs_file = try test_dir.openFile(case.path, .{}); |
| 993 | 989 | defer fs_file.close(); |
| 994 | 990 | |
| ... | ... | @@ -1001,7 +997,7 @@ test "tar: Go test cases" { |
| 1001 | 997 | } else { |
| 1002 | 998 | return err; |
| 1003 | 999 | } |
| 1004 | | }) |actual| { |
| 1000 | }) |actual| : (i += 1) { |
| 1005 | 1001 | const expected = case.files[i]; |
| 1006 | 1002 | try std.testing.expectEqualStrings(expected.name, actual.name); |
| 1007 | 1003 | try std.testing.expectEqual(expected.size, actual.size); |
| ... | ... | @@ -1012,7 +1008,6 @@ test "tar: Go test cases" { |
| 1012 | 1008 | var md5writer = Md5Writer{}; |
| 1013 | 1009 | try actual.write(&md5writer); |
| 1014 | 1010 | const chksum = md5writer.chksum(); |
| 1015 | | // std.debug.print("actual chksum: {s}\n", .{chksum}); |
| 1016 | 1011 | try std.testing.expectEqualStrings(case.chksums[i], &chksum); |
| 1017 | 1012 | } else { |
| 1018 | 1013 | if (!expected.truncated) try actual.skip(); // skip file content |