mirror of
https://github.com/reactos/reactos.git
synced 2024-10-19 23:50:05 +00:00
test case for QueueUserWorkItem from bug 1609
by w3seek svn path=/trunk/; revision=22810
This commit is contained in:
parent
ac9badbafc
commit
3bd0205d06
|
@ -2,6 +2,9 @@
|
|||
<directory name="kmtloader">
|
||||
<xi:include href="kmtloader/kmtloader.rbuild" />
|
||||
</directory>
|
||||
<directory name="queuetest">
|
||||
<xi:include href="queuetest/queuetest.rbuild" />
|
||||
</directory>
|
||||
<directory name="regtests">
|
||||
<xi:include href="regtests/regtests.rbuild" />
|
||||
</directory>
|
||||
|
|
35
reactos/regtests/queuetest/queuetest.c
Normal file
35
reactos/regtests/queuetest/queuetest.c
Normal file
|
@ -0,0 +1,35 @@
|
|||
/* Compile with gcc -o queuetest.exe queuetest.c */
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define WT_EXECUTEINPERSISTENTIOTHREAD 0x00000040
|
||||
BOOL WINAPI QueueUserWorkItem(LPTHREAD_START_ROUTINE,PVOID,ULONG);
|
||||
|
||||
#define TestProc(n) \
|
||||
DWORD CALLBACK TestProc##n(void *ctx)\
|
||||
{\
|
||||
printf("TestProc%d thread 0x%x context 0x%p\n", n, GetCurrentThreadId(), ctx);\
|
||||
return 0;\
|
||||
}
|
||||
|
||||
TestProc(1)
|
||||
TestProc(2)
|
||||
TestProc(3)
|
||||
TestProc(4)
|
||||
TestProc(5)
|
||||
TestProc(6)
|
||||
|
||||
int __cdecl
|
||||
main(int argc, char* argv[])
|
||||
{
|
||||
PVOID x = (PVOID)0x12345;
|
||||
QueueUserWorkItem(TestProc1, x, 0);
|
||||
QueueUserWorkItem(TestProc2, x, WT_EXECUTELONGFUNCTION);
|
||||
QueueUserWorkItem(TestProc3, x, WT_EXECUTEINIOTHREAD);
|
||||
QueueUserWorkItem(TestProc4, x, WT_EXECUTEINIOTHREAD | WT_EXECUTELONGFUNCTION);
|
||||
QueueUserWorkItem(TestProc5, x, WT_EXECUTEINPERSISTENTTHREAD);
|
||||
QueueUserWorkItem(TestProc6, x, WT_EXECUTEINPERSISTENTIOTHREAD);
|
||||
Sleep(INFINITE);
|
||||
return 0;
|
||||
}
|
4
reactos/regtests/queuetest/queuetest.rbuild
Normal file
4
reactos/regtests/queuetest/queuetest.rbuild
Normal file
|
@ -0,0 +1,4 @@
|
|||
<module name="queuetest" type="win32cui" installbase="system32" installname="queuetest.exe" allowwarnings="true">
|
||||
<define name="__USE_W32API" />
|
||||
<file>queuetest.c</file>
|
||||
</module>
|
Loading…
Reference in a new issue