utils/httpserver.py now depends on bb and multiprocessing.

Fixes oeqa test execution:

https://ledge.validation.linaro.org/scheduler/job/123974

ImportError: Failed to import test module: apt
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/loader.py", line 396, in _find_test_path
    module = self._get_module_from_name(name)
  File "/usr/lib/python3.13/unittest/loader.py", line 339, in 
_get_module_from_name
    __import__(name)
    ~~~~~~~~~~^^^^^^
  File "/lava-downloads/core-image-sato/meta/lib/oeqa/runtime/cases/apt.py", 
line 8, in <module>
    from oeqa.utils.httpserver import HTTPService
  File "/lava-downloads/core-image-sato/meta/lib/oeqa/utils/httpserver.py", 
line 9, in <module>
    from bb import multiprocessing
ModuleNotFoundError: No module named 'bb'

Signed-off-by: Mikko Rapeli <[email protected]>
---
 meta/classes-recipe/testexport.bbclass | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

v2: changed from python import workaround to exporting bitbake/lib in
    testexport.bbclass as requested by Richard

v1: https://lists.openembedded.org/g/openembedded-core/message/226668

diff --git a/meta/classes-recipe/testexport.bbclass 
b/meta/classes-recipe/testexport.bbclass
index 843d777e3b..344ae489b5 100644
--- a/meta/classes-recipe/testexport.bbclass
+++ b/meta/classes-recipe/testexport.bbclass
@@ -84,6 +84,7 @@ def copy_needed_files(d, tc):
     from oeqa.core.utils.test import getSuiteCasesFiles
 
     export_path = d.getVar('TEST_EXPORT_DIR')
+    bitbake_path = d.getVar('BITBAKEPATH')
     corebase_path = d.getVar('COREBASE')
     bblayers = d.getVar('BBLAYERS').split()
 
@@ -91,9 +92,18 @@ def copy_needed_files(d, tc):
     oe.path.remove(export_path)
     bb.utils.mkdirhier(os.path.join(export_path, 'lib', 'oeqa'))
 
-    # The source of files to copy are relative to 'COREBASE' directory
-    # The destination is relative to 'TEST_EXPORT_DIR'
-    # core files/dirs first
+    # The source of files to copy are relative to 'BITBAKEPATH' and 'COREBASE'
+    # directory. The destination is relative to 'TEST_EXPORT_DIR'.
+    # bitbake and core files/dirs first.
+    bitbake_files_to_copy = [os.path.join('..', 'lib')]
+    for f in bitbake_files_to_copy:
+        src = os.path.join(bitbake_path, f)
+        dst = os.path.join(export_path, 'bitbake', f.split('/', 1)[-1])
+        if os.path.isdir(src):
+            oe.path.copytree(src, dst)
+        else:
+            shutil.copy2(src, dst)
+
     core_files_to_copy = [ os.path.join('scripts', 'oe-test'),
                       os.path.join('scripts', 'lib', 'argparse_oe.py'),
                       os.path.join('scripts', 'lib', 'scriptutils.py'), ]
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#226688): 
https://lists.openembedded.org/g/openembedded-core/message/226688
Mute This Topic: https://lists.openembedded.org/mt/116409323/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to