2 Test that LLDB can emit JIT objects when the appropriate setting is enabled
8 from lldbsuite
.test
.decorators
import *
9 from lldbsuite
.test
.lldbtest
import *
10 from lldbsuite
.test
import lldbutil
13 class SaveJITObjectsTestCase(TestBase
):
14 def enumerateJITFiles(self
):
15 return [f
for f
in os
.listdir(self
.getBuildDir()) if f
.startswith("jit")]
17 def countJITFiles(self
):
18 return len(self
.enumerateJITFiles())
20 def cleanJITFiles(self
):
21 for j
in self
.enumerateJITFiles():
25 @expectedFailureAll(oslist
=["windows"])
26 def test_save_jit_objects(self
):
28 os
.chdir(self
.getBuildDir())
30 src_file_spec
= lldb
.SBFileSpec(src_file
)
32 (target
, process
, thread
, bkpt
) = lldbutil
.run_to_source_breakpoint(
33 self
, "break", src_file_spec
36 frame
= thread
.frames
[0]
39 frame
.EvaluateExpression("(void*)malloc(0x1)")
41 self
.countJITFiles(), 0, "No files emitted with save-jit-objects-dir empty"
45 "settings set target.save-jit-objects-dir {0}".format(self
.getBuildDir())
47 frame
.EvaluateExpression("(void*)malloc(0x1)")
48 jit_files_count
= self
.countJITFiles()
53 "At least one file emitted with save-jit-objects-dir set to the build dir",
57 os
.chdir(self
.getSourceDir())