199451b44SJordan Rupprecht""" 299451b44SJordan RupprechtTest importing the 'std' C++ module and check if we can handle 399451b44SJordan Rupprechtprioritizing the conflicting functions from debug info and std 499451b44SJordan Rupprechtmodule. 599451b44SJordan Rupprecht 699451b44SJordan RupprechtSee also import-std-module/basic/TestImportStdModule.py for 799451b44SJordan Rupprechtthe same test on a 'clean' code base without conflicts. 899451b44SJordan Rupprecht""" 999451b44SJordan Rupprecht 1099451b44SJordan Rupprechtfrom lldbsuite.test.decorators import * 1199451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 1299451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 1399451b44SJordan Rupprecht 1499451b44SJordan Rupprecht 1599451b44SJordan Rupprechtclass TestImportStdModuleConflicts(TestBase): 1699451b44SJordan Rupprecht 1799451b44SJordan Rupprecht @add_test_categories(["libc++"]) 1899451b44SJordan Rupprecht @skipIf(compiler=no_match("clang")) 1999451b44SJordan Rupprecht def test(self): 2099451b44SJordan Rupprecht self.build() 2199451b44SJordan Rupprecht 2299451b44SJordan Rupprecht lldbutil.run_to_source_breakpoint(self, 23*cabee89bSRaphael Isemann "// Set break point at this line.", 24*cabee89bSRaphael Isemann lldb.SBFileSpec("main.cpp")) 2599451b44SJordan Rupprecht 2699451b44SJordan Rupprecht self.runCmd("settings set target.import-std-module true") 2799451b44SJordan Rupprecht self.expect_expr("std::abs(-42)", result_type="int", result_value="42") 28*cabee89bSRaphael Isemann self.expect_expr("std::div(2, 1).quot", 29*cabee89bSRaphael Isemann result_type="int", 30*cabee89bSRaphael Isemann result_value="2") 31*cabee89bSRaphael Isemann self.expect_expr("(std::size_t)33U", 32*cabee89bSRaphael Isemann result_type="std::size_t", 33*cabee89bSRaphael Isemann result_value="33") 34*cabee89bSRaphael Isemann self.expect( 35*cabee89bSRaphael Isemann "expr char char_a = 'b'; char char_b = 'a'; std::swap(char_a, char_b); char_a", 3699451b44SJordan Rupprecht substrs=["(char) $3 = 'a'"]) 37