brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 4f48e0d Raw
77 lines · python
1"""2Tests GCC's complex integer types.3"""4 5import lldb6from lldbsuite.test.decorators import *7from lldbsuite.test.lldbtest import *8from lldbsuite.test import lldbutil9 10 11class TestCase(TestBase):12    @no_debug_info_test13    @skipIfWindows14    def test(self):15        self.build()16        lldbutil.run_to_source_breakpoint(17            self, "// break here", lldb.SBFileSpec("main.c")18        )19 20        long_size_eq_int = self.frame().EvaluateExpression(21            "sizeof(long) == sizeof(int)"22        )23 24        # FIXME: LLDB treats all complex ints as unsigned, so the value is wrong.25        self.expect_expr(26            "complex_int",27            result_type="_Complex int",28            result_value="4294967295 + 4294967294i",29        )30        self.expect_expr(31            "complex_unsigned", result_type="_Complex int", result_value="1 + 2i"32        )33 34        # FIXME: We get the type wrong if long has the same size as int.35        if long_size_eq_int.GetValue() == "true":36            self.expect_expr("complex_long", result_type="_Complex int")37            self.expect_expr(38                "complex_unsigned_long",39                result_type="_Complex int",40                result_value="1 + 2i",41            )42        else:43            self.expect_expr("complex_long", result_type="_Complex long")44            self.expect_expr(45                "complex_unsigned_long",46                result_type="_Complex long",47                result_value="1 + 2i",48            )49 50    @no_debug_info_test51    @skipIfWindows52    def test_long_long(self):53        self.build()54        lldbutil.run_to_source_breakpoint(55            self, "// break here", lldb.SBFileSpec("main.c")56        )57 58        # FIXME: We get the type wrong if long has the same size as long long.59        # FIXME: LLDB treats all complex ints as unsigned, so the value is wrong.60        long_size_eq_long_long = self.frame().EvaluateExpression(61            "sizeof(long) == sizeof(long long)"62        )63        if long_size_eq_long_long.GetValue() == "true":64            self.expect_expr("complex_long_long", result_type="_Complex long")65            self.expect_expr(66                "complex_unsigned_long_long",67                result_type="_Complex long",68                result_value="1 + 2i",69            )70        else:71            self.expect_expr("complex_long_long", result_type="_Complex long long")72            self.expect_expr(73                "complex_unsigned_long_long",74                result_type="_Complex long long",75                result_value="1 + 2i",76            )77