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