]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
test/py: Always use the current dir as the source tree
authorSimon Glass <sjg@chromium.org>
Wed, 11 Dec 2024 13:18:58 +0000 (06:18 -0700)
committerTom Rini <trini@konsulko.com>
Tue, 17 Dec 2024 15:11:43 +0000 (09:11 -0600)
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@chromium.org>
Reported-by: Tom Rini <trini@konsulko.com>
Fixes: bf89a8f1fc2 ("test: Introduce the concept of a role")
Tested-by: Tom Rini <trini@konsulko.com>
test/py/conftest.py

index d9f074f3817a8330212d0afafa8f7de43a9fc5ff..509d19b449d6d9f7424cce3ff53922cbe33bb681 100644 (file)
@@ -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