commit 8cc35a0255cae7728cfadfbe625986dc7c509def (tree)
parent 67336ca8c64a4c6d9f7304b6319776c64044660a
Author: Igor Anić <igor.anic@gmail.com>
Date: Sun, 3 Mar 2024 10:58:16 +0100
std.tar: fix path testing on windows
Fixing ci error: error:
'tar.test.test.pipeToFileSystem' failed: slices differ. first difference occurs at index 2 (0x2)
============ expected this output: ============= len: 9 (0x9)
2E 2E 2F 61 2F 66 69 6C 65 ../a/file
============= instead found this: ============== len: 9 (0x9)
2E 2E 5C 61 5C 66 69 6C 65 ..\a\file
After #19136 dir.symlink changes path separtors to \ on windows.
Diffstat:
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/lib/std/tar/test.zig b/lib/std/tar/test.zig
@@ -539,5 +539,16 @@ test "pipeToFileSystem" {
try testing.expect((try root.dir.statFile("b/symlink")).kind == .file); // statFile follows symlink
var buf: [32]u8 = undefined;
- try testing.expectEqualSlices(u8, "../a/file", try root.dir.readLink("b/symlink", &buf));
+ try testing.expectEqualSlices(
+ u8,
+ "../a/file",
+ normalizePath(try root.dir.readLink("b/symlink", &buf)),
+ );
+}
+
+fn normalizePath(bytes: []u8) []u8 {
+ const canonical_sep = std.fs.path.sep_posix;
+ if (std.fs.path.sep == canonical_sep) return bytes;
+ std.mem.replaceScalar(u8, bytes, std.fs.path.sep, canonical_sep);
+ return bytes;
}