[KERNEL32_APITEST] Add test to show that we should not spoil TEB->StaticUnicodeString in CreateProcessA. CORE-10368

svn path=/trunk/; revision=74701
This commit is contained in:
Mark Jansen 2017-05-30 20:55:15 +00:00
parent 47ef0a440a
commit 9a54d4a3a0
3 changed files with 37 additions and 0 deletions

View file

@ -3,6 +3,7 @@ add_subdirectory(redirptest)
list(APPEND SOURCE
Console.c
CreateProcess.c
DefaultActCtx.c
DeviceIoControl.c
dosdev.c

View file

@ -0,0 +1,34 @@
/*
* PROJECT: ReactOS api tests
* LICENSE: GPLv2+ - See COPYING in the top level directory
* PURPOSE: Test spoiling of StaticUnicodeString by CreateProcessA
* PROGRAMMERS: Mark Jansen
*/
#include <apitest.h>
#include <ndk/rtltypes.h>
#include <ndk/rtlfuncs.h>
START_TEST(CreateProcess)
{
PUNICODE_STRING StaticString;
UNICODE_STRING CompareString;
BOOL Process;
STARTUPINFO si = {0};
PROCESS_INFORMATION pi = {0};
LONG Result;
StaticString = &NtCurrentTeb()->StaticUnicodeString;
RtlInitUnicodeString(&CompareString, L"--sentinel--");
RtlCopyUnicodeString(StaticString, &CompareString);
si.cb = sizeof(si);
Process = CreateProcessA("ApplicationName", "CommandLine", NULL, NULL, FALSE, 0, NULL, "CurrentDir", &si, &pi);
ok_int(Process, 0);
Result = RtlCompareUnicodeString(StaticString, &CompareString, TRUE);
ok(!Result, "Expected %s to equal %s\n",
wine_dbgstr_wn(StaticString->Buffer, StaticString->Length / sizeof(WCHAR)),
wine_dbgstr_wn(CompareString.Buffer, CompareString.Length / sizeof(WCHAR)));
}

View file

@ -4,6 +4,7 @@
#include <apitest.h>
extern void func_Console(void);
extern void func_CreateProcess(void);
extern void func_DefaultActCtx(void);
extern void func_DeviceIoControl(void);
extern void func_dosdev(void);
@ -30,6 +31,7 @@ extern void func_WideCharToMultiByte(void);
const struct test winetest_testlist[] =
{
{ "ConsoleCP", func_Console },
{ "CreateProcess", func_CreateProcess },
{ "DefaultActCtx", func_DefaultActCtx },
{ "DeviceIoControl", func_DeviceIoControl },
{ "dosdev", func_dosdev },