Changeset 76878 in vbox
- Timestamp:
- Jan 18, 2019 10:15:56 AM (6 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 2 edited
-
Runtime/r3/posix/dir-posix.cpp (modified) (5 diffs)
-
ValidationKit/utils/fs/FsPerf.cpp (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r3/posix/dir-posix.cpp
r76553 r76878 91 91 if (RT_SUCCESS(rc)) 92 92 { 93 if (mkdir(pszNativePath, fMode & RTFS_UNIX_MASK)) 93 if (mkdir(pszNativePath, fMode & RTFS_UNIX_MASK) == 0) 94 rc = VINF_SUCCESS; 95 else 94 96 { 95 97 rc = errno; 96 bool fVerifyIsDir = true;98 /*bool fVerifyIsDir = true; - Windows returns VERR_ALREADY_EXISTS, so why bother with this. */ 97 99 #ifdef RT_OS_SOLARIS 98 100 /* … … 111 113 { 112 114 rc = VERR_ALREADY_EXISTS; 115 /* Windows returns VERR_ALREADY_EXISTS, so why bother with this: 113 116 if (!S_ISDIR(st.st_mode)) 114 rc = VERR_IS_A_FILE; 117 rc = VERR_IS_A_FILE; */ 115 118 } 116 119 } … … 120 123 rc = RTErrConvertFromErrno(rc); 121 124 #endif 125 #if 0 /* Windows returns VERR_ALREADY_EXISTS, so why bother with this. */ 122 126 if ( rc == VERR_ALREADY_EXISTS 123 127 && fVerifyIsDir == true) … … 130 134 rc = VERR_IS_A_FILE; 131 135 } 136 #endif 132 137 } 133 138 } … … 152 157 { 153 158 if (rmdir(pszNativePath)) 154 rc = RTErrConvertFromErrno(errno); 159 { 160 rc = errno; 161 if (rc != ENOTDIR) 162 rc = RTErrConvertFromErrno(rc); 163 else 164 { 165 rc = RTErrConvertFromErrno(rc); 166 struct stat st; 167 if (!stat(pszNativePath, &st) && !S_ISDIR(st.st_mode)) 168 rc = VERR_NOT_A_DIRECTORY; 169 } 170 } 155 171 156 172 rtPathFreeNative(pszNativePath, pszPath); -
trunk/src/VBox/ValidationKit/utils/fs/FsPerf.cpp
r76873 r76878 150 150 151 151 152 /** @def FSPERF_VERR_PATH_NOT_FOUND 153 * Hides the fact that we only get VERR_PATH_NOT_FOUND on non-unix systems. */ 154 #if defined(RT_OS_WINDOWS) //|| defined(RT_OS_OS2) - using posix APIs IIRC, so lost in translation. 155 # define FSPERF_VERR_PATH_NOT_FOUND VERR_PATH_NOT_FOUND 156 #else 157 # define FSPERF_VERR_PATH_NOT_FOUND VERR_FILE_NOT_FOUND 158 #endif 159 160 152 161 /********************************************************************************************************************************* 153 162 * Structures and Typedefs * … … 374 383 DECLINLINE(char *) InDir(const char *pszAppend, size_t cchAppend) 375 384 { 385 Assert(g_szDir[g_cchDir - 1] == RTPATH_SLASH); 376 386 memcpy(&g_szDir[g_cchDir], pszAppend, cchAppend); 377 387 g_szDir[g_cchDir + cchAppend] = '\0'; … … 389 399 DECLINLINE(char *) InEmptyDir(const char *pszAppend, size_t cchAppend) 390 400 { 401 Assert(g_szEmptyDir[g_cchEmptyDir - 1] == RTPATH_SLASH); 391 402 memcpy(&g_szEmptyDir[g_cchEmptyDir], pszAppend, cchAppend); 392 403 g_szEmptyDir[g_cchEmptyDir + cchAppend] = '\0'; … … 404 415 DECLINLINE(char *) InDeepDir(const char *pszAppend, size_t cchAppend) 405 416 { 417 Assert(g_szDeepDir[g_cchDeepDir - 1] == RTPATH_SLASH); 406 418 memcpy(&g_szDeepDir[g_cchDeepDir], pszAppend, cchAppend); 407 419 g_szDeepDir[g_cchDeepDir + cchAppend] = '\0'; … … 542 554 RTFILE_O_OPEN | RTFILE_O_DENY_NONE | RTFILE_O_READ), VERR_FILE_NOT_FOUND); 543 555 RTTESTI_CHECK_RC(RTFileOpen(&hFile, InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), 544 RTFILE_O_OPEN | RTFILE_O_DENY_NONE | RTFILE_O_READ), VERR_PATH_NOT_FOUND);556 RTFILE_O_OPEN | RTFILE_O_DENY_NONE | RTFILE_O_READ), FSPERF_VERR_PATH_NOT_FOUND); 545 557 546 558 /* … … 647 659 &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK), VERR_FILE_NOT_FOUND); 648 660 RTTESTI_CHECK_RC(RTPathQueryInfoEx(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), 649 &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK), VERR_PATH_NOT_FOUND);661 &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK), FSPERF_VERR_PATH_NOT_FOUND); 650 662 651 663 /* Shallow: */ … … 688 700 VERR_FILE_NOT_FOUND); 689 701 RTTESTI_CHECK_RC(RTPathSetMode(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), 0665), 690 VERR_PATH_NOT_FOUND);702 FSPERF_VERR_PATH_NOT_FOUND); 691 703 692 704 /* Shallow: */ … … 733 745 RTTESTI_CHECK_RC(RTPathSetTimesEx(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), 734 746 NULL, &Time1, NULL, NULL, RTPATH_F_ON_LINK), 735 VERR_PATH_NOT_FOUND);747 FSPERF_VERR_PATH_NOT_FOUND); 736 748 737 749 /* Shallow: */ … … 800 812 strcpy(szPath, InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "other-no-such-file"))); 801 813 RTTESTI_CHECK_RC(RTPathRename(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), szPath, 0), 802 VERR_PATH_NOT_FOUND);814 FSPERF_VERR_PATH_NOT_FOUND); 803 815 804 816 RTFILE hFile1; … … 807 819 RTTESTI_CHECK_RC(RTFileClose(hFile1), VINF_SUCCESS); 808 820 strcat(strcpy(szPath, g_szDir), "-no-such-dir" RTPATH_SLASH_STR "file16"); 809 RTTESTI_CHECK_RC(RTPathRename(szPath, g_szDir, 0), VERR_PATH_NOT_FOUND);810 RTTESTI_CHECK_RC(RTPathRename(g_szDir, szPath, 0), VERR_PATH_NOT_FOUND);821 RTTESTI_CHECK_RC(RTPathRename(szPath, g_szDir, 0), FSPERF_VERR_PATH_NOT_FOUND); 822 RTTESTI_CHECK_RC(RTPathRename(g_szDir, szPath, 0), FSPERF_VERR_PATH_NOT_FOUND); 811 823 812 824 /* Shallow: */ … … 969 981 /* Non-existing directories: */ 970 982 RTTESTI_CHECK_RC(RTDirRemove(InEmptyDir(RT_STR_TUPLE("no-such-dir"))), VERR_FILE_NOT_FOUND); 971 RTTESTI_CHECK_RC(RTDirRemove(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file"))), VERR_PATH_NOT_FOUND); 972 RTTESTI_CHECK_RC(RTDirCreate(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), 0755, 0), VERR_PATH_NOT_FOUND); 983 RTTESTI_CHECK_RC(RTDirRemove(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file"))), FSPERF_VERR_PATH_NOT_FOUND); 984 RTTESTI_CHECK_RC(RTDirCreate(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), 0755, 0), FSPERF_VERR_PATH_NOT_FOUND); 985 986 /** @todo check what happens if non-final path component isn't a directory. unix 987 * should return ENOTDIR and IPRT translates that to VERR_PATH_NOT_FOUND. 988 * Curious what happens on windows. */ 973 989 974 990 /* Already existing directories and files: */ … … 977 993 978 994 /* Remove directory with subdirectories: */ 995 #if defined(RT_OS_WINDOWS) 979 996 RTTESTI_CHECK_RC(RTDirRemove(InDir(RT_STR_TUPLE("."))), VERR_DIR_NOT_EMPTY); 997 #else 998 RTTESTI_CHECK_RC(RTDirRemove(InDir(RT_STR_TUPLE("."))), VERR_INVALID_PARAMETER); /* EINVAL for '.' */ 999 #endif 1000 RTTESTI_CHECK_RC(RTDirRemove(InDir(RT_STR_TUPLE(".."))), VERR_DIR_NOT_EMPTY); 1001 RTTESTI_CHECK_RC(RTDirRemove(InDir(RT_STR_TUPLE(""))), VERR_DIR_NOT_EMPTY); 980 1002 981 1003 /* Create a directory and remove it: */ … … 991 1013 RTTESTI_CHECK_RC(RTDirCreate(g_szDir, 0755, 0), VERR_ALREADY_EXISTS); 992 1014 RTTESTI_CHECK_RC(RTDirCreate(InDir(RT_STR_TUPLE("file18" RTPATH_SLASH_STR "subdir")), 0755, 0), VERR_PATH_NOT_FOUND); 993 994 1015 995 1016 /* … … 1065 1086 /* Non-existing files. */ 1066 1087 RTTESTI_CHECK_RC(RTFileDelete(InEmptyDir(RT_STR_TUPLE("no-such-file"))), VERR_FILE_NOT_FOUND); 1067 RTTESTI_CHECK_RC(RTFileDelete(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file"))), VERR_PATH_NOT_FOUND);1088 RTTESTI_CHECK_RC(RTFileDelete(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file"))), FSPERF_VERR_PATH_NOT_FOUND); 1068 1089 1069 1090 /* Directories: */ 1070 #ifdef RT_OS_WINDOWS1071 1091 RTTESTI_CHECK_RC(RTFileDelete(InEmptyDir(RT_STR_TUPLE("."))), VERR_ACCESS_DENIED); 1072 #else 1073 RTTESTI_CHECK_RC(RTFileDelete(InEmptyDir(RT_STR_TUPLE("."))), VERR_IS_A_DIRECTORY); 1074 #endif 1092 RTTESTI_CHECK_RC(RTFileDelete(InEmptyDir(RT_STR_TUPLE(".."))), VERR_ACCESS_DENIED); 1093 RTTESTI_CHECK_RC(RTFileDelete(InEmptyDir(RT_STR_TUPLE(""))), VERR_ACCESS_DENIED); 1075 1094 1076 1095 /* Shallow: */ … … 1278 1297 { VINF_SUCCESS, RTFILE_SEEK_END, -(int64_t)cbFile/2, cbFile / 2 + (cbFile & 1) }, 1279 1298 { VINF_SUCCESS, RTFILE_SEEK_CURRENT, -(int64_t)cbFile/2, 0 }, 1299 #if defined(RT_OS_WINDOWS) 1280 1300 { VERR_NEGATIVE_SEEK, RTFILE_SEEK_CURRENT, -1, 0 }, 1301 #else 1302 { VERR_INVALID_PARAMETER, RTFILE_SEEK_CURRENT, -1, 0 }, 1303 #endif 1281 1304 { VINF_SUCCESS, RTFILE_SEEK_CURRENT, 0, 0 }, 1282 1305 }; … … 1735 1758 if (RT_SUCCESS(rc)) 1736 1759 { 1760 g_szEmptyDir[g_cchEmptyDir++] = RTPATH_SLASH; 1761 g_szEmptyDir[g_cchEmptyDir] = '\0'; 1737 1762 RTTestIPrintf(RTTESTLVL_ALWAYS, "Empty dir: %s\n", g_szEmptyDir); 1738 1763
Note:
See TracChangeset
for help on using the changeset viewer.

