> 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]> > --- > v2: > adjust Python unit test > --- > cmd/button.c | 4 ++-- > 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 84ad1653c7..64c5a8fa04 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 eadd9dd613..3b7f148c8f 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) > -- > 2.28.0

