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 {
701701};
702702
703703test "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
705709 const cases = [_]TestCase{
706710 .{
707711 .path = "gnu.tar",
......@@ -781,12 +785,6 @@ test "tar: Go test cases" {
781785 .path = "pax-bad-hdr-file.tar",
782786 .err = error.InvalidPaxAttribute,
783787 },
784 //
785 // .{
786 // .path = "pax-bad-mtime-file.tar",
787 // .err = error.TarBadHeader,
788 // },
789 //
790788 .{
791789 // size is in pax attribute
792790 .path = "pax-pos-size-file.tar",
......@@ -987,8 +985,6 @@ test "tar: Go test cases" {
987985 };
988986
989987 for (cases) |case| {
990 //if (!std.mem.eql(u8, case.path, "pax-pos-size-file.tar")) continue;
991
992988 var fs_file = try test_dir.openFile(case.path, .{});
993989 defer fs_file.close();
994990
......@@ -1001,7 +997,7 @@ test "tar: Go test cases" {
1001997 } else {
1002998 return err;
1003999 }
1004 }) |actual| {
1000 }) |actual| : (i += 1) {
10051001 const expected = case.files[i];
10061002 try std.testing.expectEqualStrings(expected.name, actual.name);
10071003 try std.testing.expectEqual(expected.size, actual.size);
......@@ -1012,7 +1008,6 @@ test "tar: Go test cases" {
10121008 var md5writer = Md5Writer{};
10131009 try actual.write(&md5writer);
10141010 const chksum = md5writer.chksum();
1015 // std.debug.print("actual chksum: {s}\n", .{chksum});
10161011 try std.testing.expectEqualStrings(case.chksums[i], &chksum);
10171012 } else {
10181013 if (!expected.truncated) try actual.skip(); // skip file content