| 105 | |
| 106 | template <class Bt> |
| 107 | void test_comparisons_base(Bt nst, Bt st) { |
| 108 | Bt cst(st); |
| 109 | st = st; |
| 110 | cst = cst; |
| 111 | BOOST_TEST(nst); |
| 112 | BOOST_TEST(st); |
| 113 | #if !defined(BOOST_MSVC) && !defined(BOOST_STACKTRACE_USE_WINDBG) |
| 114 | // This is very dependent on compiler and link flags. No sane way to make it work, because |
| 115 | // BOOST_NOINLINE could be ignored by MSVC compiler if link-time optimization is enabled. |
| 116 | BOOST_TEST(nst[0] != st[0]); |
| 117 | #endif |
| 118 | |
| 119 | BOOST_TEST(nst != st); |
| 120 | BOOST_TEST(st != nst); |
| 121 | BOOST_TEST(st == st); |
| 122 | BOOST_TEST(nst == nst); |
| 123 | |
| 124 | BOOST_TEST(nst != cst); |
| 125 | BOOST_TEST(cst != nst); |
| 126 | BOOST_TEST(cst == st); |
| 127 | BOOST_TEST(cst == cst); |
| 128 | |
| 129 | BOOST_TEST(nst < st || nst > st); |
| 130 | BOOST_TEST(st < nst || nst < st); |
| 131 | BOOST_TEST(st <= st); |
| 132 | BOOST_TEST(nst <= nst); |
| 133 | BOOST_TEST(st >= st); |
| 134 | BOOST_TEST(nst >= nst); |
| 135 | |
| 136 | BOOST_TEST(nst < cst || cst < nst); |
| 137 | BOOST_TEST(nst > cst || cst > nst); |
| 138 | |
| 139 | |
| 140 | BOOST_TEST(hash_value(nst) == hash_value(nst)); |
| 141 | BOOST_TEST(hash_value(cst) == hash_value(st)); |
| 142 | |
| 143 | BOOST_TEST(hash_value(nst) != hash_value(cst)); |
| 144 | BOOST_TEST(hash_value(st) != hash_value(nst)); |
| 145 | } |
| 146 | |
| 147 | void test_comparisons() { |
| 148 | stacktrace nst = return_from_nested_namespaces(); |
no test coverage detected