u-boot/test/py/tests/test_reset.py
Simon Glass 752c376987 test/py: Shorten u_boot_console
This fixture name is quite long and results in lots of verbose code.
We know this is U-Boot so the 'u_boot_' part is not necessary.

But it is also a bit of a misnomer, since it provides access to all the
information available to tests. It is not just the console.

It would be too confusing to use con as it would be confused with
config and it is probably too short.

So shorten it to 'ubman'.

Signed-off-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/CAFLszTgPa4aT_J9h9pqeTtLCVn4x2JvLWRcWRD8NaN3uoSAtyA@mail.gmail.com/
2025-03-15 10:38:38 +00:00

63 lines
2 KiB
Python

# SPDX-License-Identifier: GPL-2.0
# (C) Copyright 2023, Advanced Micro Devices, Inc.
"""
Note: This test doesn't rely on boardenv_* configuration value but they can
change test behavior.
For example:
# Setup env__reset_test_skip to True if reset test is not possible or desired
# and should be skipped.
env__reset_test_skip = True
# Setup env__reset_test to set the bootmode if 'modeboot' u-boot environment
# variable is not set. Test will be skipped if bootmode is not set in both
# places i.e, boardenv and modeboot u-boot environment variable
env__reset_test = {
'bootmode': 'qspiboot',
}
# This test will be also skipped if the bootmode is detected to JTAG.
"""
import pytest
import test_000_version
def setup_reset_env(ubman):
if ubman.config.env.get('env__reset_test_skip', False):
pytest.skip('reset test is not enabled')
output = ubman.run_command('echo $modeboot')
if output:
bootmode = output
else:
f = ubman.config.env.get('env__reset_test', None)
if not f:
pytest.skip('bootmode cannot be determined')
bootmode = f.get('bootmode', 'jtagboot')
if 'jtag' in bootmode:
pytest.skip('skipping reset test due to jtag bootmode')
@pytest.mark.buildconfigspec('hush_parser')
def test_reset(ubman):
"""Test the reset command in non-JTAG bootmode.
It does COLD reset, which resets CPU, DDR and peripherals
"""
setup_reset_env(ubman)
ubman.run_command('reset', wait_for_reboot=True)
# Checks the u-boot command prompt's functionality after reset
test_000_version.test_version(ubman)
@pytest.mark.buildconfigspec('hush_parser')
def test_reset_w(ubman):
"""Test the reset -w command in non-JTAG bootmode.
It does WARM reset, which resets CPU but keep DDR/peripherals active.
"""
setup_reset_env(ubman)
ubman.run_command('reset -w', wait_for_reboot=True)
# Checks the u-boot command prompt's functionality after reset
test_000_version.test_version(ubman)