1""" 2Tests that frame variable looks into anonymous unions 3""" 4import lldb 5from lldbsuite.test.lldbtest import * 6import lldbsuite.test.lldbutil as lldbutil 7 8 9class FrameVariableAnonymousUnionsTestCase(TestBase): 10 11 mydir = TestBase.compute_mydir(__file__) 12 13 def test_with_run_command(self): 14 """Tests that frame variable looks into anonymous unions""" 15 self.build() 16 self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) 17 18 line = line_number('main.cpp', '// break here') 19 lldbutil.run_break_set_by_file_and_line( 20 self, "main.cpp", line, num_expected_locations=-1, loc_exact=False) 21 22 self.runCmd("process launch", RUN_SUCCEEDED) 23 24 process = self.dbg.GetSelectedTarget().GetProcess() 25 26 if process.GetByteOrder() == lldb.eByteOrderLittle: 27 self.expect('frame variable -f x i', substrs=['ffffff41']) 28 else: 29 self.expect('frame variable -f x i', substrs=['41ffff00']) 30 31 self.expect('frame variable c', substrs=["'A"]) 32 33 self.expect('frame variable x', matching=False, substrs=['3']) 34 self.expect('frame variable y', matching=False, substrs=["'B'"]) 35 self.expect('frame variable z', matching=False, substrs=['14']) 36