brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · bc0e7f4 Raw
58 lines · python
1"""2Tests std::stack functionality.3"""4 5from lldbsuite.test.decorators import *6from lldbsuite.test.lldbtest import *7from lldbsuite.test import lldbutil8 9 10class TestStack(TestBase):11    @add_test_categories(["libc++"])12    @skipIf(compiler=no_match("clang"))13    @skipIfLinux  # Declaration in some Linux headers causes LLDB to crash.14    @skipIf(bugnumber="rdar://97622854")15    def test(self):16        self.build()17 18        lldbutil.run_to_source_breakpoint(19            self, "// Set break point at this line.", lldb.SBFileSpec("main.cpp")20        )21 22        self.runCmd("settings set target.import-std-module true")23 24        # Test std::stack functionality with a std::deque.25        stack_type = "std::stack<C>"26        size_type = stack_type + "::size_type"27 28        self.expect_expr("s_deque", result_type=stack_type)29        self.expect("expr s_deque.pop()")30        self.expect("expr s_deque.push({4})")31        self.expect_expr("s_deque.size()", result_type=size_type, result_value="3")32        self.expect_expr("s_deque.top().i", result_type="int", result_value="4")33        self.expect("expr s_deque.emplace(5)")34        self.expect_expr("s_deque.top().i", result_type="int", result_value="5")35 36        # Test std::stack functionality with a std::vector.37        stack_type = "std::stack<C, std::vector<C> >"38        size_type = stack_type + "::size_type"39 40        self.expect_expr("s_vector", result_type=stack_type)41        self.expect("expr s_vector.pop()")42        self.expect("expr s_vector.push({4})")43        self.expect_expr("s_vector.size()", result_type=size_type, result_value="3")44        self.expect_expr("s_vector.top().i", result_type="int", result_value="4")45        self.expect("expr s_vector.emplace(5)")46        self.expect_expr("s_vector.top().i", result_type="int", result_value="5")47 48        # Test std::stack functionality with a std::list.49        stack_type = "std::stack<C, std::list<C> >"50        size_type = stack_type + "::size_type"51        self.expect_expr("s_list", result_type=stack_type)52        self.expect("expr s_list.pop()")53        self.expect("expr s_list.push({4})")54        self.expect_expr("s_list.size()", result_type=size_type, result_value="3")55        self.expect_expr("s_list.top().i", result_type="int", result_value="4")56        self.expect("expr s_list.emplace(5)")57        self.expect_expr("s_list.top().i", result_type="int", result_value="5")58