2020-07-24 16:19:51 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
@pytest.mark.boardspec('sandbox')
|
|
|
|
@pytest.mark.buildconfigspec('cmd_button')
|
2020-09-14 10:50:56 +00:00
|
|
|
def test_button_list(u_boot_console):
|
|
|
|
"""Test listing buttons"""
|
2020-07-24 16:19:51 +00:00
|
|
|
|
|
|
|
response = u_boot_console.run_command('button list; echo rc:$?')
|
2020-09-14 10:50:56 +00:00
|
|
|
assert('button1' in response)
|
|
|
|
assert('button2' in response)
|
|
|
|
assert('rc:0' in response)
|
|
|
|
|
|
|
|
@pytest.mark.boardspec('sandbox')
|
|
|
|
@pytest.mark.buildconfigspec('cmd_button')
|
|
|
|
@pytest.mark.buildconfigspec('cmd_gpio')
|
|
|
|
def test_button_return_code(u_boot_console):
|
|
|
|
"""Test correct reporting of the button status
|
|
|
|
|
|
|
|
The sandbox gpio driver reports the last output value as input value.
|
|
|
|
We can use this in our test to emulate different input statuses.
|
|
|
|
"""
|
|
|
|
|
|
|
|
u_boot_console.run_command('gpio set a3; gpio input a3');
|
|
|
|
response = u_boot_console.run_command('button button1; echo rc:$?')
|
|
|
|
assert('on' in response)
|
|
|
|
assert('rc:0' in response)
|
|
|
|
|
|
|
|
u_boot_console.run_command('gpio clear a3; gpio input a3');
|
2020-09-14 10:50:54 +00:00
|
|
|
response = u_boot_console.run_command('button button1; echo rc:$?')
|
2020-09-14 10:50:56 +00:00
|
|
|
assert('off' in response)
|
|
|
|
assert('rc:1' in response)
|
2020-07-24 16:19:51 +00:00
|
|
|
|
|
|
|
response = u_boot_console.run_command('button nonexistent-button; echo rc:$?')
|
2020-09-14 10:50:56 +00:00
|
|
|
assert('not found' in response)
|
|
|
|
assert('rc:1' in response)
|