microsoft / microsoft/terminal

`TerminalInputModifierKeyTests` Don't work right on non-EN-US keyboard layouts

Open
#3,543 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-CodeHealth Issue-Bug Product-Conhost
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

@j4james:

Windows Terminal version (if applicable): commit e2994ff

I'm used to having a few failures in the TerminalInputModifierKeyTests, and I know a couple of TabTests are blocked, but the rest of the tests I would usually expected to pass.

In case you care about the TerminalInputModifierKeyTests too, I think those are failing for me because I have a UK keyboard - the test dies on the VK_OEM_3 key. Here's a section of the test output where it fails:

Testing Key 0xc0
Expected, Buffer = "", ""
Verify: SUCCEEDED(StringCchLengthW(s_pwszInputExpected, STRSAFE_MAX_CCH, &cInputExpected))
Error: Verify: AreEqual(cInputExpected, records.size()): Verify expected and actual input array lengths matched. - Values (0, 1) [File: C:\Users\James\CPP\terminal\src\terminal\adapter\ut_adapter\inputTest.cpp, Function: Microsoft::Console::VirtualTerminal::InputTest::s_TerminalInputTestCallback, Line: 87]
TAEF: A crash with exception code 0xC0000409 occurred in module "ConAdapter.Unit.Tests.dll" in process "te.processhost.exe" (pid:13732).

This could be resolved by simply skipping that key the same way we skip VK_OEM_2, but it wouldn't surprise me if other international keyboards failed on other keys as well. I've been happy to accept that those are just expected failures for my particular setup.

(moved from #3536 )

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with TerminalInputModifierKeyTests and the failing callback in inputTest.cpp, focusing on the VK_OEM_3 failure and the existing VK_OEM_2 skip. Check whether other modifier-key cases depend on keyboard layout, then run the relevant tests with a non-EN-US layout. Done means the tests no longer fail unexpectedly on supported international layouts.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.