@@ -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);
@@ -153,7 +161,15 @@ namespace DutilTests
153161 else
154162 {
155163 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+ }
157173 }
158174
159175 hr = PathCanonicalizeForComparison (L" \\\\ server" , PATH_CANONICALIZE_KEEP_UNC_ROOT, &sczCanonicalized);
@@ -288,7 +304,15 @@ namespace DutilTests
288304 {
289305 hr = PathAllocCanonicalizePath (L" C:\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized);
290306 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+ }
292316
293317 hr = PathAllocCanonicalizePath (L" abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789\\ abcdefghijklomnopqrstuvwxyz0123456789" , PATHCCH_ALLOW_LONG_PATHS, &sczCanonicalized);
294318 NativeAssert::Succeeded (hr, " Failed to canonicalize path" );
@@ -937,50 +961,22 @@ namespace DutilTests
937961 void PathGetTempPathTest ()
938962 {
939963 HRESULT hr = S_OK;
940- LPCWSTR wzEnvName = L" TMP" ;
941- LPCWSTR wzEnvName2 = L" TEMP" ;
942- LPCWSTR wzLongTempPath = L" C:\\ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\\ cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\\ " ;
943964 LPWSTR sczTempPath = NULL ;
944- WCHAR wzOriginalTemp[MAX_PATH + 1 ] = { };
945- WCHAR wzOriginalTemp2[MAX_PATH + 1 ] = { };
946965 DWORD cch = 0 ;
947- DWORD cch2 = 0 ;
948966 SIZE_T cchTemp = 0 ;
949- size_t cchTemp2 = 0 ;
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- }
967+ WCHAR wzPath[MAX_PATH + 1 ];
960968
961- cch2 = :: GetEnvironmentVariableW (wzEnvName2, wzOriginalTemp2, countof (wzOriginalTemp2) );
962- Assert::NotEqual<DWORD>( 0 , cch2 );
969+ hr = PathGetTempPath (&sczTempPath, &cchTemp );
970+ NativeAssert::Succeeded (hr, " Failed to get temp path. " );
963971
964- hr = PathGetTempPath (&sczTempPath, &cchTemp);
965- NativeAssert::Succeeded (hr, " Failed to get temp path." );
972+ cch = countof (wzPath);
973+ cch = ::GetTempPathW (cch, wzPath);
974+ Assert::NotEqual ((DWORD)0 , cch);
966975
967- PathFixedBackslashTerminate (wzOriginalTemp2, countof (wzOriginalTemp2));
976+ // normalize trailing backslash
977+ PathFixedBackslashTerminate (wzPath, cch);
968978
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- }
979+ NativeAssert::StringEqual (wzPath, sczTempPath);
984980 }
985981
986982 [Fact]
0 commit comments