1import lldb 2from lldbsuite.test.decorators import * 3from lldbsuite.test.lldbtest import * 4from lldbsuite.test import lldbutil 5 6class TestStructuredBinding(TestBase): 7 8 mydir = TestBase.compute_mydir(__file__) 9 10 @skipIf(compiler="clang", compiler_version=['<', '14.0']) 11 def test(self): 12 self.build() 13 lldbutil.run_to_source_breakpoint(self, "// break here", lldb.SBFileSpec("main.cpp")) 14 15 self.expect_expr("a1", result_type="A", 16 result_children=[ValueCheck(name="x", type="int"), 17 ValueCheck(name="y", type="int")]) 18 self.expect_expr("b1", result_type="char", result_value="'a'") 19 self.expect_expr("c1", result_type="char", result_value="'b'") 20 self.expect_expr("d1", result_type="short", result_value="50") 21 self.expect_expr("e1", result_type="int", result_value="60") 22 self.expect_expr("f1", result_type="char", result_value="'c'") 23 24 self.expect_expr("a2", result_type="A", 25 result_children=[ValueCheck(name="x", type="int"), 26 ValueCheck(name="y", type="int")]) 27 self.expect_expr("b2", result_type="char", result_value="'a'") 28 self.expect_expr("c2", result_type="char", result_value="'b'") 29 self.expect_expr("d2", result_type="short", result_value="50") 30 self.expect_expr("e2", result_type="int", result_value="60") 31 self.expect_expr("f2", result_type="char", result_value="'c'") 32 33 self.expect_expr("a3", result_type="A", 34 result_children=[ValueCheck(name="x", type="int"), 35 ValueCheck(name="y", type="int")]) 36 self.expect_expr("b3", result_type="char", result_value="'a'") 37 self.expect_expr("c3", result_type="char", result_value="'b'") 38 self.expect_expr("d3", result_type="short", result_value="50") 39 self.expect_expr("e3", result_type="int", result_value="60") 40 self.expect_expr("f3", result_type="char", result_value="'c'") 41 42 self.expect_expr("carr_ref1", result_type="char", result_value="'a'") 43 self.expect_expr("carr_ref2", result_type="char", result_value="'b'") 44 self.expect_expr("carr_ref3", result_type="char", result_value="'c'") 45 46 self.expect_expr("sarr_ref1", result_type="short", result_value="11") 47 self.expect_expr("sarr_ref2", result_type="short", result_value="12") 48 self.expect_expr("sarr_ref3", result_type="short", result_value="13") 49 50 self.expect_expr("iarr_ref1", result_type="int", result_value="22") 51 self.expect_expr("iarr_ref2", result_type="int", result_value="33") 52 self.expect_expr("iarr_ref3", result_type="int", result_value="44") 53 54 self.expect_expr("carr_rref1", result_type="char", result_value="'a'") 55 self.expect_expr("carr_rref2", result_type="char", result_value="'b'") 56 self.expect_expr("carr_rref3", result_type="char", result_value="'c'") 57 58 self.expect_expr("sarr_rref1", result_type="short", result_value="11") 59 self.expect_expr("sarr_rref2", result_type="short", result_value="12") 60 self.expect_expr("sarr_rref3", result_type="short", result_value="13") 61 62 self.expect_expr("iarr_rref1", result_type="int", result_value="22") 63 self.expect_expr("iarr_rref2", result_type="int", result_value="33") 64 self.expect_expr("iarr_rref3", result_type="int", result_value="44") 65 66 self.expect_expr("carr_copy1", result_type="char", result_value="'a'") 67 self.expect_expr("carr_copy2", result_type="char", result_value="'b'") 68 self.expect_expr("carr_copy3", result_type="char", result_value="'c'") 69 70 self.expect_expr("sarr_copy1", result_type="short", result_value="11") 71 self.expect_expr("sarr_copy2", result_type="short", result_value="12") 72 self.expect_expr("sarr_copy3", result_type="short", result_value="13") 73 74 self.expect_expr("iarr_copy1", result_type="int", result_value="22") 75 self.expect_expr("iarr_copy2", result_type="int", result_value="33") 76 self.expect_expr("iarr_copy3", result_type="int", result_value="44") 77 78 self.expect_expr("tx1", result_type="float", result_value="4") 79 self.expect_expr("ty1", result_type="char", result_value="'z'") 80 self.expect_expr("tz1", result_type="int", result_value="10") 81 82 self.expect_expr("tx2", result_type="float", result_value="4") 83 self.expect_expr("ty2", result_type="char", result_value="'z'") 84 self.expect_expr("tz2", result_type="int", result_value="10") 85