aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRohlem <rohlemF@gmail.com>2020-12-17 16:26:30 +0100
committerAndrew Kelley <andrew@ziglang.org>2021-01-11 17:48:18 -0700
commit09dc651476408deb791e81408d617aac97458ebf (patch)
tree0f7ed84479a37345cb0b9f41c813d38d8d29e313 /lib
parent450e4672017773e2eb7b6db16e17279fe85a7a11 (diff)
downloadzig-09dc651476408deb791e81408d617aac97458ebf.tar.gz
zig-09dc651476408deb791e81408d617aac97458ebf.zip
std.os.windows.GetFinalPathNameByHandle: add test
Diffstat (limited to 'lib')
-rw-r--r--lib/std/os/windows.zig24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig
index 2a103bdd64..b489dbaf5d 100644
--- a/lib/std/os/windows.zig
+++ b/lib/std/os/windows.zig
@@ -1146,6 +1146,30 @@ pub fn GetFinalPathNameByHandle(
}
}
+test "GetFinalPathNameByHandle" {
+ if (comptime builtin.os.tag != .windows)
+ return;
+
+ //any file will do
+ const file = try std.fs.openSelfExe(.{});
+ defer file.close();
+ const handle = file.handle;
+ //make this large enough for the test runner exe path
+ var buffer = std.mem.zeroes([1 << 10]u16);
+
+ //check with sufficient size
+ const nt_length = (try GetFinalPathNameByHandle(handle, .{ .volume_name = .Nt }, buffer[0..])).len;
+ const dos_length = (try GetFinalPathNameByHandle(handle, .{ .volume_name = .Dos }, buffer[0..])).len;
+
+ //check with insufficient size
+ std.testing.expectError(error.NameTooLong, GetFinalPathNameByHandle(handle, .{ .volume_name = .Nt }, buffer[0 .. nt_length - 1]));
+ std.testing.expectError(error.NameTooLong, GetFinalPathNameByHandle(handle, .{ .volume_name = .Dos }, buffer[0 .. dos_length - 1]));
+
+ //check with exactly-sufficient size
+ _ = try GetFinalPathNameByHandle(handle, .{ .volume_name = .Nt }, buffer[0..nt_length]);
+ _ = try GetFinalPathNameByHandle(handle, .{ .volume_name = .Dos }, buffer[0..dos_length]);
+}
+
pub const QueryInformationFileError = error{Unexpected};
pub fn QueryInformationFile(