38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
# 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)
 |