@@ -142,7 +142,15 @@ namespace DutilTests
142142 else
143143 {
144144 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+ }
146154 }
147155
148156 hr = PathCanonicalizeForComparison (L" \\\\ ?\\ C:\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , 0 , &sczCanonicalized);
@@ -288,7 +296,15 @@ namespace DutilTests
288296 {
289297 hr = PathAllocCanonicalizePath (L" C:\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized);
290298 NativeAssert::Succeeded (hr, " Failed to canonicalize path" );
291- NativeAssert::StringEqual (L" \\\\ ?\\ C:\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , sczCanonicalized);
299+
300+ if (' \\ ' == *sczCanonicalized)
301+ {
302+ NativeAssert::StringEqual (L" \\\\ ?\\ C:\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , sczCanonicalized);
303+ }
304+ else
305+ {
306+ NativeAssert::StringEqual (L" C:\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , sczCanonicalized);
307+ }
292308
293309 hr = PathAllocCanonicalizePath (L" abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized);
294310 NativeAssert::Succeeded (hr, " Failed to canonicalize path" );
@@ -937,50 +953,22 @@ namespace DutilTests
937953 void PathGetTempPathTest ()
938954 {
939955 HRESULT hr = S_OK;
940- LPCWSTR wzEnvName = L" TMP" ;
941- LPCWSTR wzEnvName2 = L" TEMP" ;
942- LPCWSTR wzLongTempPath = L" C:\\ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\\ cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\\ " ;
943956 LPWSTR sczTempPath = NULL ;
944- WCHAR wzOriginalTemp[MAX_PATH + 1 ] = { };
945- WCHAR wzOriginalTemp2[MAX_PATH + 1 ] = { };
946957 DWORD cch = 0 ;
947- DWORD cch2 = 0 ;
948958 SIZE_T cchTemp = 0 ;
949- size_t cchTemp2 = 0 ;
959+ WCHAR wzPath[MAX_PATH + 1 ] ;
950960
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- }
961+ hr = PathGetTempPath (&sczTempPath, &cchTemp);
962+ NativeAssert::Succeeded (hr, " Failed to get temp path." );
960963
961- cch2 = ::GetEnvironmentVariableW (wzEnvName2, wzOriginalTemp2, countof (wzOriginalTemp2));
962- Assert::NotEqual<DWORD>(0 , cch2);
964+ cch = countof (wzPath);
965+ cch = ::GetTempPathW (cch, wzPath);
966+ Assert::NotEqual ((DWORD)0 , cch);
963967
964- hr = PathGetTempPath (&sczTempPath, &cchTemp);
965- NativeAssert::Succeeded (hr, " Failed to get temp path. " );
968+ // normalize trailing backslash
969+ PathFixedBackslashTerminate (wzPath, cch );
966970
967- PathFixedBackslashTerminate (wzOriginalTemp2, countof (wzOriginalTemp2));
968-
969- hr = ::StringCchLengthW (wzOriginalTemp2, countof (wzOriginalTemp2), &cchTemp2);
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- }
971+ NativeAssert::StringEqual (wzPath, sczTempPath);
984972 }
985973
986974 [Fact]
0 commit comments