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 @add_test_categories(["libc++"]) 1799451b44SJordan Rupprecht @skipIf(compiler=no_match("clang")) 1899451b44SJordan Rupprecht def test(self): 1999451b44SJordan Rupprecht self.build() 2099451b44SJordan Rupprecht 21*2238dcc3SJonas Devlieghere lldbutil.run_to_source_breakpoint( 22*2238dcc3SJonas Devlieghere self, "// Set break point at this line.", lldb.SBFileSpec("main.cpp") 23*2238dcc3SJonas Devlieghere ) 2499451b44SJordan Rupprecht 2599451b44SJordan Rupprecht self.runCmd("settings set target.import-std-module true") 2699451b44SJordan Rupprecht self.expect_expr("std::abs(-42)", result_type="int", result_value="42") 27*2238dcc3SJonas Devlieghere self.expect_expr("std::div(2, 1).quot", result_type="int", result_value="2") 28*2238dcc3SJonas Devlieghere self.expect_expr( 29*2238dcc3SJonas Devlieghere "(std::size_t)33U", result_type="std::size_t", result_value="33" 30*2238dcc3SJonas Devlieghere ) 31cabee89bSRaphael Isemann self.expect( 32cabee89bSRaphael Isemann "expr char char_a = 'b'; char char_b = 'a'; std::swap(char_a, char_b); char_a", 33*2238dcc3SJonas Devlieghere substrs=["(char) $3 = 'a'"], 34*2238dcc3SJonas Devlieghere ) 35