1*99451b44SJordan Rupprecht""" 2*99451b44SJordan RupprechtTests that auto types work 3*99451b44SJordan Rupprecht""" 4*99451b44SJordan Rupprechtimport lldb 5*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 6*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 7*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 8*99451b44SJordan Rupprecht 9*99451b44SJordan Rupprecht 10*99451b44SJordan Rupprechtclass CPPAutoTestCase(TestBase): 11*99451b44SJordan Rupprecht 12*99451b44SJordan Rupprecht mydir = TestBase.compute_mydir(__file__) 13*99451b44SJordan Rupprecht 14*99451b44SJordan Rupprecht @expectedFailureAll( 15*99451b44SJordan Rupprecht compiler="gcc", 16*99451b44SJordan Rupprecht bugnumber="GCC generates incomplete debug info") 17*99451b44SJordan Rupprecht @expectedFailureAll(oslist=['windows'], bugnumber="llvm.org/pr26339") 18*99451b44SJordan Rupprecht @expectedFailureNetBSD 19*99451b44SJordan Rupprecht def test_with_run_command(self): 20*99451b44SJordan Rupprecht """Test that auto types work in the expression parser""" 21*99451b44SJordan Rupprecht self.build() 22*99451b44SJordan Rupprecht self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) 23*99451b44SJordan Rupprecht 24*99451b44SJordan Rupprecht line = line_number('main.cpp', '// break here') 25*99451b44SJordan Rupprecht lldbutil.run_break_set_by_file_and_line( 26*99451b44SJordan Rupprecht self, "main.cpp", line, num_expected_locations=-1, loc_exact=False) 27*99451b44SJordan Rupprecht 28*99451b44SJordan Rupprecht self.runCmd("process launch", RUN_SUCCEEDED) 29*99451b44SJordan Rupprecht 30*99451b44SJordan Rupprecht self.expect_expr('auto f = 123456; f', result_type='int', result_value='123456') 31*99451b44SJordan Rupprecht self.expect( 32*99451b44SJordan Rupprecht 'expr struct Test { int x; int y; Test() : x(123), y(456) {} }; auto t = Test(); t', 33*99451b44SJordan Rupprecht substrs=[ 34*99451b44SJordan Rupprecht 'Test', 35*99451b44SJordan Rupprecht '123', 36*99451b44SJordan Rupprecht '456']) 37*99451b44SJordan Rupprecht self.expect( 38*99451b44SJordan Rupprecht 'expr auto s = helloworld; s', 39*99451b44SJordan Rupprecht substrs=[ 40*99451b44SJordan Rupprecht 'string', 41*99451b44SJordan Rupprecht 'hello world']) 42