Zachary Turner | c22811b | 2015-11-07 01:08:25 | [diff] [blame] | 1 | import inspect |
| 2 | import os |
| 3 | import sys |
| 4 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 | [diff] [blame] | 5 | |
Zachary Turner | c22811b | 2015-11-07 01:08:25 | [diff] [blame] | 6 | def find_lldb_root(): |
| 7 | lldb_root = os.path.dirname(inspect.getfile(inspect.currentframe())) |
| 8 | while True: |
Pavel Labath | 67f6d84 | 2019-02-07 14:03:43 | [diff] [blame] | 9 | parent = os.path.dirname(lldb_root) |
David Spickett | 602e47c | 2023-09-14 07:54:02 | [diff] [blame] | 10 | if parent == lldb_root: # dirname('/') == '/' |
Jordan Rupprecht | cf3f100 | 2020-07-15 16:16:30 | [diff] [blame] | 11 | raise Exception("use_lldb_suite_root.py not found") |
Pavel Labath | 67f6d84 | 2019-02-07 14:03:43 | [diff] [blame] | 12 | lldb_root = parent |
Zachary Turner | c22811b | 2015-11-07 01:08:25 | [diff] [blame] | 13 | |
Zachary Turner | 4c15269 | 2015-11-20 17:40:57 | [diff] [blame] | 14 | test_path = os.path.join(lldb_root, "use_lldb_suite_root.py") |
Zachary Turner | c22811b | 2015-11-07 01:08:25 | [diff] [blame] | 15 | if os.path.isfile(test_path): |
| 16 | return lldb_root |
Zachary Turner | c22811b | 2015-11-07 01:08:25 | [diff] [blame] | 17 | |
David Spickett | 602e47c | 2023-09-14 07:54:02 | [diff] [blame] | 18 | |
Zachary Turner | c22811b | 2015-11-07 01:08:25 | [diff] [blame] | 19 | lldb_root = find_lldb_root() |
David Spickett | 602e47c | 2023-09-14 07:54:02 | [diff] [blame] | 20 | |
Tulio Magno Quites Machado Filho | 2260ebf | 2023-10-31 20:08:55 | [diff] [blame] | 21 | import importlib.machinery |
| 22 | import importlib.util |
| 23 | |
| 24 | path = os.path.join(lldb_root, "use_lldb_suite_root.py") |
| 25 | loader = importlib.machinery.SourceFileLoader("use_lldb_suite_root", path) |
| 26 | spec = importlib.util.spec_from_loader("use_lldb_suite_root", loader=loader) |
| 27 | module = importlib.util.module_from_spec(spec) |
| 28 | loader.exec_module(module) |