mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-13 20:36:02 +01:00
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:
parent
7cd96a4728
commit
a6bfd71a96
@ -75,11 +75,11 @@ int do_button(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
||||
|
||||
ret = show_button_state(dev);
|
||||
|
||||
return 0;
|
||||
return !ret;
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
button, 4, 1, do_button,
|
||||
button, 2, 1, do_button,
|
||||
"manage buttons",
|
||||
"<button_label> \tGet button state\n"
|
||||
"button list\t\tShow a list of buttons"
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user