提交 a6bfd71a 编写于 作者: H Heinrich Schuchardt 提交者: Tom Rini

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: NHeinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: NPhilippe Reynes <philippe.reynes@softathome.com>
上级 7cd96a47
......@@ -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)
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(expected_response in response)
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)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册