1""" 2Test std::weak_ptr functionality with a decl from debug info as content. 3""" 4 5from lldbsuite.test.decorators import * 6from lldbsuite.test.lldbtest import * 7from lldbsuite.test import lldbutil 8 9class TestDbgInfoContentWeakPtr(TestBase): 10 11 mydir = TestBase.compute_mydir(__file__) 12 13 @add_test_categories(["libc++"]) 14 @skipIf(compiler=no_match("clang")) 15 def test(self): 16 self.build() 17 18 lldbutil.run_to_source_breakpoint(self, 19 "// Set break point at this line.", lldb.SBFileSpec("main.cpp")) 20 21 self.runCmd("settings set target.import-std-module true") 22 23 self.expect("expr (int)w.lock()->a", substrs=['(int) $0 = 3']) 24 self.expect("expr (int)(w.lock()->a = 5)", substrs=['(int) $1 = 5']) 25 self.expect("expr (int)w.lock()->a", substrs=['(int) $2 = 5']) 26 self.expect("expr w.use_count()", substrs=['(long) $3 = 1']) 27 self.expect("expr w.reset()") 28 self.expect("expr w.use_count()", substrs=['(long) $4 = 0']) 29 30