summaryrefslogtreecommitdiff
path: root/test-cli/test/tests/qbutton.py
blob: 47189243f7aa62a83b63dda06e10251c91d7caa0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from test.helpers.syscmd import SysCommand
import unittest
import uuid
import time

class Qbutton(unittest.TestCase):

    def __init__(self, testname, testfunc, varlist):
        if "gpio" in varlist:
            self.__gpio = varlist["gpio"]
        else:
            raise Exception('gpio param inside Qbutton must be defined')
        if self.__gpio == "SOPA":
            super(Qbutton, self).__init__("buttonSopa")
        else:
            super(Qbutton, self).__init__("buttonGpio")
        self._testMethodDoc = testname

    def buttonGpio(self):
        print("normal-button-test-using-gpio")
        self.fail("failed: GPIO BUTTON FAIL")

    def buttonSopa(self):
        str_cmd = "i2cset -f -y 1 0x2d 0x40 0x31"
        disable_pmic = SysCommand("disable_pmic", str_cmd)
        disable_pmic.execute()
        # BUG: REPEAT THIS EXECUTION TWICE BECAUSE FIRST TIME IT RETURNS AN ERROR
        led_on="echo 1 > /sys/class/leds/red\:usbhost/brightness"
        ledon = SysCommand("led_on", led_on)
        ledon.execute()
        time.sleep(0.1)
        disable_pmic.execute()
        if disable_pmic.execute() == 0:
            str_cmd = "i2cset -f -y 1 0x2d 0x50 0xff"
            reset_button = SysCommand("reset_button", str_cmd)
            if reset_button.execute() == 0:
                str_cmd = "i2cget -f -y 1 0x2d 0x50"
                get_button_val = SysCommand("get_button_val", str_cmd)
                print("\n\t -->  PRESS button for 1 sec (TIMEOUT: 10s) \n")
                timeout = 0
                while timeout < 7200:
                    if get_button_val.execute() == 0:
                        get_button_val.execute()
                        button_value = get_button_val.getOutput()
                        button_value=button_value.decode('ascii').split("x")
                        if int(button_value[1]) == 4:
                            timeout = 7200
                            led_off="echo 0 > /sys/class/leds/red\:usbhost/brightness"
                            ledoff = SysCommand("led_off", led_off)
                            ledoff.execute()
                        time.sleep(0.5)
                        timeout = timeout + 1
                        if timeout==7200 and int(button_value[1]) == 0:
                            self.fail("failed: timeout exceeded")
                    else:
                        timeout = 7200
                        self.fail("failed: not button input")
            else:
                self.fail("failed: could not complete i2c reset button state")
        else:
            self.fail("failed: could not complete i2c disable PMIC")