authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-08 19:18:21-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-08 19:18:21-07:00
logefbfa8ef3ebdb172bf3774a54279951ebb29c4c9
treec376a17087013cf12690f36cc08ce46c09b6cffd
parent1b372f187223c39eb32a54c96d50aff6ab08c9d6

std.fs.path.resolve: add test cases for empty string

Since I'm about to rely on this behavior.

1 files changed, 5 insertions(+), 3 deletions(-)

lib/std/fs/path.zig+5-3
...@@ -728,15 +728,17 @@ pub fn resolvePosix(allocator: Allocator, paths: []const []const u8) Allocator.E...@@ -728,15 +728,17 @@ pub fn resolvePosix(allocator: Allocator, paths: []const []const u8) Allocator.E
728 }728 }
729}729}
730730
731test "resolve" {731test resolve {
732 try testResolveWindows(&[_][]const u8{ "a\\b\\c\\", "..\\..\\.." }, ".");732 try testResolveWindows(&[_][]const u8{ "a\\b\\c\\", "..\\..\\.." }, ".");
733 try testResolveWindows(&[_][]const u8{"."}, ".");733 try testResolveWindows(&[_][]const u8{"."}, ".");
734 try testResolveWindows(&[_][]const u8{""}, ".");
734735
735 try testResolvePosix(&[_][]const u8{ "a/b/c/", "../../.." }, ".");736 try testResolvePosix(&[_][]const u8{ "a/b/c/", "../../.." }, ".");
736 try testResolvePosix(&[_][]const u8{"."}, ".");737 try testResolvePosix(&[_][]const u8{"."}, ".");
738 try testResolvePosix(&[_][]const u8{""}, ".");
737}739}
738740
739test "resolveWindows" {741test resolveWindows {
740 try testResolveWindows(742 try testResolveWindows(
741 &[_][]const u8{ "Z:\\", "/usr/local", "lib\\zig\\std\\array_list.zig" },743 &[_][]const u8{ "Z:\\", "/usr/local", "lib\\zig\\std\\array_list.zig" },
742 "Z:\\usr\\local\\lib\\zig\\std\\array_list.zig",744 "Z:\\usr\\local\\lib\\zig\\std\\array_list.zig",
...@@ -764,7 +766,7 @@ test "resolveWindows" {...@@ -764,7 +766,7 @@ test "resolveWindows" {
764 try testResolveWindows(&[_][]const u8{"a/b"}, "a\\b");766 try testResolveWindows(&[_][]const u8{"a/b"}, "a\\b");
765}767}
766768
767test "resolvePosix" {769test resolvePosix {
768 try testResolvePosix(&.{ "/a/b", "c" }, "/a/b/c");770 try testResolvePosix(&.{ "/a/b", "c" }, "/a/b/c");
769 try testResolvePosix(&.{ "/a/b", "c", "//d", "e///" }, "/d/e");771 try testResolvePosix(&.{ "/a/b", "c", "//d", "e///" }, "/d/e");
770 try testResolvePosix(&.{ "/a/b/c", "..", "../" }, "/a");772 try testResolvePosix(&.{ "/a/b/c", "..", "../" }, "/a");