This commit is contained in:
Hüseyin Açacak 2025-02-26 13:34:55 +03:00 committed by GitHub
commit 6a61fc3f14
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 32 additions and 1 deletions

View File

@ -132,7 +132,6 @@ int uv_translate_sys_error(int sys_errno) {
case WSAENETUNREACH: return UV_ENETUNREACH;
case WSAENOBUFS: return UV_ENOBUFS;
case ERROR_BAD_PATHNAME: return UV_ENOENT;
case ERROR_DIRECTORY: return UV_ENOENT;
case ERROR_ENVVAR_NOT_FOUND: return UV_ENOENT;
case ERROR_FILE_NOT_FOUND: return UV_ENOENT;
case ERROR_INVALID_NAME: return UV_ENOENT;
@ -151,6 +150,7 @@ int uv_translate_sys_error(int sys_errno) {
case ERROR_HANDLE_DISK_FULL: return UV_ENOSPC;
case ERROR_NOT_CONNECTED: return UV_ENOTCONN;
case WSAENOTCONN: return UV_ENOTCONN;
case ERROR_DIRECTORY: return UV_ENOTDIR;
case ERROR_DIR_NOT_EMPTY: return UV_ENOTEMPTY;
case WSAENOTSOCK: return UV_ENOTSOCK;
case ERROR_NOT_SUPPORTED: return UV_ENOTSUP;

View File

@ -4920,3 +4920,32 @@ TEST_IMPL(fs_wtf) {
return 0;
}
#endif
TEST_IMPL(fs_open_enotdir) {
int r;
unlink("test_file.txt");
loop = uv_default_loop();
r = uv_fs_open(loop, &open_req1, "test_file.txt",
UV_FS_O_WRONLY | UV_FS_O_CREAT, S_IRUSR | S_IWUSR, NULL);
ASSERT_GE(r, 0);
ASSERT_GE(open_req1.result, 0);
uv_fs_req_cleanup(&open_req1);
r = uv_fs_close(NULL, &close_req, open_req1.result, NULL);
ASSERT_OK(r);
ASSERT_OK(close_req.result);
uv_fs_req_cleanup(&close_req);
r = uv_fs_open(loop, &open_req1, "test_file.txt/", UV_FS_O_RDONLY, 0, NULL);
ASSERT(r == UV_ENOTDIR);
uv_run(loop, UV_RUN_DEFAULT);
uv_fs_req_cleanup(&open_req1);
unlink("test_file.txt");
MAKE_VALGRIND_HAPPY(loop);
return 0;
}

View File

@ -426,6 +426,7 @@ TEST_DECLARE (fs_scandir_non_existent_dir)
TEST_DECLARE (fs_scandir_file)
TEST_DECLARE (fs_scandir_early_exit)
TEST_DECLARE (fs_open_dir)
TEST_DECLARE (fs_open_enotdir)
TEST_DECLARE (fs_readdir_empty_dir)
TEST_DECLARE (fs_readdir_file)
TEST_DECLARE (fs_readdir_non_empty_dir)
@ -1147,6 +1148,7 @@ TASK_LIST_START
TEST_ENTRY (fs_scandir_file)
TEST_ENTRY (fs_scandir_early_exit)
TEST_ENTRY (fs_open_dir)
TEST_ENTRY (fs_open_enotdir)
TEST_ENTRY (fs_readdir_empty_dir)
TEST_ENTRY (fs_readdir_file)
TEST_ENTRY (fs_readdir_non_empty_dir)