| 151 | } |
| 152 | |
| 153 | void test_iterators() { |
| 154 | stacktrace st; |
| 155 | |
| 156 | BOOST_TEST(st.begin() == st.begin()); |
| 157 | BOOST_TEST(st.cbegin() == st.cbegin()); |
| 158 | BOOST_TEST(st.crbegin() == st.crbegin()); |
| 159 | BOOST_TEST(st.rbegin() == st.rbegin()); |
| 160 | |
| 161 | BOOST_TEST(st.begin() + 1 == st.begin() + 1); |
| 162 | BOOST_TEST(st.cbegin() + 1 == st.cbegin() + 1); |
| 163 | BOOST_TEST(st.crbegin() + 1 == st.crbegin() + 1); |
| 164 | BOOST_TEST(st.rbegin() + 1 == st.rbegin() + 1); |
| 165 | |
| 166 | BOOST_TEST(st.end() == st.end()); |
| 167 | BOOST_TEST(st.cend() == st.cend()); |
| 168 | BOOST_TEST(st.crend() == st.crend()); |
| 169 | BOOST_TEST(st.rend() == st.rend()); |
| 170 | |
| 171 | BOOST_TEST(st.end() > st.begin()); |
| 172 | BOOST_TEST(st.end() > st.cbegin()); |
| 173 | BOOST_TEST(st.cend() > st.cbegin()); |
| 174 | BOOST_TEST(st.cend() > st.begin()); |
| 175 | |
| 176 | BOOST_TEST(st.size() == static_cast<std::size_t>(st.end() - st.begin())); |
| 177 | BOOST_TEST(st.size() == static_cast<std::size_t>(st.end() - st.cbegin())); |
| 178 | BOOST_TEST(st.size() == static_cast<std::size_t>(st.cend() - st.cbegin())); |
| 179 | BOOST_TEST(st.size() == static_cast<std::size_t>(st.cend() - st.begin())); |
| 180 | |
| 181 | BOOST_TEST(st.size() == static_cast<std::size_t>(std::distance(st.rbegin(), st.rend()))); |
| 182 | BOOST_TEST(st.size() == static_cast<std::size_t>(std::distance(st.crbegin(), st.rend()))); |
| 183 | BOOST_TEST(st.size() == static_cast<std::size_t>(std::distance(st.crbegin(), st.crend()))); |
| 184 | BOOST_TEST(st.size() == static_cast<std::size_t>(std::distance(st.rbegin(), st.crend()))); |
| 185 | |
| 186 | |
| 187 | boost::stacktrace::stacktrace::iterator it = st.begin(); |
| 188 | ++ it; |
| 189 | BOOST_TEST(it == st.begin() + 1); |
| 190 | } |
| 191 | |
| 192 | void test_frame() { |
| 193 | stacktrace nst = return_from_nested_namespaces(); |