aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/test/py/tests/test_button.py
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/test/py/tests/test_button.py')
-rw-r--r--roms/u-boot/test/py/tests/test_button.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/roms/u-boot/test/py/tests/test_button.py b/roms/u-boot/test/py/tests/test_button.py
new file mode 100644
index 000000000..3b7f148c8
--- /dev/null
+++ b/roms/u-boot/test/py/tests/test_button.py
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: GPL-2.0+
+
+import pytest
+
+@pytest.mark.boardspec('sandbox')
+@pytest.mark.buildconfigspec('cmd_button')
+def test_button_list(u_boot_console):
+ """Test listing buttons"""
+
+ response = u_boot_console.run_command('button list; echo rc:$?')
+ 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)
+
+ response = u_boot_console.run_command('button nonexistent-button; echo rc:$?')
+ assert('not found' in response)
+ assert('rc:1' in response)