summaryrefslogtreecommitdiff
path: root/cross-project-tests
diff options
context:
space:
mode:
authorStephen Tozer <stephen.tozer@sony.com>2024-10-10 16:53:36 +0100
committerGitHub <noreply@github.com>2024-10-10 16:53:36 +0100
commit23309d7d9553af69b2912a159bc2e488acf69255 (patch)
tree7a85645747422d68060675fa60da333e69b558eb /cross-project-tests
parentf5aec03f6dd2f92590ecec9e3419b38b11d8476e (diff)
[Dexter] Set up ComInterface module to be imported correctly (#111850)users/spencerabson/aarch64-2024-upstream
Fixes issue added by: https://github.com/llvm/llvm-project/pull/111833 Following the previous commit that changed how Dexter imports modules, the ComInterface module import became broken. This is because it had a different directory structure to other modules, where we want to import single file rather than a dir containing a __init__.py. For this case, an optional extra arg has been added to load_module allowing a filename to be specified, letting us import ComInterface.py directly and fixing the issue.
Diffstat (limited to 'cross-project-tests')
-rw-r--r--cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py4
-rw-r--r--cross-project-tests/debuginfo-tests/dexter/dex/utils/Imports.py13
2 files changed, 12 insertions, 5 deletions
diff --git a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py
index 7cb56ec0c25a..a6752274efac 100644
--- a/cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py
+++ b/cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py
@@ -24,7 +24,9 @@ from dex.utils.ReturnCode import ReturnCode
def _load_com_module():
try:
return load_module(
- "ComInterface", os.path.join(os.path.dirname(__file__), "windows")
+ "ComInterface",
+ os.path.join(os.path.dirname(__file__), "windows"),
+ "ComInterface.py",
)
except ImportError as e:
raise LoadDebuggerException(e, sys.exc_info())
diff --git a/cross-project-tests/debuginfo-tests/dexter/dex/utils/Imports.py b/cross-project-tests/debuginfo-tests/dexter/dex/utils/Imports.py
index ea052c21a184..cd184f9d20ed 100644
--- a/cross-project-tests/debuginfo-tests/dexter/dex/utils/Imports.py
+++ b/cross-project-tests/debuginfo-tests/dexter/dex/utils/Imports.py
@@ -1,12 +1,17 @@
-import importlib
+import importlib.util
import os
import sys
-def load_module(name, path):
- spec = importlib.util.spec_from_file_location(
- name, os.path.join(path, name, "__init__.py")
+def load_module(name, path, mod_file="__init__.py"):
+ # The module is either defined by a directory, in which case we search for
+ # `path/name/__init__.py`, or it is a single file at `path/mod_file`.
+ mod_path = (
+ os.path.join(path, name, mod_file)
+ if mod_file == "__init__.py"
+ else os.path.join(path, mod_file)
)
+ spec = importlib.util.spec_from_file_location(name, mod_path)
module = importlib.util.module_from_spec(spec)
sys.modules[name] = module
spec.loader.exec_module(module)