mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 12:55:43 +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
|
list(APPEND SOURCE
|
||||||
Console.c
|
Console.c
|
||||||
|
CreateProcess.c
|
||||||
DefaultActCtx.c
|
DefaultActCtx.c
|
||||||
DeviceIoControl.c
|
DeviceIoControl.c
|
||||||
dosdev.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>
|
#include <apitest.h>
|
||||||
|
|
||||||
extern void func_Console(void);
|
extern void func_Console(void);
|
||||||
|
extern void func_CreateProcess(void);
|
||||||
extern void func_DefaultActCtx(void);
|
extern void func_DefaultActCtx(void);
|
||||||
extern void func_DeviceIoControl(void);
|
extern void func_DeviceIoControl(void);
|
||||||
extern void func_dosdev(void);
|
extern void func_dosdev(void);
|
||||||
|
@ -30,6 +31,7 @@ extern void func_WideCharToMultiByte(void);
|
||||||
const struct test winetest_testlist[] =
|
const struct test winetest_testlist[] =
|
||||||
{
|
{
|
||||||
{ "ConsoleCP", func_Console },
|
{ "ConsoleCP", func_Console },
|
||||||
|
{ "CreateProcess", func_CreateProcess },
|
||||||
{ "DefaultActCtx", func_DefaultActCtx },
|
{ "DefaultActCtx", func_DefaultActCtx },
|
||||||
{ "DeviceIoControl", func_DeviceIoControl },
|
{ "DeviceIoControl", func_DeviceIoControl },
|
||||||
{ "dosdev", func_dosdev },
|
{ "dosdev", func_dosdev },
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue