zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 09dc651476408deb791e81408d617aac97458ebf (tree)
parent 450e4672017773e2eb7b6db16e17279fe85a7a11
Author: Rohlem <rohlemF@gmail.com>
Date:   Thu, 17 Dec 2020 16:26:30 +0100

std.os.windows.GetFinalPathNameByHandle: add test

Diffstat:
Mlib/std/os/windows.zig | 24++++++++++++++++++++++++
1 file changed, 24 insertions(+), 0 deletions(-)

diff --git 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(