summaryrefslogtreecommitdiff
path: root/tests/glibmm_objectbase_move
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2017-04-09 12:32:44 +0200
committerMurray Cumming <murrayc@murrayc.com>2017-04-09 13:02:05 +0200
commit696685eeaa639ae5e41a9eaa761250368af492db (patch)
treec83e58911c52680c139f857bedbf923662902f10 /tests/glibmm_objectbase_move
parentbc233c576d24adf640d333394228b93d548d75cc (diff)
downloadglibmm-696685eeaa639ae5e41a9eaa761250368af492db.tar.gz
tests: Split object_move and objectbase_move tests.
This allows further reuse of the DerivedObject and DerivedObjectBase test classes.
Diffstat (limited to 'tests/glibmm_objectbase_move')
-rw-r--r--tests/glibmm_objectbase_move/main.cc61
1 files changed, 2 insertions, 59 deletions
diff --git a/tests/glibmm_objectbase_move/main.cc b/tests/glibmm_objectbase_move/main.cc
index 697f3cf5..79bab6a4 100644
--- a/tests/glibmm_objectbase_move/main.cc
+++ b/tests/glibmm_objectbase_move/main.cc
@@ -1,66 +1,9 @@
+#include "../glibmm_objectbase/test_derived_objectbase.h"
+#include "../glibmm_object/test_derived_object.h"
#include <glibmm.h>
#include <iostream>
#include <stdlib.h>
-// A basic derived GObject, just to test Glib::ObjectBase.
-typedef struct
-{
- GObject parent;
-} TestDerived;
-
-typedef struct
-{
- GObjectClass parent;
-} TestDerivedClass;
-
-#define TEST_TYPE_DERIVED (test_derived_get_type())
-#define TEST_DERIVED(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TEST_TYPE_DERIVED, TestDerived))
-#define TEST_DERIVED_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_CAST((cls), TEST_TYPE_DERIVED, TestDerivedClass))
-#define TEST_DERIVED_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS((obj), TEST_TYPE_DERIVED, TestDerivedClass))
-
-static void
-test_derived_class_init(TestDerivedClass*)
-{
-}
-static void
-test_derived_init(TestDerived*)
-{
-}
-
-G_DEFINE_TYPE(TestDerived, test_derived, G_TYPE_OBJECT)
-
-class DerivedObjectBase : public Glib::ObjectBase
-{
-public:
- // A real application would never make the constructor public.
- // It would instead have a protected constructor and a public create() method.
- DerivedObjectBase(GObject* gobject, int i) : Glib::ObjectBase(nullptr), i_(i)
- {
- Glib::ObjectBase::initialize(gobject);
- }
-
- DerivedObjectBase(const DerivedObjectBase& src) = delete;
- DerivedObjectBase& operator=(const DerivedObjectBase& src) = delete;
-
- DerivedObjectBase(DerivedObjectBase&& src) noexcept : Glib::ObjectBase(std::move(src)),
- i_(std::move(src.i_))
- {
- ObjectBase::initialize_move(src.gobject_, &src);
- }
-
- DerivedObjectBase& operator=(DerivedObjectBase&& src) noexcept
- {
- Glib::ObjectBase::operator=(std::move(src));
- i_ = std::move(src.i_);
-
- return *this;
- }
-
- int i_;
-};
-
static void
test_objectbase_move_constructor()
{