diff options
Diffstat (limited to 'src/libs/dutil/test/DUtilUnitTest/PathUtilTest.cpp')
-rw-r--r-- | src/libs/dutil/test/DUtilUnitTest/PathUtilTest.cpp | 76 |
1 files changed, 36 insertions, 40 deletions
diff --git a/src/libs/dutil/test/DUtilUnitTest/PathUtilTest.cpp b/src/libs/dutil/test/DUtilUnitTest/PathUtilTest.cpp index 381ea39a..12a2aaf1 100644 --- a/src/libs/dutil/test/DUtilUnitTest/PathUtilTest.cpp +++ b/src/libs/dutil/test/DUtilUnitTest/PathUtilTest.cpp | |||
@@ -142,7 +142,15 @@ namespace DutilTests | |||
142 | else | 142 | else |
143 | { | 143 | { |
144 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); | 144 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); |
145 | NativeAssert::StringEqual(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | 145 | |
146 | if ('\\' == *sczCanonicalized) | ||
147 | { | ||
148 | NativeAssert::StringEqual(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | ||
149 | } | ||
150 | else | ||
151 | { | ||
152 | NativeAssert::StringEqual(L"C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | ||
153 | } | ||
146 | } | 154 | } |
147 | 155 | ||
148 | hr = PathCanonicalizeForComparison(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", 0, &sczCanonicalized); | 156 | hr = PathCanonicalizeForComparison(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", 0, &sczCanonicalized); |
@@ -153,7 +161,15 @@ namespace DutilTests | |||
153 | else | 161 | else |
154 | { | 162 | { |
155 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); | 163 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); |
156 | NativeAssert::StringEqual(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | 164 | |
165 | if ('\\' == *sczCanonicalized) | ||
166 | { | ||
167 | NativeAssert::StringEqual(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | ||
168 | } | ||
169 | else | ||
170 | { | ||
171 | NativeAssert::StringEqual(L"C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | ||
172 | } | ||
157 | } | 173 | } |
158 | 174 | ||
159 | hr = PathCanonicalizeForComparison(L"\\\\server", PATH_CANONICALIZE_KEEP_UNC_ROOT, &sczCanonicalized); | 175 | hr = PathCanonicalizeForComparison(L"\\\\server", PATH_CANONICALIZE_KEEP_UNC_ROOT, &sczCanonicalized); |
@@ -288,7 +304,15 @@ namespace DutilTests | |||
288 | { | 304 | { |
289 | hr = PathAllocCanonicalizePath(L"C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized); | 305 | hr = PathAllocCanonicalizePath(L"C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized); |
290 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); | 306 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); |
291 | NativeAssert::StringEqual(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | 307 | |
308 | if ('\\' == *sczCanonicalized) | ||
309 | { | ||
310 | NativeAssert::StringEqual(L"\\\\?\\C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | ||
311 | } | ||
312 | else | ||
313 | { | ||
314 | NativeAssert::StringEqual(L"C:\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", sczCanonicalized); | ||
315 | } | ||
292 | 316 | ||
293 | hr = PathAllocCanonicalizePath(L"abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized); | 317 | hr = PathAllocCanonicalizePath(L"abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789\\abcdefghijklomnopqrstuvwxyz0123456789", PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized); |
294 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); | 318 | NativeAssert::Succeeded(hr, "Failed to canonicalize path"); |
@@ -937,50 +961,22 @@ namespace DutilTests | |||
937 | void PathGetTempPathTest() | 961 | void PathGetTempPathTest() |
938 | { | 962 | { |
939 | HRESULT hr = S_OK; | 963 | HRESULT hr = S_OK; |
940 | LPCWSTR wzEnvName = L"TMP"; | ||
941 | LPCWSTR wzEnvName2 = L"TEMP"; | ||
942 | LPCWSTR wzLongTempPath = L"C:\\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\\cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\\"; | ||
943 | LPWSTR sczTempPath = NULL; | 964 | LPWSTR sczTempPath = NULL; |
944 | WCHAR wzOriginalTemp[MAX_PATH + 1] = { }; | ||
945 | WCHAR wzOriginalTemp2[MAX_PATH + 1] = { }; | ||
946 | DWORD cch = 0; | 965 | DWORD cch = 0; |
947 | DWORD cch2 = 0; | ||
948 | SIZE_T cchTemp = 0; | 966 | SIZE_T cchTemp = 0; |
949 | size_t cchTemp2 = 0; | 967 | WCHAR wzPath[MAX_PATH + 1]; |
950 | |||
951 | try | ||
952 | { | ||
953 | cch = ::GetEnvironmentVariableW(wzEnvName, wzOriginalTemp, countof(wzOriginalTemp)); | ||
954 | Assert::NotEqual<DWORD>(0, cch); | ||
955 | |||
956 | if (!::SetEnvironmentVariableW(wzEnvName, wzLongTempPath)) | ||
957 | { | ||
958 | Assert::Equal<DWORD>(0xFFFFFFFF, ::GetLastError()); | ||
959 | } | ||
960 | 968 | ||
961 | cch2 = ::GetEnvironmentVariableW(wzEnvName2, wzOriginalTemp2, countof(wzOriginalTemp2)); | 969 | hr = PathGetTempPath(&sczTempPath, &cchTemp); |
962 | Assert::NotEqual<DWORD>(0, cch2); | 970 | NativeAssert::Succeeded(hr, "Failed to get temp path."); |
963 | 971 | ||
964 | hr = PathGetTempPath(&sczTempPath, &cchTemp); | 972 | cch = countof(wzPath); |
965 | NativeAssert::Succeeded(hr, "Failed to get temp path."); | 973 | cch = ::GetTempPathW(cch, wzPath); |
974 | Assert::NotEqual((DWORD)0, cch); | ||
966 | 975 | ||
967 | PathFixedBackslashTerminate(wzOriginalTemp2, countof(wzOriginalTemp2)); | 976 | // normalize trailing backslash |
977 | PathFixedBackslashTerminate(wzPath, cch); | ||
968 | 978 | ||
969 | hr = ::StringCchLengthW(wzOriginalTemp2, countof(wzOriginalTemp2), &cchTemp2); | 979 | NativeAssert::StringEqual(wzPath, sczTempPath); |
970 | NativeAssert::Succeeded(hr, "Failed to get temp path length."); | ||
971 | |||
972 | NativeAssert::StringEqual(wzOriginalTemp2, sczTempPath); | ||
973 | Assert::Equal<SIZE_T>(cchTemp2, cchTemp); | ||
974 | } | ||
975 | finally | ||
976 | { | ||
977 | if (cch) | ||
978 | { | ||
979 | ::SetEnvironmentVariableW(wzEnvName, wzOriginalTemp); | ||
980 | } | ||
981 | |||
982 | ReleaseStr(sczTempPath); | ||
983 | } | ||
984 | } | 980 | } |
985 | 981 | ||
986 | [Fact] | 982 | [Fact] |