diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index 12f647e2309b..5a9296e889bd 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -1980,6 +1980,7 @@ pub fn CreateProcessW( switch (GetLastError()) { .FILE_NOT_FOUND => return error.FileNotFound, .PATH_NOT_FOUND => return error.FileNotFound, + .DIRECTORY => return error.FileNotFound, .ACCESS_DENIED => return error.AccessDenied, .INVALID_PARAMETER => unreachable, .INVALID_NAME => return error.InvalidName, diff --git a/test/standalone/windows_spawn/main.zig b/test/standalone/windows_spawn/main.zig index 9496895d618f..3b0d0efe75c7 100644 --- a/test/standalone/windows_spawn/main.zig +++ b/test/standalone/windows_spawn/main.zig @@ -51,6 +51,8 @@ pub fn main() anyerror!void { try testExec(allocator, "HeLLo.exe", "hello from exe\n"); // without extension should find the .exe (case insensitive) try testExec(allocator, "heLLo", "hello from exe\n"); + // with invalid cwd + try std.testing.expectError(error.FileNotFound, testExecWithCwd(allocator, "hello.exe", "missing_dir", "")); // now add a .bat try tmp.dir.writeFile(.{ .sub_path = "hello.bat", .data = "@echo hello from bat" });