Rename the "default inheritance" concept to "duplicate".

This commit is contained in:
Ryan Prichard 2015-10-25 20:36:01 -05:00
parent 0b2e0c20ee
commit ff5be78af6
5 changed files with 12 additions and 13 deletions

View File

@ -9,8 +9,8 @@
// There are variations between OS releases, especially with regards to
// how console handles work.
REGISTER(Test_CreateProcess_DefaultInherit, always);
static void Test_CreateProcess_DefaultInherit() {
REGISTER(Test_CreateProcess_Duplicate, always);
static void Test_CreateProcess_Duplicate() {
{
// Base case: a non-inheritable pipe is still inherited.
Worker p;
@ -85,9 +85,8 @@ static void Test_CreateProcess_DefaultInherit() {
{
// Test setting STDIN/STDOUT/STDERR to non-inheritable console handles.
//
// On old releases, default inheritance's handle duplication does not
// apply to console handles, and a console handle is inherited if and
// only if it is inheritable.
// Handle duplication does not apply to traditional console handles,
// and a console handle is inherited if and only if it is inheritable.
//
// On new releases, this will Just Work.
//

View File

@ -6,8 +6,8 @@
// Naturally, this was unintended behavior, and as of Windows 8.1, the handle
// is instead translated to NULL.
REGISTER(Test_CreateProcess_DefaultInherit_PseudoHandleBug, always);
static void Test_CreateProcess_DefaultInherit_PseudoHandleBug() {
REGISTER(Test_CreateProcess_Duplicate_PseudoHandleBug, always);
static void Test_CreateProcess_Duplicate_PseudoHandleBug() {
Worker p;
Handle::invent(GetCurrentProcess(), p).setStdout();
auto c = p.child({ false });

View File

@ -3,8 +3,8 @@
// Windows XP bug: default inheritance doesn't work with the read end
// of a pipe, even if it's inheritable. It works with the write end.
REGISTER(Test_CreateProcess_DefaultInherit_XPPipeBug, always);
static void Test_CreateProcess_DefaultInherit_XPPipeBug() {
REGISTER(Test_CreateProcess_Duplicate_XPPipeBug, always);
static void Test_CreateProcess_Duplicate_XPPipeBug() {
auto check = [](Worker &proc, Handle correct, bool expectBroken) {
CHECK((proc.getStdin().value() == nullptr) == expectBroken);
CHECK((proc.getStdout().value() == nullptr) == expectBroken);

View File

@ -42,10 +42,10 @@ TEST_OBJECTS = \
HANDLETESTS_OBJECTS = \
build/obj/HandleTests/CreateProcess.o \
build/obj/HandleTests/CreateProcess_DefaultInherit.o \
build/obj/HandleTests/CreateProcess_DefaultInherit_PseudoHandleBug.o \
build/obj/HandleTests/CreateProcess_DefaultInherit_XPPipeBug.o \
build/obj/HandleTests/CreateProcess_Detached.o \
build/obj/HandleTests/CreateProcess_Duplicate.o \
build/obj/HandleTests/CreateProcess_Duplicate_PseudoHandleBug.o \
build/obj/HandleTests/CreateProcess_Duplicate_XPPipeBug.o \
build/obj/HandleTests/CreateProcess_NewConsole.o \
build/obj/HandleTests/CreateProcess_UseStdHandles.o \
build/obj/HandleTests/MiscTests.o \

View File

@ -346,7 +346,7 @@ On Windows XP, `CreateProcess` fails to propagate a handle in this situation:
In this situation, Windows XP will set the child process's standard handle to
`NULL`. The write end of the pipe works fine. Passing a `bInheritHandles`
of `TRUE` (and an inheritable pipe handle) works fine. Using
`STARTF_USESTDHANDLES` also works. See `Test_CreateProcess_DefaultInherit`
`STARTF_USESTDHANDLES` also works. See `Test_CreateProcess_Duplicate_XPPipeBug`
in `misc/buffer-tests` for a test case.
### <a name="dupproc">`CreateProcess` duplicates `INVALID_HANDLE_VALUE` until Windows 8.1 [dupproc]</a>