canonical / checkbox

Checkbox is a testing framework used to validate device compatibility with Ubuntu Linux. It’s the testing tool developed for the purposes of the Ubuntu Certification program.
https://checkbox.readthedocs.io
GNU General Public License v3.0
33 stars 49 forks source link

Add the keyboard mouse random executable (New) #1582

Open GabrielChenCC opened 2 weeks ago

GabrielChenCC commented 2 weeks ago

Description

We discovered this problem during last year's testing: https://bugs.launchpad.net/sutton/+bug/2045249 . We found this bug by manually coordinating the random use of the mouse and keyboard during screen rotation. Now I use this C code to implement the random automatic behavior of the mouse and keyboard. It can be used in conjunction with another PR https://github.com/canonical/checkbox/pull/1576 submitted by my colleague Hanhsuan to complete the random movement of the mouse and keyboard at different resolutions while rotating the screen.

Note: The keyboard and mouse random C code needs to execute via 'sudo'. We have also tried to use Python's uinput to avoid using sudo permissions, but by looking up the document https://python-evdev.readthedocs.io/en/latest/tutorial.html#injecting-input, Python cannot avoid sudo either, and C code is available for the rotation test case without introducing external dependence. So I choose C code, it is more suitable for the rotation test case.

Resolved issues

https://warthogs.atlassian.net/browse/OEMQA-5102 https://bugs.launchpad.net/sutton/+bug/2045249

Documentation

Tests

$ gcc keyboard-mouse_test.c -o demo $ sudo ./demo The demo file works as design

Add keyboard-mouse_test.c to Makefile and compile without any errors

pieqq commented 2 weeks ago

I think your PR is missing the C code files?