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 TestBasicDeque(TestBase): 11 12 @add_test_categories(["libc++"]) 13 @expectedFailureDarwin 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.", 20 lldb.SBFileSpec("main.cpp")) 21 22 self.runCmd("settings set target.import-std-module true") 23 24 deque_type = "std::deque<int>" 25 size_type = "size_type" 26 value_type = "value_type" 27 iterator = "iterator" 28 iterator_children = [ 29 ValueCheck(name="__m_iter_"), 30 ValueCheck(name="__ptr_") 31 ] 32 riterator = "reverse_iterator" 33 riterator_children = [ 34 ValueCheck(name="__t"), 35 ValueCheck(name="current") 36 ] 37 38 self.expect_expr("a", 39 result_type=deque_type, 40 result_children=[ 41 ValueCheck(value='3'), 42 ValueCheck(value='1'), 43 ValueCheck(value='2'), 44 ]) 45 46 self.expect_expr("a.size()", result_type=size_type, result_value="3") 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="2") 49 50 self.expect("expr std::sort(a.begin(), a.end())") 51 self.expect_expr("a.front()", result_type=value_type, result_value="1") 52 self.expect_expr("a.back()", result_type=value_type, result_value="3") 53 54 self.expect("expr std::reverse(a.begin(), a.end())") 55 self.expect_expr("a.front()", result_type=value_type, result_value="3") 56 self.expect_expr("a.back()", result_type=value_type, result_value="1") 57 58 self.expect_expr("*a.begin()", result_type="int", result_value="3") 59 self.expect_expr("*a.rbegin()", result_type="int", result_value="1") 60 self.expect_expr("a.begin()", 61 result_type=iterator, 62 result_children=iterator_children) 63 self.expect_expr("a.rbegin()", 64 result_type=riterator, 65 result_children=riterator_children) 66