authorgravatar for igor.anic@gmail.comIgor Anić <igor.anic@gmail.com> 2023-12-01 18:50:48+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-01-13 19:37:33-07:00
log2ed9a276a701cc55eccf4fcbf68476e797f1818b
treedbbd61d0c3aaa0cb10b872c73bdb9f14606c7500
parent6bfa7bf197634272f30d864a4563f7cddbaf55c0

tar: use Go test cases path from env variable

Skip tests if env is not set.

1 files changed, 6 insertions(+), 11 deletions(-)

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