1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.core.decorator.depends import OETestDepends
3from oeqa.core.decorator.data import skipIfQemu
4from oeqa.runtime.decorator.package import OEHasPackage
5
6class USB_HID_Test(OERuntimeTestCase):
7
8    def keyboard_mouse_simulation(self):
9        (status, output) = self.target.run('export DISPLAY=:0 && xdotool key F2 && xdotool mousemove 100 100')
10        return self.assertEqual(status, 0,  msg = 'Failed to simulate keyboard/mouse input event, output : %s' % output)
11
12    def set_suspend(self):
13        (status, output) = self.target.run('sudo rtcwake -m mem -s 10')
14        return self.assertEqual(status, 0,  msg = 'Failed to suspends your system to RAM, output : %s' % output)
15
16    @OEHasPackage(['xdotool'])
17    @skipIfQemu()
18    @OETestDepends(['ssh.SSHTest.test_ssh'])
19    def test_USB_Hid_input(self):
20        self.keyboard_mouse_simulation()
21        self.set_suspend()
22        self.keyboard_mouse_simulation()
23