diff options
Diffstat (limited to 'src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp')
-rw-r--r-- | src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp new file mode 100644 index 0000000000..43cda8f447 --- /dev/null +++ b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.cpp @@ -0,0 +1,129 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*===================================================================== +** +** Source: GetTempFileNameW.c (test 1) +** +** Purpose: Tests the PAL implementation of the GetTempFileNameW function. +** +** +**===================================================================*/ + +#include <palsuite.h> + + + +int __cdecl main(int argc, char *argv[]) +{ + UINT uiError = 0; + const UINT uUnique = 0; + WCHAR* wPrefix = NULL; + WCHAR* wPath = NULL; + WCHAR wReturnedName[256]; + WCHAR wTempString[256]; + + if (0 != PAL_Initialize(argc,argv)) + { + return FAIL; + } + + + // valid path with null ext + wPath = convert("."); + uiError = GetTempFileNameW(wPath, wPrefix, uUnique, wReturnedName); + free (wPath); + if (uiError == 0) + { + Fail("GetTempFileNameW: ERROR -> Call failed with a valid path " + "with the error code: %ld\n", GetLastError()); + } + else + { + // verify temp file was created + if (GetFileAttributesW(wReturnedName) == -1) + { + Fail("GetTempFileNameW: ERROR -> GetFileAttributes failed on the " + "returned temp file with error code: %ld.\n", GetLastError()); + } + if (DeleteFileW(wReturnedName) != TRUE) + { + Fail("GetTempFileNameW: ERROR -> DeleteFileW failed to delete" + "the created temp file with error code: %lld.\n", GetLastError()); + } + } + + + // valid path with valid prefix + wPath = convert("."); + wPrefix = convert("cfr"); + uiError = GetTempFileNameW(wPath, wPrefix, uUnique, wReturnedName); + free (wPath); + free (wPrefix); + if (uiError == 0) + { + Fail("GetTempFileNameW: ERROR -> Call failed with a valid path and " + "prefix with the error code: %ld\n", GetLastError()); + } + else + { + // verify temp file was created + if (GetFileAttributesW(wReturnedName) == -1) + { + Fail("GetTempFileNameW: ERROR -> GetFileAttributes failed on the " + "returned temp file with error code: %ld.\n", GetLastError()); + } + if (DeleteFileW(wReturnedName) != TRUE) + { + Fail("GetTempFileNameW: ERROR -> DeleteFileW failed to delete" + "the created temp file with error code: %lld.\n", GetLastError()); + } + } + + // valid path with long prefix + wPath = convert("."); + wPrefix = convert("cfrwxyz"); + uiError = GetTempFileNameW(wPath, wPrefix, uUnique, wReturnedName); + if (uiError == 0) + { + free (wPath); + free (wPrefix); + Fail("GetTempFileNameW: ERROR -> Call failed with a valid path and " + "prefix with the error code: %ld\n", GetLastError()); + } + else + { + // verify temp file was created + if (GetFileAttributesW(wReturnedName) == -1) + { + free (wPath); + free (wPrefix); + Fail("GetTempFileNameW: ERROR -> GetFileAttributes failed on the " + "returned temp file with error code: %ld.\n", GetLastError()); + } + + // now verify that it only used the first 3 characters of the prefix + swprintf(wTempString, convert("%s\\%s"), wPath, wPrefix); + if (memcmp(wTempString, wReturnedName, wcslen(wTempString)*sizeof(WCHAR)) == 0) + { + free (wPath); + free (wPrefix); + Fail("GetTempFileNameW: ERROR -> It appears that an improper prefix " + "was used.\n"); + } + + if (DeleteFileW(wReturnedName) != TRUE) + { + free (wPath); + free (wPrefix); + Fail("GetTempFileNameW: ERROR -> DeleteFileW failed to delete" + "the created temp file with error code: %lld.\n", GetLastError()); + } + } + + free (wPath); + free (wPrefix); + PAL_Terminate(); + return PASS; +} |