1import lldb 2from lldbsuite.test.decorators import * 3from lldbsuite.test.lldbtest import * 4from lldbsuite.test import lldbutil 5 6 7class TestCase(TestBase): 8 @no_debug_info_test 9 @skipIfWindows 10 def test(self): 11 self.build() 12 lldbutil.run_to_source_breakpoint( 13 self, "// break here", lldb.SBFileSpec("main.c") 14 ) 15 16 self.expect_expr( 17 "complex_float", result_type="_Complex float", result_value="-1.5 + -2.5i" 18 ) 19 self.expect_expr( 20 "complex_float + (2.0f + 3.5fi)", 21 result_type="_Complex float", 22 result_value="0.5 + 1i", 23 ) 24 25 self.expect_expr( 26 "complex_double", result_type="_Complex double", result_value="-1.5 + -2.5i" 27 ) 28 self.expect_expr( 29 "complex_double + (2.0 + 3.5i)", 30 result_type="_Complex double", 31 result_value="0.5 + 1i", 32 ) 33 34 @no_debug_info_test 35 # FIXME: LLDB fails to read the imaginary part of the number. 36 @expectedFailureAll() 37 @skipIfWindows 38 def test_long_double(self): 39 self.build() 40 lldbutil.run_to_source_breakpoint( 41 self, "// break here", lldb.SBFileSpec("main.c") 42 ) 43 44 self.expect_expr( 45 "complex_long_double", 46 result_type="_Complex long double", 47 result_value="-1.5 + 1i", 48 ) 49 self.expect_expr( 50 "complex_long_double + (2.0L + 3.5Li)", 51 result_type="_Complex long double", 52 result_value="0.5 + 1i", 53 ) 54