cmd/button: return button status
To make the button command useful in a shell script it should return the status of the button: * 0 (true) - pressed, on * 1 (false) - not pressed, off The button command takes only one argument. Correct maxargs. Adjust the Python unit test. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
This commit is contained in:
committed by
Tom Rini
parent
7cd96a4728
commit
a6bfd71a96
@@ -4,16 +4,34 @@ import pytest
|
||||
|
||||
@pytest.mark.boardspec('sandbox')
|
||||
@pytest.mark.buildconfigspec('cmd_button')
|
||||
def test_button_exit_statuses(u_boot_console):
|
||||
"""Test that non-input button commands correctly return the command
|
||||
success/failure status."""
|
||||
def test_button_list(u_boot_console):
|
||||
"""Test listing buttons"""
|
||||
|
||||
expected_response = 'rc:0'
|
||||
response = u_boot_console.run_command('button list; echo rc:$?')
|
||||
assert(expected_response in response)
|
||||
response = u_boot_console.run_command('button button1; echo rc:$?')
|
||||
assert(expected_response in response)
|
||||
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');
|
||||
response = u_boot_console.run_command('button button1; echo rc:$?')
|
||||
assert('off' in response)
|
||||
assert('rc:1' in response)
|
||||
|
||||
expected_response = 'rc:1'
|
||||
response = u_boot_console.run_command('button nonexistent-button; echo rc:$?')
|
||||
assert(expected_response in response)
|
||||
assert('not found' in response)
|
||||
assert('rc:1' in response)
|
||||
|
||||
Reference in New Issue
Block a user