terminal/src/host/globals.h
Mike Griese 685720a767
Add just the test infrastructure bits from #4354 (#4382)
## Summary of the Pull Request

#4354 is a pretty complicated PR. It's got a bunch of conpty changes, but what it also has was some critical improvements to the roundtrip test suite. I'm working on some other bugfixes in the same area currently, and need these tests enhancements in those branches _now_. The rest of #4354 is complex enough that I don't trust it will get merged soon (if ever). However, these fixes _should_ be in regardless.

## PR Checklist
* [x] Taken directly from #4354
* [x] I work here
* [x] Tests added/passed
* [n/a] Requires documentation to be updated

## Detailed Description of the Pull Request / Additional comments

This is four main changes:
* Enable conpty to be fully enabled in unittests. Just setting up a VT renderer isn't enough to trick the host into being in conpty mode - it also needs to have some other flags set.
* Some minor changes to `CommonState` to better configure the common test state for conpty
* Move some of the verify helpers from `ConptyRoundtripTests` into their own helper class, to be shared in multiple tests
* Add a `TerminalBufferTests` class, for testing the Terminal buffer directly (without conpty).

This change is really easier than 
![image](https://user-images.githubusercontent.com/18356694/73278427-2d1b4480-41b1-11ea-9bbe-70671c557f49.png)
would suggest, I promise.
2020-01-29 16:33:06 +00:00

79 lines
1.7 KiB
C++

/*++
Copyright (c) Microsoft Corporation
Licensed under the MIT license.
Module Name:
- globals.h
Abstract:
- This module contains the global variables used by the console server DLL.
Author:
- Jerry Shea (jerrysh) 21-Sep-1993
Revision History:
- Modified to reduce globals over Console V2 project (MiNiksa/PaulCam, 2014)
--*/
#pragma once
#include "selection.hpp"
#include "server.h"
#include "ConsoleArguments.hpp"
#include "ApiRoutines.h"
#include "..\renderer\inc\IRenderData.hpp"
#include "..\renderer\inc\IRenderEngine.hpp"
#include "..\renderer\inc\IRenderer.hpp"
#include "..\renderer\inc\IFontDefaultList.hpp"
#include "..\server\DeviceComm.h"
#include <TraceLoggingProvider.h>
#include <winmeta.h>
TRACELOGGING_DECLARE_PROVIDER(g_hConhostV2EventTraceProvider);
class Globals
{
public:
UINT uiOEMCP = GetOEMCP();
UINT uiWindowsCP = GetACP();
HINSTANCE hInstance;
UINT uiDialogBoxCount;
ConsoleArguments launchArgs;
CONSOLE_INFORMATION& getConsoleInformation();
DeviceComm* pDeviceComm;
wil::unique_event_nothrow hInputEvent;
SHORT sVerticalScrollSize;
SHORT sHorizontalScrollSize;
int dpi = USER_DEFAULT_SCREEN_DPI;
ULONG cursorPixelWidth = 1;
NTSTATUS ntstatusConsoleInputInitStatus;
wil::unique_event_nothrow hConsoleInputInitEvent;
DWORD dwInputThreadId;
std::vector<wchar_t> WordDelimiters;
Microsoft::Console::Render::IRenderer* pRender;
Microsoft::Console::Render::IFontDefaultList* pFontDefaultList;
bool IsHeadless() const;
ApiRoutines api;
#ifdef UNIT_TESTING
void EnableConptyModeForTests();
#endif
private:
CONSOLE_INFORMATION ciConsoleInformation;
};