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 12 @add_test_categories(["libc++"]) 13 @skipIf(compiler=no_match("clang")) 14 def test(self): 15 self.build() 16 17 lldbutil.run_to_source_breakpoint(self, 18 "// Set break point at this line.", 19 lldb.SBFileSpec("main.cpp")) 20 21 self.runCmd("settings set target.import-std-module true") 22 23 list_type = "std::list<int>" 24 size_type = list_type + "::size_type" 25 value_type = list_type + "::value_type" 26 27 iteratorvalue = "std::__list_iterator<int, void *>::value_type" 28 riterator_value = "std::__list_iterator<int, void *>::value_type" 29 30 self.expect_expr("a", 31 result_type=list_type, 32 result_children=[ 33 ValueCheck(value="3"), 34 ValueCheck(value="1"), 35 ValueCheck(value="2") 36 ]) 37 38 self.expect_expr("a.size()", result_type=size_type, result_value="3") 39 self.expect_expr("a.front()", result_type=value_type, result_value="3") 40 self.expect_expr("a.back()", result_type=value_type, result_value="2") 41 42 self.expect("expr a.sort()") 43 self.expect_expr("a.front()", result_type=value_type, result_value="1") 44 self.expect_expr("a.back()", result_type=value_type, result_value="3") 45 46 self.expect("expr std::reverse(a.begin(), a.end())") 47 self.expect_expr("a.front()", result_type=value_type, result_value="3") 48 self.expect_expr("a.back()", result_type=value_type, result_value="1") 49 50 self.expect_expr("*a.begin()", 51 result_type=iteratorvalue, 52 result_value="3") 53 self.expect_expr("*a.rbegin()", 54 result_type=riterator_value, 55 result_value="1") 56