u-boot/test/py/tests/test_bootmenu.py
Heinrich Schuchardt 018b993bba test: restore timeout after bootmenu unit test
In the bootmenu unit test the console timeout is set to 500 ms.
Other tests rely on the original timeout. Ensure that the original value
is restored.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-05-28 10:59:27 +02:00

46 lines
2.2 KiB
Python

# 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
"""
with u_boot_console.temporary_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')
u_boot_console.run_command('setenv bootmenu_1')
u_boot_console.run_command('setenv bootmenu_2')