microsoft / microsoft/terminal
`TerminalInputModifierKeyTests` Don't work right on non-EN-US keyboard layouts
Nobody has claimed this yet.
- 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 ofTabTestsare blocked, but the rest of the tests I would usually expected to pass.
In case you care about the
TerminalInputModifierKeyTeststoo, I think those are failing for me because I have a UK keyboard - the test dies on theVK_OEM_3key. 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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