""" Test that importing the std module on a compile unit that doesn't use the std module will not break LLDB. It's not really specified at the moment what kind of error we should report back to the user in this situation. Currently Clang will just complain that the std module doesn't exist or can't be loaded. """ from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil class STLTestCase(TestBase): mydir = TestBase.compute_mydir(__file__) @add_test_categories(["libc++"]) @skipIf(compiler=no_match("clang")) def test(self): self.build() lldbutil.run_to_source_breakpoint(self, "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) # Activate importing of std module. self.runCmd("settings set target.import-std-module true") # Run some commands that should all fail without our std module. self.expect("expr std::abs(-42)", error=True) self.expect("expr std::div(2, 1).quot", error=True) self.expect("expr (std::size_t)33U", error=True) self.expect("expr char a = 'b'; char b = 'a'; std::swap(a, b); a", error=True)