[NTDLL_APITEST]
authorThomas Faber <thomas.faber@reactos.org>
Sat, 28 Sep 2013 08:38:33 +0000 (08:38 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sat, 28 Sep 2013 08:38:33 +0000 (08:38 +0000)
- Add test for NtCreateThread with invalid ThreadContext parameter. Patch by Aleksander Andrejevic.
CORE-7252

svn path=/trunk/; revision=60402

rostests/apitests/ntdll/CMakeLists.txt
rostests/apitests/ntdll/NtCreateThread.c [new file with mode: 0644]
rostests/apitests/ntdll/testlist.c

index 4fa5026..582b54d 100644 (file)
@@ -2,6 +2,7 @@
 list(APPEND SOURCE
     LdrEnumResources.c
     NtAllocateVirtualMemory.c
+    NtCreateThread.c
     NtFreeVirtualMemory.c
     NtMapViewOfSection.c
     NtProtectVirtualMemory.c
diff --git a/rostests/apitests/ntdll/NtCreateThread.c b/rostests/apitests/ntdll/NtCreateThread.c
new file mode 100644 (file)
index 0000000..dcb1921
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * PROJECT:     ReactOS api tests
+ * LICENSE:     See COPYING in the top level directory
+ * PURPOSE:     Test for NtCreateThread
+ * PROGRAMMER:  Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
+ */
+
+#define WIN32_NO_STATUS
+#include <wine/test.h>
+#include <ndk/pstypes.h>
+#include <ndk/psfuncs.h>
+
+START_TEST(NtCreateThread)
+{
+    NTSTATUS Status;
+    INITIAL_TEB InitialTeb;
+    HANDLE ThreadHandle;
+    OBJECT_ATTRIBUTES Attributes;
+
+    InitializeObjectAttributes(&Attributes, NULL, 0, NULL, NULL);
+    ZeroMemory(&InitialTeb, sizeof(INITIAL_TEB));
+
+    Status = NtCreateThread(&ThreadHandle,
+                            0,
+                            &Attributes,
+                            NtCurrentProcess(),
+                            NULL,
+                            (PCONTEXT)0x70000000, /* Aligned usermode address */
+                            &InitialTeb,
+                            FALSE);
+
+    ok_hex(Status, STATUS_ACCESS_VIOLATION);
+}
index 3c1d2fd..ecf997d 100644 (file)
@@ -5,6 +5,7 @@
 
 extern void func_LdrEnumResources(void);
 extern void func_NtAllocateVirtualMemory(void);
+extern void func_NtCreateThread(void);
 extern void func_NtFreeVirtualMemory(void);
 extern void func_NtMapViewOfSection(void);
 extern void func_NtProtectVirtualMemory(void);
@@ -28,6 +29,7 @@ const struct test winetest_testlist[] =
 {
     { "LdrEnumResources",               func_LdrEnumResources },
     { "NtAllocateVirtualMemory",        func_NtAllocateVirtualMemory },
+    { "NtCreateThread",                 func_NtCreateThread },
     { "NtFreeVirtualMemory",            func_NtFreeVirtualMemory },
     { "NtMapViewOfSection",             func_NtMapViewOfSection },
     { "NtProtectVirtualMemory",         func_NtProtectVirtualMemory },