Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • T tails
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 974
    • Issues 974
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 28
    • Merge requests 28
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • tails
  • tails
  • Issues
  • #19237
Closed
Open
Issue created Oct 26, 2022 by intrigeri@intrigeriMaintainer0 of 1 checklist item completed0/1 checklist item

Keyboard input in the test suite is flaky on Wayland

The following discussion from !838 (merged) should be addressed:

  • @intrigeri started a discussion: (+4 comments)

    • test suite does not find the DuckDuckGo search prompt, while it's visible on the failure screenshot

The code that's involved is:

  • our own Screen#press calls https://libvirt.org/ruby/api/Libvirt/Domain.html#method-i-send_key
  • https://libvirt.org/ruby/api/Libvirt/Domain.html#method-i-send_key calls https://www.libvirt.org/html/libvirt-libvirt-domain.html#virDomainSendKey
  • https://www.libvirt.org/html/libvirt-libvirt-domain.html#virDomainSendKey calls conn->driver->domainSendKey, which in our case is qemuDomainSendKey (https://sources.debian.org/src/libvirt/8.10.0-1/src/qemu/qemu_driver.c/?hl=20813#L20813)
  • qemuDomainSendKey → qemuMonitorSendKey → qemuMonitorJSONSendKey, which calls qemuMonitorJSONMakeCommand with the send-key argument, and passes its result to qemuMonitorJSONCommand; all this interacts with the "QEMU monitor console"
  • eventually we end up in hmp_sendkey → qmp_sendkey → qemu_input_event_send_key_delay, which uses kbd_default_delay_ms = 10 as the default hold time

Note: the doc says the default hold time is 100 ms, which was indeed the case initially, but since https://salsa.debian.org/qemu-team/qemu/-/commit/2e377f1730d06deafb3e3ef6cf88792de4a6f4df it uses kbd_default_delay_ms, which has been 10 ms since it was introduced in 2014.

Edited Dec 09, 2022 by intrigeri
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking