test.py: check ubconfig exists before using it

Set ubconfig to None and add a check in the show_timings() function of
test/py/test.py to ensure that the global ubconfig variable was actually
initialized before access attributes.

If tests fail early, e.g. because --build failed, ubconfig may not have
been initialized yet and results in an exception in an atexit handler.
Adding this check avoids unnecessary noise in the output.

    Exception ignored in atexit callback: <function cleanup at 0x7de475ea6b60>
    Traceback (most recent call last):
    File "u-boot/test/py/conftest.py", line 669, in cleanup
        show_timings()
    File "u-boot/test/py/conftest.py", line 616, in show_timings
        if ubconfig.timing:
        ^^^^^^^^
    NameError: name 'ubconfig' is not defined

Tested-by: Mattijs Korpershoek <mkorpershoek@kernel.org> # sandbox
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
Signed-off-by: David Lechner <dlechner@baylibre.com>
This commit is contained in:
David Lechner
2026-01-05 10:49:13 -06:00
committed by Tom Rini
parent 2333d446b7
commit 637942ac8e

View File

@@ -28,9 +28,10 @@ import sys
from spawn import BootFail, Timeout, Unexpected, handle_exception
import time
# Globals: The HTML log file, and the top-level fixture
# Globals: The HTML log file, the top-level fixture and the config container
log = None
ubman_fix = None
ubconfig = None
TEST_PY_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -613,7 +614,7 @@ def show_timings():
if too_long:
show_bar(f'>{get_time_delta(max_dur)}', too_long_msecs, too_long)
log.info(buf.getvalue())
if ubconfig.timing:
if ubconfig and ubconfig.timing:
print(buf.getvalue(), end='')