static void testB()

in misc/ScreenBufferTest.cc [402:462]


static void testB(int argc, char *argv[]) {
    if (!strcmp(argv[1], "B")) {
        startChildProcess(L"B:parent");
        return;
    }

    if (!strcmp(argv[1], "B:parent")) {
        g_prefix = "parent: ";
        startChildInSameConsole(L"B:child");
        writeTest("<-- origBuffer -->");
        HANDLE origBuffer = GetStdHandle(STD_OUTPUT_HANDLE);

        //
        // Step 1: Create the new buffer and make it active.
        //
        trace("%s----", g_prefix);
        HANDLE newBuffer = createBuffer();
        setConsoleActiveScreenBuffer(newBuffer);
        writeTest(newBuffer, "<-- newBuffer -->");

        //
        // Step 4: Attempt to write again to the new buffer.
        //
        Sleep(9000);
        trace("%s----", g_prefix);
        writeTest(newBuffer, "TEST PASSED!");

        //
        // Step 5: Switch back to the original buffer.
        //
        Sleep(3000);
        trace("%s----", g_prefix);
        setConsoleActiveScreenBuffer(origBuffer);
        closeHandle(newBuffer);
        writeTest(origBuffer, "writing to the initial buffer");

        Sleep(60000);
        return;
    }

    if (!strcmp(argv[1], "B:child")) {
        g_prefix = "child: ";
        Sleep(3000);
        trace("%s----", g_prefix);

        //
        // Step 2: Open the newly active buffer and write to it.
        //
        HANDLE newBuffer = openConout();
        writeTest(newBuffer, "writing to newBuffer");

        //
        // Step 3: Close the newly active buffer.
        //
        Sleep(3000);
        closeHandle(newBuffer);

        Sleep(60000);
        return;
    }
}