[PATCH v3 1/3] test.py: check ubconfig exists before using it
David Lechner
dlechner at baylibre.com
Mon Jan 5 17:49:13 CET 2026
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 at kernel.org> # sandbox
Reviewed-by: Mattijs Korpershoek <mkorpershoek at kernel.org>
Signed-off-by: David Lechner <dlechner at baylibre.com>
---
v3 changes:
- Drop `is not None`
v2 changes:
- Set to None and check for not None instead of using 'in globals()'
---
test/py/conftest.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/test/py/conftest.py b/test/py/conftest.py
index 8ce680a92a0..37d9347a85f 100644
--- a/test/py/conftest.py
+++ b/test/py/conftest.py
@@ -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='')
--
2.43.0
More information about the U-Boot
mailing list