2 * Demonstrates a conhost hang that occurs when widening the console buffer
3 * while selection is in progress. The problem affects the new Windows 10
4 * console, not the "legacy" console mode that Windows 10 also includes.
8 * - conhost.exe version 10.0.10240.16384
9 * - ConhostV1.dll version 10.0.10240.16384
10 * - ConhostV2.dll version 10.0.10240.16391
18 #include "TestUtil.cc"
20 const int SC_CONSOLE_MARK = 0xFFF2;
21 const int SC_CONSOLE_SELECT_ALL = 0xFFF5;
23 int main(int argc, char *argv[]) {
25 startChildProcess(L"CHILD");
29 setWindowPos(0, 0, 1, 1);
30 setBufferSize(80, 25);
31 setWindowPos(0, 0, 80, 25);
35 SendMessage(GetConsoleWindow(), WM_SYSCOMMAND, SC_CONSOLE_SELECT_ALL, 0);
38 // This API call does not return. In the console window, the "Select All"
39 // operation appears to end. The console window becomes non-responsive,
40 // and the conhost.exe process must be killed from the Task Manager.
41 // (Killing this test program or closing the console window is not
44 // The same hang occurs whether line resizing is off or on. It happens
45 // with both "Mark" and "Select All". Calling setBufferSize with the
46 // existing buffer size does not hang, but calling it with only a changed
47 // buffer height *does* hang. Calling setWindowPos does not hang.
48 setBufferSize(120, 25);