diff options
| author | Stephen Tozer <stephen.tozer@sony.com> | 2024-10-10 16:53:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-10 16:53:36 +0100 |
| commit | 23309d7d9553af69b2912a159bc2e488acf69255 (patch) | |
| tree | 7a85645747422d68060675fa60da333e69b558eb /cross-project-tests | |
| parent | f5aec03f6dd2f92590ecec9e3419b38b11d8476e (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.py | 4 | ||||
| -rw-r--r-- | cross-project-tests/debuginfo-tests/dexter/dex/utils/Imports.py | 13 |
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) |
