From c8da03a0e18661375ad72b66fbcfe6a84e303205 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Fri, 14 Oct 2022 03:43:28 -0700 Subject: [PATCH] Fix compile error in Dir.deleteTreeMinStackSize and add test Follow up to #13073 --- lib/std/fs.zig | 2 +- lib/std/fs/test.zig | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/std/fs.zig b/lib/std/fs.zig index 80e599748..c85d9d82f 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -2261,7 +2261,7 @@ pub const Dir = struct { /// Like `deleteTree`, but only keeps one `Iterator` active at a time to minimize the function's stack size. /// This is slower than `deleteTree` but uses less stack space. pub fn deleteTreeMinStackSize(self: Dir, sub_path: []const u8) DeleteTreeError!void { - return self.deleteTreeMinStackWithKindHint(sub_path, .File); + return self.deleteTreeMinStackSizeWithKindHint(sub_path, .File); } fn deleteTreeMinStackSizeWithKindHint(self: Dir, sub_path: []const u8, kind_hint: File.Kind) DeleteTreeError!void { diff --git a/lib/std/fs/test.zig b/lib/std/fs/test.zig index f0fb3e01c..028110ff9 100644 --- a/lib/std/fs/test.zig +++ b/lib/std/fs/test.zig @@ -677,6 +677,22 @@ test "makePath, put some files in it, deleteTree" { } } +test "makePath, put some files in it, deleteTreeMinStackSize" { + var tmp = tmpDir(.{}); + defer tmp.cleanup(); + + try tmp.dir.makePath("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "c"); + try tmp.dir.writeFile("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "c" ++ fs.path.sep_str ++ "file.txt", "nonsense"); + try tmp.dir.writeFile("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "file2.txt", "blah"); + try tmp.dir.deleteTreeMinStackSize("os_test_tmp"); + if (tmp.dir.openDir("os_test_tmp", .{})) |dir| { + _ = dir; + @panic("expected error"); + } else |err| { + try testing.expect(err == error.FileNotFound); + } +} + test "makePath in a directory that no longer exists" { if (builtin.os.tag == .windows) return error.SkipZigTest; // Windows returns FileBusy if attempting to remove an open dir