From f086ea856cd478eae5ace81c6a653f2b5b976352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20Anic=CC=81?= Date: Sun, 25 Feb 2024 15:57:20 +0100 Subject: [PATCH] std.tar skip test on windows Or other platform which don't support symlinks. --- lib/std/tar.zig | 2 +- lib/std/tar/test.zig | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/std/tar.zig b/lib/std/tar.zig index a5fbbed104..5bca19f0bd 100644 --- a/lib/std/tar.zig +++ b/lib/std/tar.zig @@ -564,7 +564,7 @@ pub fn pipeToFileSystem(dir: std.fs.Dir, reader: anytype, options: Options) !voi const link_name = file.link_name; createDirAndSymlink(dir, link_name, file_name) catch |err| { - const d = options.diagnostics orelse return err; + const d = options.diagnostics orelse return error.UnableToCreateSymLink; try d.errors.append(d.allocator, .{ .unable_to_create_sym_link = .{ .code = err, .file_name = try d.allocator.dupe(u8, file_name), diff --git a/lib/std/tar/test.zig b/lib/std/tar/test.zig index e568adb539..be840f5ddc 100644 --- a/lib/std/tar/test.zig +++ b/lib/std/tar/test.zig @@ -467,11 +467,15 @@ test "tar pipeToFileSystem" { var root = std.testing.tmpDir(.{ .no_follow = true }); defer root.cleanup(); - try tar.pipeToFileSystem(root.dir, fsb.reader(), .{ + tar.pipeToFileSystem(root.dir, fsb.reader(), .{ .mode_mode = .ignore, .strip_components = 1, .exclude_empty_directories = true, - }); + }) catch |err| { + // Skip on platform which don't support symlinks + if (err == error.UnableToCreateSymLink) return error.SkipZigTest; + return err; + }; try testing.expectError(error.FileNotFound, root.dir.statFile("empty")); try testing.expect((try root.dir.statFile("a/file")).kind == .file);