diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2016-12-27 16:46:08 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2016-12-27 16:46:08 +0900 |
commit | db20f3f1bb8595633a7e16c8900fd401a453a6b5 (patch) | |
tree | e5435159cd1bf0519276363a6fe1663d1721bed3 /src/pal/tests/palsuite/threading/ExitThread/test1/test1.c | |
parent | 4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (diff) | |
download | coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.tar.gz coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.tar.bz2 coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.zip |
Imported Upstream version 1.0.0.9127upstream/1.0.0.9127
Diffstat (limited to 'src/pal/tests/palsuite/threading/ExitThread/test1/test1.c')
-rw-r--r-- | src/pal/tests/palsuite/threading/ExitThread/test1/test1.c | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/src/pal/tests/palsuite/threading/ExitThread/test1/test1.c b/src/pal/tests/palsuite/threading/ExitThread/test1/test1.c deleted file mode 100644 index 2963745bef..0000000000 --- a/src/pal/tests/palsuite/threading/ExitThread/test1/test1.c +++ /dev/null @@ -1,114 +0,0 @@ -// 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: test1.c -** -** Purpose: Test for ExitThread. Create a thread and then call -** exit thread within the threading function. Ensure that it exits -** immediatly. -** -** -**=========================================================*/ - -#include <palsuite.h> - -DWORD dwExitThreadTestParameter = 0; - -DWORD PALAPI ExitThreadTestThread( LPVOID lpParameter) -{ - DWORD dwRet = 0; - - /* Save parameter for test */ - dwExitThreadTestParameter = (DWORD)lpParameter; - - /* Call the ExitThread function */ - ExitThread(dwRet); - - /* If we didn't exit, get caught in this loop. But, the - program will exit. - */ - while (!dwRet) - { - Fail("ERROR: Entered an infinite loop because ExitThread " - "failed to exit from the thread. Forcing exit from " - "the test now."); - } - - return dwRet; -} - -BOOL ExitThreadTest() -{ - BOOL bRet = FALSE; - DWORD dwRet = 0; - - LPSECURITY_ATTRIBUTES lpThreadAttributes = NULL; - DWORD dwStackSize = 0; - LPTHREAD_START_ROUTINE lpStartAddress = &ExitThreadTestThread; - LPVOID lpParameter = lpStartAddress; - DWORD dwCreationFlags = 0; //run immediately - DWORD dwThreadId = 0; - - HANDLE hThread = 0; - - dwExitThreadTestParameter = 0; - - /* Create a Thread. We'll need this to test that we're able - to exit the thread. - */ - hThread = CreateThread( lpThreadAttributes, - dwStackSize, lpStartAddress, lpParameter, - dwCreationFlags, &dwThreadId ); - - if (hThread != INVALID_HANDLE_VALUE) - { - dwRet = WaitForSingleObject(hThread,INFINITE); - - if (dwRet != WAIT_OBJECT_0) - { - Trace("ExitThreadTest:WaitForSingleObject failed " - "(%x)\n",GetLastError()); - } - else - { - /* Check to ensure that the parameter set in the Thread - function is correct. - */ - if (dwExitThreadTestParameter != (DWORD)lpParameter) - { - Trace("ERROR: The paramater passed should have been " - "%d but turned up as %d.", - dwExitThreadTestParameter, lpParameter); - } - else - { - bRet = TRUE; - } - } - } - else - { - Trace("ExitThreadTest:CreateThread failed (%x)\n",GetLastError()); - } - - return bRet; -} - -int __cdecl main(int argc, char **argv) -{ - if(0 != (PAL_Initialize(argc, argv))) - { - return ( FAIL ); - } - - if(!ExitThreadTest()) - { - Fail ("Test failed\n"); - } - - PAL_Terminate(); - return ( PASS ); -} |