Skip to content

Test failure: Symbols tests #14342

@feerrenrut

Description

@feerrenrut

Link to build:

https://ci.appveyor.com/project/NVAccess/nvda/builds/45276333/tests

System test logs:

alpha27093 commit f6745056-SymbolsTestFailures-systemTestResult.zip

Failures:

  • Robot.symbolPronunciationTests.moveByWord
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.moveByCharacter
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.delayedCharacterDescriptions
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.selectionByWord
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.selectionByLine
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.tableHeaderSymbols
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.selectionByCharacter
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.symbolInSpeechUI
    • Error message: Didn't return to the first item with left arrow
  • Robot.symbolPronunciationTests.moveByLine
    • Error message: Didn't return to the first item with left arrow

Investigation:

  • Since there are multiple failures with the same error message it is best to start by investigating the first. From the robot framework log, this was: symbolPronunciationTests.symbolInSpeechUI
  • Screenshot shows the task switcher active, with chrome, docker desktop user survey, notepad and appveyor build agent in that order.
  • Robot log shows that the task switcher was opened, then the left arrow was pressed.
  • The "first item speech" was: "Welcome to Chrome Google Chrome column 1"
  • The test then fails with "Didn't return to the first item with left arrow"
  • Looking at the logic in tests.system.libraries.WindowsLib.taskSwitchToItemMatching the pattern used is firstItemPattern = _re.compile(r"row 1\s+column 1")

Note:

  • The actual speech for the first item includes the column number but not the row number.
  • Only changed row/columns are reported.
  • This pattern is required to detect when there is only one item in the task switcher.
  • Looking at the logic in taskSwitchToItemMatching, the title of the item at column 2 could be considered before moving on.
  • It isn't clear whether it will always be faster to move forward through the list or backwards:
    • In cases like this, notepad is the third item, forwards would be faster.
    • Hypothetical case (not yet confirmed to be fixed) for chrome: Already the foreground, but NVDA needs another foreground event to inject. Going backwards would be faster.
  • The tests should also cater to a prior test failing and leaving the task switcher open, in this case a subsequent press of control+alt+tab will move the selection forward, to column 3.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions