[lldb] Fix TestComplexInt on ARM

On the buildbot long and int have the same size but long and long long don't,
so the bug where we find the first type by size will produce a different error.
Make the test dynamic based on int/long/long long size to fix the bot.
This commit is contained in:
Raphael Isemann 2020-06-19 17:46:21 +02:00
parent ac3e5c4d93
commit 85e7e3b1c9
1 changed files with 17 additions and 5 deletions

View File

@ -16,12 +16,19 @@ class TestCase(TestBase):
self.build()
lldbutil.run_to_source_breakpoint(self, "// break here", lldb.SBFileSpec("main.c"))
long_size_eq_int = self.frame().EvaluateExpression("sizeof(long) == sizeof(int)")
# FIXME: LLDB treats all complex ints as unsigned, so the value is wrong.
self.expect_expr("complex_int", result_type="_Complex int", result_value="4294967295 + 4294967294i")
self.expect_expr("complex_long", result_type="_Complex long")
self.expect_expr("complex_unsigned", result_type="_Complex int", result_value="1 + 2i")
self.expect_expr("complex_unsigned_long", result_type="_Complex long", result_value="1 + 2i")
# FIXME: We get the type wrong if long has the same size as int.
if long_size_eq_int.GetValue() == "true":
self.expect_expr("complex_long", result_type="_Complex int")
self.expect_expr("complex_unsigned_long", result_type="_Complex int", result_value="1 + 2i")
else:
self.expect_expr("complex_long", result_type="_Complex long")
self.expect_expr("complex_unsigned_long", result_type="_Complex long", result_value="1 + 2i")
@no_debug_info_test
def test_long_long(self):
@ -30,5 +37,10 @@ class TestCase(TestBase):
# FIXME: We get the type wrong if long has the same size as long long.
# FIXME: LLDB treats all complex ints as unsigned, so the value is wrong.
self.expect_expr("complex_long_long", result_type="_Complex long")
self.expect_expr("complex_unsigned_long_long", result_type="_Complex long", result_value="1 + 2i")
long_size_eq_long_long = self.frame().EvaluateExpression("sizeof(long) == sizeof(long long)")
if long_size_eq_long_long.GetValue() == "true":
self.expect_expr("complex_long_long", result_type="_Complex long")
self.expect_expr("complex_unsigned_long_long", result_type="_Complex long", result_value="1 + 2i")
else:
self.expect_expr("complex_long_long", result_type="_Complex long long")
self.expect_expr("complex_unsigned_long_long", result_type="_Complex long long", result_value="1 + 2i")