diff --git a/lib/std/tar.zig b/lib/std/tar.zig index 21d08c527212eeb35b7eea1ee0367376fb217b98..ff8cfd4a36ccba03853f3506d31d96b2d879bd49 100644 --- a/lib/std/tar.zig +++ b/lib/std/tar.zig @@ -618,10 +618,8 @@ test "tar run Go test cases" { err: ?anyerror = null, // parsing should fail with this error }; - const test_dir = if (std.os.getenv("GO_TAR_TESTDATA_PATH")) |path| - try std.fs.openDirAbsolute(path, .{}) - else - return error.SkipZigTest; + const src_path = comptime std.fs.path.dirname(@src().file) orelse "."; + const test_dir = try std.fs.cwd().openDir(src_path ++ "/../../test/cases/tar", .{}); const cases = [_]Case{ .{ @@ -921,9 +919,9 @@ test "tar run Go test cases" { for (cases) |case| { var fs_file = try test_dir.openFile(case.path, .{}); + defer fs_file.close(); - //var iter = iterator(fs_file.reader(), null); var iter = tarReader(fs_file.reader(), null); var i: usize = 0; while (iter.next() catch |err| { diff --git a/test/cases/tar/gnu-incremental.tar b/test/cases/tar/gnu-incremental.tar new file mode 100644 index 0000000000000000000000000000000000000000..4c442e5b82d1977231c83167324dc6cbb39f090e Binary files /dev/null and b/test/cases/tar/gnu-incremental.tar differ diff --git a/test/cases/tar/gnu-long-nul.tar b/test/cases/tar/gnu-long-nul.tar new file mode 100644 index 0000000000000000000000000000000000000000..28bc812aa60e81ea324297c81c738486acffc09c Binary files /dev/null and b/test/cases/tar/gnu-long-nul.tar differ diff --git a/test/cases/tar/gnu-multi-hdrs.tar b/test/cases/tar/gnu-multi-hdrs.tar new file mode 100644 index 0000000000000000000000000000000000000000..8bcad55d06e8f9fde3641d2a8df370503a582ce6 Binary files /dev/null and b/test/cases/tar/gnu-multi-hdrs.tar differ diff --git a/test/cases/tar/gnu-not-utf8.tar b/test/cases/tar/gnu-not-utf8.tar new file mode 100644 index 0000000000000000000000000000000000000000..81cec67d3309502add09e2495ee1bf139389c8cb Binary files /dev/null and b/test/cases/tar/gnu-not-utf8.tar differ diff --git a/test/cases/tar/gnu-utf8.tar b/test/cases/tar/gnu-utf8.tar new file mode 100644 index 0000000000000000000000000000000000000000..2c9c8079cf651d4271ed78ac12bed01df5882f16 Binary files /dev/null and b/test/cases/tar/gnu-utf8.tar differ diff --git a/test/cases/tar/gnu.tar b/test/cases/tar/gnu.tar new file mode 100644 index 0000000000000000000000000000000000000000..fc899dc8dc2ad9952f5c5f67a0c76ca2d87249e9 Binary files /dev/null and b/test/cases/tar/gnu.tar differ diff --git a/test/cases/tar/invalid-go17.tar b/test/cases/tar/invalid-go17.tar new file mode 100644 index 0000000000000000000000000000000000000000..58f2488e78fb44a10f4e5a7833d5176c4c0ca090 Binary files /dev/null and b/test/cases/tar/invalid-go17.tar differ diff --git a/test/cases/tar/issue10968.tar b/test/cases/tar/issue10968.tar new file mode 100644 index 0000000000000000000000000000000000000000..1cc837bcff14cd822a26e43034955c82e852ab29 Binary files /dev/null and b/test/cases/tar/issue10968.tar differ diff --git a/test/cases/tar/issue11169.tar b/test/cases/tar/issue11169.tar new file mode 100644 index 0000000000000000000000000000000000000000..4d71fa15260609ecee0c8c751cfebf49be8763ac Binary files /dev/null and b/test/cases/tar/issue11169.tar differ diff --git a/test/cases/tar/issue12435.tar b/test/cases/tar/issue12435.tar new file mode 100644 index 0000000000000000000000000000000000000000..3542dd8efd5d486b99ae03f39a56860af1c09af0 Binary files /dev/null and b/test/cases/tar/issue12435.tar differ diff --git a/test/cases/tar/neg-size.tar b/test/cases/tar/neg-size.tar new file mode 100644 index 0000000000000000000000000000000000000000..21edf38cc3c3d98c834d07b6d31e8325898ec492 Binary files /dev/null and b/test/cases/tar/neg-size.tar differ diff --git a/test/cases/tar/nil-uid.tar b/test/cases/tar/nil-uid.tar new file mode 100644 index 0000000000000000000000000000000000000000..cc9cfaa33cc5de0a28b4183c1705d801f788c96a Binary files /dev/null and b/test/cases/tar/nil-uid.tar differ diff --git a/test/cases/tar/pax-bad-hdr-file.tar b/test/cases/tar/pax-bad-hdr-file.tar new file mode 100644 index 0000000000000000000000000000000000000000..b97cc981f29b849420ffb5c249103d2990d3ea20 Binary files /dev/null and b/test/cases/tar/pax-bad-hdr-file.tar differ diff --git a/test/cases/tar/pax-global-records.tar b/test/cases/tar/pax-global-records.tar new file mode 100644 index 0000000000000000000000000000000000000000..3d3d241e65c3a18feae324e8c40c9e5c76515dde Binary files /dev/null and b/test/cases/tar/pax-global-records.tar differ diff --git a/test/cases/tar/pax-multi-hdrs.tar b/test/cases/tar/pax-multi-hdrs.tar new file mode 100644 index 0000000000000000000000000000000000000000..14bc7597808020d7bc37e6610482fd9662814a24 Binary files /dev/null and b/test/cases/tar/pax-multi-hdrs.tar differ diff --git a/test/cases/tar/pax-nul-path.tar b/test/cases/tar/pax-nul-path.tar new file mode 100644 index 0000000000000000000000000000000000000000..c78f82b16e85363143404ec50c3e77e5174ba696 Binary files /dev/null and b/test/cases/tar/pax-nul-path.tar differ diff --git a/test/cases/tar/pax-nul-xattrs.tar b/test/cases/tar/pax-nul-xattrs.tar new file mode 100644 index 0000000000000000000000000000000000000000..881f51768f9872f8d9bfcd2cbb637a64c88b59fb Binary files /dev/null and b/test/cases/tar/pax-nul-xattrs.tar differ diff --git a/test/cases/tar/pax-pos-size-file.tar b/test/cases/tar/pax-pos-size-file.tar new file mode 100644 index 0000000000000000000000000000000000000000..ea5ccf916426a5b6300dd341dffeeb349e51ad90 Binary files /dev/null and b/test/cases/tar/pax-pos-size-file.tar differ diff --git a/test/cases/tar/pax-records.tar b/test/cases/tar/pax-records.tar new file mode 100644 index 0000000000000000000000000000000000000000..276c211baa388cd4857f60be3355dc710c079adf Binary files /dev/null and b/test/cases/tar/pax-records.tar differ diff --git a/test/cases/tar/pax.tar b/test/cases/tar/pax.tar new file mode 100644 index 0000000000000000000000000000000000000000..9bc24b6587d726c7fca4e533d9c61a3801a34688 Binary files /dev/null and b/test/cases/tar/pax.tar differ diff --git a/test/cases/tar/sparse-formats.tar b/test/cases/tar/sparse-formats.tar new file mode 100644 index 0000000000000000000000000000000000000000..8bd4e74d50f9c8961f80a887ab7d6449e032048b Binary files /dev/null and b/test/cases/tar/sparse-formats.tar differ diff --git a/test/cases/tar/star.tar b/test/cases/tar/star.tar new file mode 100644 index 0000000000000000000000000000000000000000..59e2d4e604611eeac3e2a0f3d6f71d2623c50449 Binary files /dev/null and b/test/cases/tar/star.tar differ diff --git a/test/cases/tar/trailing-slash.tar b/test/cases/tar/trailing-slash.tar new file mode 100644 index 0000000000000000000000000000000000000000..93718b3034879fba292186c38fae7a9e7be69801 Binary files /dev/null and b/test/cases/tar/trailing-slash.tar differ diff --git a/test/cases/tar/ustar-file-devs.tar b/test/cases/tar/ustar-file-devs.tar new file mode 100644 index 0000000000000000000000000000000000000000..146e25b79d8980a5eb0d370d0d9a0b7534c05135 Binary files /dev/null and b/test/cases/tar/ustar-file-devs.tar differ diff --git a/test/cases/tar/v7.tar b/test/cases/tar/v7.tar new file mode 100644 index 0000000000000000000000000000000000000000..eb65fc9410721efd98cb7c5e274f547ec530252d Binary files /dev/null and b/test/cases/tar/v7.tar differ diff --git a/test/cases/tar/writer-big-long.tar b/test/cases/tar/writer-big-long.tar new file mode 100644 index 0000000000000000000000000000000000000000..09fc5dd3dd7fc5de3b6d22461fa23152fd499a41 Binary files /dev/null and b/test/cases/tar/writer-big-long.tar differ diff --git a/test/cases/tar/writer-big.tar b/test/cases/tar/writer-big.tar new file mode 100644 index 0000000000000000000000000000000000000000..435dcbce6abc74dc5efa1f4dd34129eb7701c697 Binary files /dev/null and b/test/cases/tar/writer-big.tar differ diff --git a/test/cases/tar/xattrs.tar b/test/cases/tar/xattrs.tar new file mode 100644 index 0000000000000000000000000000000000000000..9701950edd1f0dc82858b7117136b37391be0b08 Binary files /dev/null and b/test/cases/tar/xattrs.tar differ