commit f2e249e92020462ac29f34fc3d45cef3dc90a3b2 (tree)
parent 5e791e8e0786ea050f0f09da5de4657f3f9caad1
Author: Ryan Liptak <squeek502@hotmail.com>
Date: Fri, 2 Feb 2024 11:52:42 -0800
fs tests: Make path type show up in stack traces of testWithAllSupportedPathTypes
This allows for easier debugging without the need to print out the path type to stderr.
Context: 5a3ae38f3b79a69cb6f4ad28934a51165cae2ef1
Diffstat:
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/lib/std/fs/test.zig b/lib/std/fs/test.zig
@@ -106,15 +106,18 @@ const TestContext = struct {
/// and will be passed a TestContext that can transform a relative path into the path type under test.
/// The TestContext will also create a tmp directory for you (and will clean it up for you too).
fn testWithAllSupportedPathTypes(test_func: anytype) !void {
- inline for (@typeInfo(PathType).Enum.fields) |enum_field| {
- const path_type = @field(PathType, enum_field.name);
- if (!(comptime path_type.isSupported(builtin.os))) continue;
+ try testWithPathTypeIfSupported(.relative, test_func);
+ try testWithPathTypeIfSupported(.absolute, test_func);
+ try testWithPathTypeIfSupported(.unc, test_func);
+}
- var ctx = TestContext.init(path_type, testing.allocator, path_type.getTransformFn());
- defer ctx.deinit();
+fn testWithPathTypeIfSupported(comptime path_type: PathType, test_func: anytype) !void {
+ if (!(comptime path_type.isSupported(builtin.os))) return;
- try test_func(&ctx);
- }
+ var ctx = TestContext.init(path_type, testing.allocator, path_type.getTransformFn());
+ defer ctx.deinit();
+
+ try test_func(&ctx);
}
// For use in test setup. If the symlink creation fails on Windows with