diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a4df196f9..0c850ac9e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -106,7 +106,7 @@ set(PYBIND11_TEST_FILES test_class_sh_disowning_mi.cpp test_class_sh_factory_constructors.cpp test_class_sh_inheritance.cpp - test_class_sh_shared_ptr_copy.cpp + test_class_sh_shared_ptr_copy_move.cpp test_class_sh_trampoline_basic.cpp test_class_sh_trampoline_self_life_support.cpp test_class_sh_trampoline_shared_ptr_cpp_arg.cpp diff --git a/tests/test_class_sh_shared_ptr_copy.py b/tests/test_class_sh_shared_ptr_copy.py deleted file mode 100644 index 6e724c27b..000000000 --- a/tests/test_class_sh_shared_ptr_copy.py +++ /dev/null @@ -1,11 +0,0 @@ -# -*- coding: utf-8 -*- - -from pybind11_tests import class_sh_shared_ptr_copy as m - - -def test_avl(): - m.test_avl() - - -def test_def(): - m.test_def() diff --git a/tests/test_class_sh_shared_ptr_copy.cpp b/tests/test_class_sh_shared_ptr_copy_move.cpp similarity index 61% rename from tests/test_class_sh_shared_ptr_copy.cpp rename to tests/test_class_sh_shared_ptr_copy_move.cpp index 094b12312..1cecc6a09 100644 --- a/tests/test_class_sh_shared_ptr_copy.cpp +++ b/tests/test_class_sh_shared_ptr_copy_move.cpp @@ -7,7 +7,7 @@ #include namespace pybind11_tests { -namespace class_sh_shared_ptr_copy { +namespace class_sh_shared_ptr_copy_move { template struct Foo { @@ -21,31 +21,42 @@ struct Foo { using FooAVL = Foo<0>; using FooDEF = Foo<1>; -} // namespace class_sh_shared_ptr_copy +} // namespace class_sh_shared_ptr_copy_move } // namespace pybind11_tests -PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_shared_ptr_copy::FooAVL) +PYBIND11_SMART_HOLDER_TYPE_CASTERS(pybind11_tests::class_sh_shared_ptr_copy_move::FooAVL) namespace pybind11_tests { -namespace class_sh_shared_ptr_copy { +namespace class_sh_shared_ptr_copy_move { -TEST_SUBMODULE(class_sh_shared_ptr_copy, m) { +TEST_SUBMODULE(class_sh_shared_ptr_copy_move, m) { namespace py = pybind11; py::class_(m, "FooAVL"); py::class_(m, "FooDEF"); - m.def("test_avl", []() { + m.def("test_avl_copy", []() { auto o = std::make_shared("AVL"); auto l = py::list(); l.append(o); }); - m.def("test_def", []() { + m.def("test_def_copy", []() { auto o = std::make_shared("DEF"); auto l = py::list(); l.append(o); }); + + m.def("test_avl_move", []() { + auto o = std::make_shared("AVL"); + auto l = py::list(); + l.append(std::move(o)); + }); + m.def("test_def_move", []() { + auto o = std::make_shared("DEF"); + auto l = py::list(); + l.append(std::move(o)); + }); } -} // namespace class_sh_shared_ptr_copy +} // namespace class_sh_shared_ptr_copy_move } // namespace pybind11_tests diff --git a/tests/test_class_sh_shared_ptr_copy_move.py b/tests/test_class_sh_shared_ptr_copy_move.py new file mode 100644 index 000000000..4263013e8 --- /dev/null +++ b/tests/test_class_sh_shared_ptr_copy_move.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +from pybind11_tests import class_sh_shared_ptr_copy_move as m + + +def test_avl_copy(): + m.test_avl_copy() + + +def test_def_copy(): + m.test_def_copy() + + +def test_avl_move(): + m.test_avl_move() + + +def test_def_move(): + m.test_def_move()