mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 17:05:46 +00:00
[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:
parent
47ef0a440a
commit
9a54d4a3a0
3 changed files with 37 additions and 0 deletions
|
@ -3,6 +3,7 @@ add_subdirectory(redirptest)
|
|||
|
||||
list(APPEND SOURCE
|
||||
Console.c
|
||||
CreateProcess.c
|
||||
DefaultActCtx.c
|
||||
DeviceIoControl.c
|
||||
dosdev.c
|
||||
|
|
34
rostests/apitests/kernel32/CreateProcess.c
Normal file
34
rostests/apitests/kernel32/CreateProcess.c
Normal 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)));
|
||||
}
|
|
@ -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 },
|
||||
|
|
Loading…
Reference in a new issue