1""" 2Test basic std::list functionality. 3""" 4 5from lldbsuite.test.decorators import * 6from lldbsuite.test.lldbtest import * 7from lldbsuite.test import lldbutil 8 9 10class TestBasicList(TestBase): 11 @add_test_categories(["libc++"]) 12 @skipIf(compiler=no_match("clang")) 13 def test(self): 14 self.build() 15 16 lldbutil.run_to_source_breakpoint( 17 self, "// Set break point at this line.", lldb.SBFileSpec("main.cpp") 18 ) 19 20 self.runCmd("settings set target.import-std-module true") 21 22 if self.expectedCompiler(["clang"]) and self.expectedCompilerVersion( 23 [">", "16.0"] 24 ): 25 list_type = "std::list<int>" 26 else: 27 list_type = "std::list<int, std::allocator<int> >" 28 29 size_type = "size_type" 30 value_type = "value_type" 31 32 iteratorvalue = "value_type" 33 riterator_value = "value_type" 34 35 self.expect_expr( 36 "a", 37 result_type=list_type, 38 result_children=[ 39 ValueCheck(value="3"), 40 ValueCheck(value="1"), 41 ValueCheck(value="2"), 42 ], 43 ) 44 45 self.expect_expr("a.size()", result_type=size_type, result_value="3") 46 self.expect_expr("a.front()", result_type=value_type, result_value="3") 47 self.expect_expr("a.back()", result_type=value_type, result_value="2") 48 49 self.expect("expr a.sort()") 50 self.expect_expr("a.front()", result_type=value_type, result_value="1") 51 self.expect_expr("a.back()", result_type=value_type, result_value="3") 52 53 self.expect("expr std::reverse(a.begin(), a.end())") 54 self.expect_expr("a.front()", result_type=value_type, result_value="3") 55 self.expect_expr("a.back()", result_type=value_type, result_value="1") 56 57 self.expect_expr("*a.begin()", result_type=iteratorvalue, result_value="3") 58 self.expect_expr("*a.rbegin()", result_type=riterator_value, result_value="1") 59