7 #include <throwing/shared_ptr.hpp> 9 TEST_CASE(
"shared_ptr swap swaps pointers",
"[shared_ptr][swap]") {
11 throwing::shared_ptr<
int> t_ptr1(ptr1);
13 throwing::shared_ptr<
int> t_ptr2(ptr2);
14 REQUIRE(t_ptr1.get() == ptr1);
15 REQUIRE(t_ptr2.get() == ptr2);
17 REQUIRE(t_ptr1.get() == ptr2);
18 REQUIRE(t_ptr2.get() == ptr1);
19 std::swap(t_ptr1, t_ptr2);
20 REQUIRE(t_ptr1.get() == ptr1);
21 REQUIRE(t_ptr2.get() == ptr2);
24 TEST_CASE(
"shared_ptr swap null pointers",
"[shared_ptr][swap][nullptr]") {
25 throwing::shared_ptr<
int> t_ptr1;
26 throwing::shared_ptr<
int> t_ptr2;
27 REQUIRE(t_ptr1.get() ==
nullptr);
28 REQUIRE(t_ptr2.get() ==
nullptr);
30 REQUIRE(t_ptr1.get() ==
nullptr);
31 REQUIRE(t_ptr2.get() ==
nullptr);
32 std::swap(t_ptr1, t_ptr2);
33 REQUIRE(t_ptr1.get() ==
nullptr);
34 REQUIRE(t_ptr2.get() ==
nullptr);
TEST_CASE("unique_ptr to array reset to convertible", "[unique_ptr][array][reset][conv.qual]")