Skip to content

Commit 1f4f5e2

Browse files
committed
adding test_promotion_of_disowned_to_shared
1 parent b96ceac commit 1f4f5e2

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

tests/test_variant_unique_shared.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,13 @@ TEST_SUBMODULE(variant_unique_shared, m) {
4040
v.get_unique();
4141
return;
4242
})
43-
.def("get_shared", [](vptr<double> &v) {
44-
v.get_shared();
43+
.def("get_shared",
44+
[](vptr<double> &v) {
45+
v.get_shared();
46+
return;
47+
})
48+
.def("disown_unique", [](vptr<double> &v) {
49+
v.get_unique().reset();
4550
return;
4651
});
4752
}

tests/test_variant_unique_shared.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,14 @@ def test_shared_from_birth():
4848
v.get_unique()
4949
assert str(exc_info.value) == "get_unique failure."
5050
v.get_shared() # Still works.
51+
52+
53+
def test_promotion_of_disowned_to_shared():
54+
v = m.from_unique()
55+
assert v.get_value() == 5
56+
v.disown_unique()
57+
assert v.ownership_type() == 0
58+
assert v.get_value() == -1
59+
v.get_shared() # Promotion of disowned to shared_ptr.
60+
assert v.ownership_type() == 1
61+
assert v.get_value() == -1

0 commit comments

Comments
 (0)