authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-09 20:48:39-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-10 02:29:29-07:00
log2ca7cc46c41dc5fe91fe385df4f3330634bd88f3
treedb1ae26cadd206ab6af9d09d8b3896a4f06fa76c
parentaaf46187ab7bf23c87a275e2755a9bd01f3c93cf

Package.Fetch: fix inclusions not working for directories

Oops, the loop was checking the wrong variable! Added a unit test.

1 files changed, 15 insertions(+), 1 deletions(-)

src/Package/Fetch.zig+15-1
......@@ -1510,12 +1510,22 @@ const Filter = struct {
15101510 // Check if any included paths are parent directories of sub_path.
15111511 var dirname = sub_path;
15121512 while (std.fs.path.dirname(dirname)) |next_dirname| {
1513 if (self.include_paths.contains(sub_path)) return true;
1513 if (self.include_paths.contains(next_dirname)) return true;
15141514 dirname = next_dirname;
15151515 }
15161516
15171517 return false;
15181518 }
1519
1520 test includePath {
1521 const gpa = std.testing.allocator;
1522 var filter: Filter = .{};
1523 defer filter.include_paths.deinit(gpa);
1524
1525 try filter.include_paths.put(gpa, "src", {});
1526 try std.testing.expect(filter.includePath("src/core/unix/SDL_poll.c"));
1527 try std.testing.expect(!filter.includePath(".gitignore"));
1528 }
15191529};
15201530
15211531pub fn depDigest(
......@@ -1556,3 +1566,7 @@ const git = @import("Fetch/git.zig");
15561566const Package = @import("../Package.zig");
15571567const Manifest = Package.Manifest;
15581568const ErrorBundle = std.zig.ErrorBundle;
1569
1570test {
1571 _ = Filter;
1572}