199451b44SJordan Rupprecht""" 299451b44SJordan RupprechtTests that auto types work 399451b44SJordan Rupprecht""" 499451b44SJordan Rupprechtimport lldb 599451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 699451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 799451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 899451b44SJordan Rupprecht 999451b44SJordan Rupprecht 1099451b44SJordan Rupprechtclass CPPAutoTestCase(TestBase): 1199451b44SJordan Rupprecht 1299451b44SJordan Rupprecht mydir = TestBase.compute_mydir(__file__) 1399451b44SJordan Rupprecht 1499451b44SJordan Rupprecht @expectedFailureAll( 1599451b44SJordan Rupprecht compiler="gcc", 1699451b44SJordan Rupprecht bugnumber="GCC generates incomplete debug info") 1799451b44SJordan Rupprecht @expectedFailureAll(oslist=['windows'], bugnumber="llvm.org/pr26339") 1899451b44SJordan Rupprecht @expectedFailureNetBSD 1999451b44SJordan Rupprecht def test_with_run_command(self): 2099451b44SJordan Rupprecht """Test that auto types work in the expression parser""" 2199451b44SJordan Rupprecht self.build() 2299451b44SJordan Rupprecht self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET) 2399451b44SJordan Rupprecht 2499451b44SJordan Rupprecht line = line_number('main.cpp', '// break here') 2599451b44SJordan Rupprecht lldbutil.run_break_set_by_file_and_line( 2699451b44SJordan Rupprecht self, "main.cpp", line, num_expected_locations=-1, loc_exact=False) 2799451b44SJordan Rupprecht 2899451b44SJordan Rupprecht self.runCmd("process launch", RUN_SUCCEEDED) 2999451b44SJordan Rupprecht 3099451b44SJordan Rupprecht self.expect_expr('auto f = 123456; f', result_type='int', result_value='123456') 3199451b44SJordan Rupprecht self.expect( 3299451b44SJordan Rupprecht 'expr struct Test { int x; int y; Test() : x(123), y(456) {} }; auto t = Test(); t', 3399451b44SJordan Rupprecht substrs=[ 3499451b44SJordan Rupprecht 'Test', 3599451b44SJordan Rupprecht '123', 3699451b44SJordan Rupprecht '456']) 37*10df88deSRaphael Isemann self.expect_expr("auto s = foo; s", result_type="long", result_value="1234") 38