adding test_promotion_of_disowned_to_shared

parent 9ffa2067
...@@ -40,8 +40,13 @@ TEST_SUBMODULE(variant_unique_shared, m) { ...@@ -40,8 +40,13 @@ TEST_SUBMODULE(variant_unique_shared, m) {
v.get_unique(); v.get_unique();
return; return;
}) })
.def("get_shared", [](vptr<double> &v) { .def("get_shared",
v.get_shared(); [](vptr<double> &v) {
v.get_shared();
return;
})
.def("disown_unique", [](vptr<double> &v) {
v.get_unique().reset();
return; return;
}); });
} }
......
...@@ -48,3 +48,14 @@ def test_shared_from_birth(): ...@@ -48,3 +48,14 @@ def test_shared_from_birth():
v.get_unique() v.get_unique()
assert str(exc_info.value) == "get_unique failure." assert str(exc_info.value) == "get_unique failure."
v.get_shared() # Still works. v.get_shared() # Still works.
def test_promotion_of_disowned_to_shared():
v = m.from_unique()
assert v.get_value() == 5
v.disown_unique()
assert v.ownership_type() == 0
assert v.get_value() == -1
v.get_shared() # Promotion of disowned to shared_ptr.
assert v.ownership_type() == 1
assert v.get_value() == -1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment