xref: /llvm-project/lldb/scripts/use_lldb_suite.py (revision 2260ebf7b6df15db96c76039758dd9dbf009c334)
1c22811bbSZachary Turnerimport inspect
2c22811bbSZachary Turnerimport os
3c22811bbSZachary Turnerimport sys
4c22811bbSZachary Turner
5b9c1b51eSKate Stone
6c22811bbSZachary Turnerdef find_lldb_root():
7c22811bbSZachary Turner    lldb_root = os.path.dirname(inspect.getfile(inspect.currentframe()))
8c22811bbSZachary Turner    while True:
967f6d842SPavel Labath        parent = os.path.dirname(lldb_root)
1067f6d842SPavel Labath        if parent == lldb_root:  # dirname('/') == '/'
11cf3f100fSJordan Rupprecht            raise Exception("use_lldb_suite_root.py not found")
1267f6d842SPavel Labath        lldb_root = parent
13c22811bbSZachary Turner
144c152690SZachary Turner        test_path = os.path.join(lldb_root, "use_lldb_suite_root.py")
15c22811bbSZachary Turner        if os.path.isfile(test_path):
16c22811bbSZachary Turner            return lldb_root
17c22811bbSZachary Turner
18602e47c5SDavid Spickett
19c22811bbSZachary Turnerlldb_root = find_lldb_root()
20602e47c5SDavid Spickett
21*2260ebf7STulio Magno Quites Machado Filhoimport importlib.machinery
22*2260ebf7STulio Magno Quites Machado Filhoimport importlib.util
23*2260ebf7STulio Magno Quites Machado Filho
24*2260ebf7STulio Magno Quites Machado Filhopath = os.path.join(lldb_root, "use_lldb_suite_root.py")
25*2260ebf7STulio Magno Quites Machado Filholoader = importlib.machinery.SourceFileLoader("use_lldb_suite_root", path)
26*2260ebf7STulio Magno Quites Machado Filhospec = importlib.util.spec_from_loader("use_lldb_suite_root", loader=loader)
27*2260ebf7STulio Magno Quites Machado Filhomodule = importlib.util.module_from_spec(spec)
28*2260ebf7STulio Magno Quites Machado Filholoader.exec_module(module)
29