authorgravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2022-10-14 03:43:28-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-10-14 14:48:23-04:00
logc8da03a0e18661375ad72b66fbcfe6a84e303205
treea3cadc114bdc009d797d5ea676502c2b4056138f
parent9b45dc1608e44377bd1f972694809e0a4d34a8b8

Fix compile error in Dir.deleteTreeMinStackSize and add test

Follow up to #13073

2 files changed, 17 insertions(+), 1 deletions(-)

lib/std/fs.zig+1-1
...@@ -2261,7 +2261,7 @@ pub const Dir = struct {...@@ -2261,7 +2261,7 @@ pub const Dir = struct {
2261 /// Like `deleteTree`, but only keeps one `Iterator` active at a time to minimize the function's stack size.2261 /// Like `deleteTree`, but only keeps one `Iterator` active at a time to minimize the function's stack size.
2262 /// This is slower than `deleteTree` but uses less stack space.2262 /// This is slower than `deleteTree` but uses less stack space.
2263 pub fn deleteTreeMinStackSize(self: Dir, sub_path: []const u8) DeleteTreeError!void {2263 pub fn deleteTreeMinStackSize(self: Dir, sub_path: []const u8) DeleteTreeError!void {
2264 return self.deleteTreeMinStackWithKindHint(sub_path, .File);2264 return self.deleteTreeMinStackSizeWithKindHint(sub_path, .File);
2265 }2265 }
22662266
2267 fn deleteTreeMinStackSizeWithKindHint(self: Dir, sub_path: []const u8, kind_hint: File.Kind) DeleteTreeError!void {2267 fn deleteTreeMinStackSizeWithKindHint(self: Dir, sub_path: []const u8, kind_hint: File.Kind) DeleteTreeError!void {
lib/std/fs/test.zig+16
...@@ -677,6 +677,22 @@ test "makePath, put some files in it, deleteTree" {...@@ -677,6 +677,22 @@ test "makePath, put some files in it, deleteTree" {
677 }677 }
678}678}
679679
680test "makePath, put some files in it, deleteTreeMinStackSize" {
681 var tmp = tmpDir(.{});
682 defer tmp.cleanup();
683
684 try tmp.dir.makePath("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "c");
685 try tmp.dir.writeFile("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "c" ++ fs.path.sep_str ++ "file.txt", "nonsense");
686 try tmp.dir.writeFile("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "file2.txt", "blah");
687 try tmp.dir.deleteTreeMinStackSize("os_test_tmp");
688 if (tmp.dir.openDir("os_test_tmp", .{})) |dir| {
689 _ = dir;
690 @panic("expected error");
691 } else |err| {
692 try testing.expect(err == error.FileNotFound);
693 }
694}
695
680test "makePath in a directory that no longer exists" {696test "makePath in a directory that no longer exists" {
681 if (builtin.os.tag == .windows) return error.SkipZigTest; // Windows returns FileBusy if attempting to remove an open dir697 if (builtin.os.tag == .windows) return error.SkipZigTest; // Windows returns FileBusy if attempting to remove an open dir
682698