diff options
| author | Heinrich Schuchardt <[email protected]> | 2020-09-14 12:50:56 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2020-10-14 11:16:34 -0400 |
| commit | a6bfd71a96201127836d59736abcb54dc2d5e1a5 (patch) | |
| tree | 48e0352de56eeffb6876ae884e4be7a37ddd757a | |
| parent | 7cd96a47281145aca4f9c8960a0a2e185b8bd70c (diff) | |
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 <[email protected]>
Reviewed-by: Philippe Reynes <[email protected]>
| -rw-r--r-- | cmd/button.c | 4 | ||||
| -rw-r--r-- | test/py/tests/test_button.py | 34 |
2 files changed, 28 insertions, 10 deletions
diff --git a/cmd/button.c b/cmd/button.c index 84ad1653c7b..64c5a8fa046 100644 --- a/cmd/button.c +++ b/cmd/button.c @@ -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" diff --git a/test/py/tests/test_button.py b/test/py/tests/test_button.py index eadd9dd6135..3b7f148c8fc 100644 --- a/test/py/tests/test_button.py +++ b/test/py/tests/test_button.py @@ -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) + [email protected]('sandbox') [email protected]('cmd_button') [email protected]('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) |
