[glibmm] Add simple test for Object move.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm] Add simple test for Object move.
- Date: Sat, 22 Aug 2015 19:39:52 +0000 (UTC)
commit 1cf5baae92e3854488eae99c6562562b47e1d102
Author: Murray Cumming <murrayc murrayc com>
Date: Sat Aug 22 10:50:37 2015 +0200
Add simple test for Object move.
tests/Makefile.am | 2 +
tests/glibmm_object_move/main.cc | 48 ++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8f35cbb..5c34f0a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -31,6 +31,7 @@ check_PROGRAMS = \
glibmm_interface_implementation/test \
glibmm_mainloop/test \
glibmm_nodetree/test \
+ glibmm_object_move/test \
glibmm_ustring_compose/test \
glibmm_ustring_format/test \
glibmm_value/test \
@@ -89,6 +90,7 @@ glibmm_interface_implementation_test_LDADD = $(giomm_ldadd)
glibmm_mainloop_test_SOURCES = glibmm_mainloop/main.cc
glibmm_nodetree_test_SOURCES = glibmm_nodetree/main.cc
+glibmm_object_move_test_SOURCES = glibmm_object_move/main.cc
glibmm_ustring_compose_test_SOURCES = glibmm_ustring_compose/main.cc
glibmm_ustring_format_test_SOURCES = glibmm_ustring_format/main.cc
glibmm_value_test_SOURCES = glibmm_value/glibmm_value.cc glibmm_value/main.cc
diff --git a/tests/glibmm_object_move/main.cc b/tests/glibmm_object_move/main.cc
new file mode 100644
index 0000000..3bf6ab3
--- /dev/null
+++ b/tests/glibmm_object_move/main.cc
@@ -0,0 +1,48 @@
+#include <glibmm.h>
+#include <iostream>
+#include <stdlib.h>
+
+class Derived : Glib::Object
+{
+public:
+ //A real application would never make the constructor public.
+ //It would instead have a protectd constructor and a public create() method.
+ Derived(int i)
+ : Glib::Object(),
+ i_(i)
+ {
+ }
+
+ Derived(const Derived& src) = delete;
+ Derived& operator=(const Derived& src) = delete;
+
+ Derived(Derived&& src)
+ : Glib::Object(std::move(src)),
+ i_(std::move(src.i_))
+ {}
+
+ Derived& operator=(Derived&& src)
+ {
+ Glib::Object::operator=(std::move(src));
+ i_ = std::move(src.i_);
+
+ return *this;
+ }
+
+ int i_;
+};
+
+static
+void test_object_move_constructor()
+{
+ Derived derived(5);
+ Derived derived2 = std::move(derived);
+ g_assert_cmpint(derived2.i_, ==, 5);
+}
+
+int main(int, char**)
+{
+ test_object_move_constructor();
+
+ return EXIT_SUCCESS;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]