authorgravatar for rohlemF@gmail.comRohlem <rohlemF@gmail.com> 2020-12-17 16:26:30+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-01-11 17:48:18-07:00
log09dc651476408deb791e81408d617aac97458ebf
tree0f7ed84479a37345cb0b9f41c813d38d8d29e313
parent450e4672017773e2eb7b6db16e17279fe85a7a11

std.os.windows.GetFinalPathNameByHandle: add test


1 files changed, 24 insertions(+), 0 deletions(-)

lib/std/os/windows.zig+24
......@@ -1146,6 +1146,30 @@ pub fn GetFinalPathNameByHandle(
11461146 }
11471147}
11481148
1149test "GetFinalPathNameByHandle" {
1150 if (comptime builtin.os.tag != .windows)
1151 return;
1152
1153 //any file will do
1154 const file = try std.fs.openSelfExe(.{});
1155 defer file.close();
1156 const handle = file.handle;
1157 //make this large enough for the test runner exe path
1158 var buffer = std.mem.zeroes([1 << 10]u16);
1159
1160 //check with sufficient size
1161 const nt_length = (try GetFinalPathNameByHandle(handle, .{ .volume_name = .Nt }, buffer[0..])).len;
1162 const dos_length = (try GetFinalPathNameByHandle(handle, .{ .volume_name = .Dos }, buffer[0..])).len;
1163
1164 //check with insufficient size
1165 std.testing.expectError(error.NameTooLong, GetFinalPathNameByHandle(handle, .{ .volume_name = .Nt }, buffer[0 .. nt_length - 1]));
1166 std.testing.expectError(error.NameTooLong, GetFinalPathNameByHandle(handle, .{ .volume_name = .Dos }, buffer[0 .. dos_length - 1]));
1167
1168 //check with exactly-sufficient size
1169 _ = try GetFinalPathNameByHandle(handle, .{ .volume_name = .Nt }, buffer[0..nt_length]);
1170 _ = try GetFinalPathNameByHandle(handle, .{ .volume_name = .Dos }, buffer[0..dos_length]);
1171}
1172
11491173pub const QueryInformationFileError = error{Unexpected};
11501174
11511175pub fn QueryInformationFile(