# Testing signals — microsoft/terminal

> Canonical page: https://codevetter.com/unpack/terminal/testing-signals

# Testing signals — microsoft/terminal

Scanned commit 7c92ecd037476f957809d0813b14d8bc44bb071a (2026-09-18). Generated by codevetter codevetter 1.12.0 on 2026-09-22.

Tests are TAEF-based C++ unit tests (TEST_CLASS/TEST_METHOD) plus WexTaef te.exe for the settings model, feature tests, a fuzzing harness, and a small C# WinAppDriver UIA suite. tools/runut.cmd enumerates the unit test DLLs: Conhost.Unit.Tests, TextBuffer.Unit.Tests, Terminal.Core.Unit.Tests, ConParser/ConAdapter.Unit.Tests, Types, til.unit.tests, Terminal.App.Unit.Tests, Control.Unit.Tests, TerminalApp.LocalTests, and SettingsModel.Unit.Tests. CI (Azure Pipelines) gates on code formatting and runs tests per-platform. Coverage is strong for settings serialization, the parser/adapter, buffer, and control core; the Win32 windowing layer (WindowEmperor/AppHost/IslandWindow) and remoting have no dedicated unit tests.
- Unit tests run under TAEF via tools/runut.cmd, which invokes %TAEF% over ten test DLLs and then te.exe for SettingsModel.Unit.Tests; the comment says to keep the list in sync with tools/tests.xml. — [tools/runut.cmd](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/tools/runut.cmd) [tools/tests.xml](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/tools/tests.xml)
- Settings model tests (src/cascadia/UnitTests_SettingsModel) cover deserialization, serialization round-trips, keybindings, profiles, color schemes, themes, new-tab menu, application state, and media resources — e.g. SerializationTests.cpp TEST_METHODs GlobalSettings, Profile, ColorScheme, Actions, CascadiaSettings, RoundtripReloadEnvVars. — [src/cascadia/UnitTests_SettingsModel/SerializationTests.cpp#L37-49](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/UnitTests_SettingsModel/SerializationTests.cpp#L37-L49) [src/cascadia/UnitTests_SettingsModel/DeserializationTests.cpp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/UnitTests_SettingsModel/DeserializationTests.cpp)
- TerminalCore unit tests cover TerminalApiTest, selection, scrolling, screen-size limits, buffer tests, and input; Control tests cover ControlCore and ControlInteractivity with MockConnection/MockControlSettings fakes. — [src/cascadia/UnitTests_TerminalCore/TerminalApiTest.cpp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/UnitTests_TerminalCore/TerminalApiTest.cpp) [src/cascadia/UnitTests_TerminalCore/SelectionTest.cpp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/UnitTests_TerminalCore/SelectionTest.cpp) [src/cascadia/UnitTests_Control/ControlCoreTests.cpp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/UnitTests_Control/ControlCoreTests.cpp) [src/cascadia/UnitTests_Control/MockConnection.h](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/UnitTests_Control/MockConnection.h)
- Conhost-side tests: src/host/ut_host exercises screen buffer, input buffer, history, aliases, VtIo, console arguments; src/til/ut_til covers the til utility library; adapter/parser have ut_adapter and ConParser.Unit.Tests. — [src/host/ut_host/ScreenBufferTests.cpp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/host/ut_host/ScreenBufferTests.cpp) [src/host/ut_host/VtIoTests.cpp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/host/ut_host/VtIoTests.cpp) [src/til/ut_til/BaseTests.cpp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/til/ut_til/BaseTests.cpp) [src/terminal/adapter/ut_adapter](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/terminal/adapter/ut_adapter)
- TerminalApp has 'LocalTests' that run inside a TestHostApp cppwinrt harness (LocalTests_TerminalApp/TestHostApp) rather than the real packaged app, which is why AppLogic::Current()/CurrentAppSettings() have try/catch guards for the non-App case. — [src/cascadia/LocalTests_TerminalApp/TestHostApp](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/LocalTests_TerminalApp/TestHostApp) [src/cascadia/TerminalApp/AppLogic.cpp#L85-120](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/TerminalApp/AppLogic.cpp#L85-L120)
- UI automation tests exist as a C# WinAppDriver suite (src/cascadia/WindowsTerminal_UIATests, SmokeTests.cs, WindowsTerminal.UIA.Tests.csproj) run via tools/runuia.cmd; WinAppDriver itself is vendored under dep/WinAppDriver. — [src/cascadia/WindowsTerminal_UIATests/SmokeTests.cs](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/WindowsTerminal_UIATests/SmokeTests.cs) [tools/runuia.cmd](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/tools/runuia.cmd) [dep/WinAppDriver](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/dep/WinAppDriver)
- Fuzzing is first-class: src/host/ft_fuzzer and src/terminal/parser/ft_fuzzer/ft_fuzzwrapper provide harnesses, 'Fuzzing' is a solution build type in OpenConsole.slnx, and build/pipelines/fuzz.yml + doc/fuzzing.md document the pipeline. — [src/terminal/parser/ft_fuzzer](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/terminal/parser/ft_fuzzer) [src/host/ft_fuzzer](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/host/ft_fuzzer) [build/pipelines/fuzz.yml](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/build/pipelines/fuzz.yml) [OpenConsole.slnx](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/OpenConsole.slnx)
- Feature/integration tests live in ft_* dirs (src/host/ft_host, ft_integrity, ft_uia) run by tools/runft.cmd; additional manual test tools exist under src/tools (vttests, texttests, RenderingTests, echokey). — [src/host/ft_host](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/host/ft_host) [src/host/ft_integrity](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/host/ft_integrity) [tools/runft.cmd](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/tools/runft.cmd) [src/tools/vttests](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/tools/vttests)
- CI runs a dedicated code-format job (templates-v2/job-check-code-format.yml) plus AuditMode and per-platform builds; doc/ changes are path-excluded from CI triggers. — [build/pipelines/ci.yml](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/build/pipelines/ci.yml) [build/pipelines/templates-v2/job-check-code-format.yml](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/build/pipelines/templates-v2/job-check-code-format.yml)
- No unit test project exists for the WindowsTerminal.exe windowing layer (WindowEmperor, AppHost, IslandWindow, handoff serialization) — coverage there relies on the UIA smoke suite; this is an inference from the test-DLL list in runut.cmd. (inferred) — [tools/runut.cmd](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/tools/runut.cmd) [src/cascadia/WindowsTerminal_UIATests/SmokeTests.cs](https://github.com/microsoft/terminal/blob/7c92ecd037476f957809d0813b14d8bc44bb071a/src/cascadia/WindowsTerminal_UIATests/SmokeTests.cs)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
