test: unit test for bootmenu
Provide a unit test for the bootmenu command Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
parent
29a02185cd
commit
f2c534d354
@ -6,6 +6,7 @@ test_tests_test_android_test_ab.py 6.50
|
||||
test_tests_test_android_test_abootimg.py 6.09
|
||||
test_tests_test_android_test_avb.py 5.52
|
||||
test_tests_test_bind.py -2.99
|
||||
test_tests_test_bootmenu.py 10.00
|
||||
test_tests_test_button.py 3.33
|
||||
test_tests_test_dfu.py 5.45
|
||||
test_tests_test_dm.py 9.52
|
||||
|
48
test/py/tests/test_bootmenu.py
Normal file
48
test/py/tests/test_bootmenu.py
Normal file
@ -0,0 +1,48 @@
|
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
"""Test bootmenu"""
|
||||
|
||||
import pytest
|
||||
|
||||
@pytest.mark.buildconfigspec('cmd_bootmenu')
|
||||
def test_bootmenu(u_boot_console):
|
||||
"""Test bootmenu
|
||||
|
||||
u_boot_console -- U-Boot console
|
||||
"""
|
||||
|
||||
u_boot_console.p.timeout = 500
|
||||
u_boot_console.run_command('setenv bootmenu_default 1')
|
||||
u_boot_console.run_command('setenv bootmenu_0 test 1=echo ok 1')
|
||||
u_boot_console.run_command('setenv bootmenu_1 test 2=echo ok 2')
|
||||
u_boot_console.run_command('setenv bootmenu_2 test 3=echo ok 3')
|
||||
u_boot_console.run_command('bootmenu 2', wait_for_prompt=False)
|
||||
for i in ('U-Boot Boot Menu', 'test 1', 'test 2', 'test 3', 'autoboot'):
|
||||
u_boot_console.p.expect([i])
|
||||
# Press enter key to execute default entry
|
||||
response = u_boot_console.run_command(cmd='\x0d', wait_for_echo=False, send_nl=False)
|
||||
assert 'ok 2' in response
|
||||
u_boot_console.run_command('bootmenu 2', wait_for_prompt=False)
|
||||
u_boot_console.p.expect(['autoboot'])
|
||||
# Press up key to select prior entry followed by the enter key
|
||||
response = u_boot_console.run_command(cmd='\x1b\x5b\x41\x0d', wait_for_echo=False,
|
||||
send_nl=False)
|
||||
assert 'ok 1' in response
|
||||
u_boot_console.run_command('bootmenu 2', wait_for_prompt=False)
|
||||
u_boot_console.p.expect(['autoboot'])
|
||||
# Press down key to select next entry followed by the enter key
|
||||
response = u_boot_console.run_command(cmd='\x1b\x5b\x42\x0d', wait_for_echo=False,
|
||||
send_nl=False)
|
||||
assert 'ok 3' in response
|
||||
u_boot_console.run_command('bootmenu 2; echo rc:$?', wait_for_prompt=False)
|
||||
u_boot_console.p.expect(['autoboot'])
|
||||
# Press the escape key
|
||||
response = u_boot_console.run_command(cmd='\x1b', wait_for_echo=False, send_nl=False)
|
||||
assert 'ok' not in response
|
||||
assert 'rc:0' in response
|
||||
u_boot_console.run_command('setenv bootmenu_default')
|
||||
u_boot_console.run_command('setenv bootmenu_0')
|
||||
# Without bootmenu_0 no menu should be shown.
|
||||
u_boot_console.run_command('bootmenu 2')
|
||||
u_boot_console.run_command('setenv bootmenu_1')
|
||||
u_boot_console.run_command('setenv bootmenu_2')
|
Loading…
Reference in New Issue
Block a user