[PATCH] test/py: Always use the current dir as the source tree

Simon Glass sjg at chromium.org
Wed Dec 11 14:18:58 CET 2024


The logic in get_details() retrieves the default source directory from
the Labgrid settings. This is convenient for interactive use, since it
allows pytests to be run from any directory and still find the source
tree.

However, it is not actually correct.

Gitlab sets the current directory to the source tree and expects that to
be used. At present it is ignored. The result is that Gitlab builds
whatever happens to be in the default source directory, ignoring the
tree it is supposed to be building.

Fix this by using the directory of the source tree, always. This is
obtained by looking at the grandparent of the conftest.py file.

Signed-off-by: Simon Glass <sjg at chromium.org>
Reported-by: Tom Rini <trini at konsulko.com>
Fixes: bf89a8f1fc2 ("test: Introduce the concept of a role")
---

 test/py/conftest.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/test/py/conftest.py b/test/py/conftest.py
index d9f074f3817..509d19b449d 100644
--- a/test/py/conftest.py
+++ b/test/py/conftest.py
@@ -144,6 +144,9 @@ def get_details(config):
     # Get a few provided parameters
     build_dir = config.getoption('build_dir')
     build_dir_extra = config.getoption('build_dir_extra')
+
+    # The source tree must be the current directory
+    source_dir = os.path.dirname(os.path.dirname(TEST_PY_DIR))
     if role:
         # When using a role, build_dir and build_dir_extra are normally not set,
         # since they are picked up from Labgrid-sjg via the u-boot-test-getrole
@@ -172,15 +175,13 @@ def get_details(config):
         # Read the build directories here, in case none were provided in the
         # command-line arguments
         (board_type, board_type_extra, default_build_dir,
-         default_build_dir_extra, source_dir) = (vals['board'],
-            vals['board_extra'], vals['build_dir'], vals['build_dir_extra'],
-            vals['source_dir'])
+         default_build_dir_extra) = (vals['board'],
+            vals['board_extra'], vals['build_dir'], vals['build_dir_extra'])
     else:
         board_type = config.getoption('board_type')
         board_type_extra = config.getoption('board_type_extra')
         board_identity = config.getoption('board_identity')
 
-        source_dir = os.path.dirname(os.path.dirname(TEST_PY_DIR))
         default_build_dir = source_dir + '/build-' + board_type
         default_build_dir_extra = source_dir + '/build-' + board_type_extra
 
-- 
2.34.1



More information about the U-Boot mailing list