summaryrefslogtreecommitdiff
path: root/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1
diff options
context:
space:
mode:
Diffstat (limited to 'src/pal/tests/palsuite/file_io/GetTempFileNameW/test1')
-rw-r--r--src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/CMakeLists.txt19
-rw-r--r--src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.c129
-rw-r--r--src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/testinfo.dat13
3 files changed, 161 insertions, 0 deletions
diff --git a/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/CMakeLists.txt b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/CMakeLists.txt
new file mode 100644
index 0000000..1b6c599
--- /dev/null
+++ b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 2.8.12.2)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(SOURCES
+ GetTempFileNameW.c
+)
+
+add_executable(paltest_gettempfilenamew_test1
+ ${SOURCES}
+)
+
+add_dependencies(paltest_gettempfilenamew_test1 coreclrpal)
+
+target_link_libraries(paltest_gettempfilenamew_test1
+ pthread
+ m
+ coreclrpal
+)
diff --git a/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.c b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.c
new file mode 100644
index 0000000..43cda8f
--- /dev/null
+++ b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/GetTempFileNameW.c
@@ -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;
+}
diff --git a/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/testinfo.dat b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/testinfo.dat
new file mode 100644
index 0000000..72af693
--- /dev/null
+++ b/src/pal/tests/palsuite/file_io/GetTempFileNameW/test1/testinfo.dat
@@ -0,0 +1,13 @@
+# 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.
+
+Version = 1.0
+Section = file_io
+Function = GetTempFileNameW
+Name = Test for GetTempFileNameW (test 1)
+Type = DEFAULT
+EXE1 = gettempfilenamew
+Description
+= Test all the different options of GetTempFileNameW
+