Removed memory leaks from tests

This commit is contained in:
Filippo Cucchetto 2018-11-28 23:16:17 +01:00
parent 1161273ad3
commit 2712fb154b
4 changed files with 31 additions and 19 deletions

View File

@ -543,7 +543,6 @@ void dos_qobject_setObjectName(::DosQObject *vptr, const char *name)
auto object = static_cast<const QObject *>(vptr); auto object = static_cast<const QObject *>(vptr);
auto result = new QVariant(object->property(propertyName)); auto result = new QVariant(object->property(propertyName));
return static_cast<QVariant *>(result); return static_cast<QVariant *>(result);
} }
bool dos_qobject_setProperty(::DosQObject *vptr, const char *propertyName, ::DosQVariant *dosValue){ bool dos_qobject_setProperty(::DosQObject *vptr, const char *propertyName, ::DosQVariant *dosValue){

View File

@ -12,7 +12,8 @@ std::string toStringFromQVariant(const DosQVariant *variant)
VoidPointer initializeMetaObject() VoidPointer initializeMetaObject()
{ {
void *superClassMetaObject = dos_qabstractitemmodel_qmetaobject(); VoidPointer superClassMetaObject(dos_qabstractitemmodel_qmetaobject(),
&dos_qmetaobject_delete);
// Signals // Signals
::SignalDefinition signalDefinitionArray[1]; ::SignalDefinition signalDefinitionArray[1];
@ -60,7 +61,11 @@ VoidPointer initializeMetaObject()
propertyDefinitions.count = 1; propertyDefinitions.count = 1;
propertyDefinitions.definitions = propertyDefinitionArray; propertyDefinitions.definitions = propertyDefinitionArray;
return VoidPointer(dos_qmetaobject_create(superClassMetaObject, "MockQAbstractListModel", &signalDefinitions, &slotDefinitions, &propertyDefinitions), return VoidPointer(dos_qmetaobject_create(superClassMetaObject.get(),
"MockQAbstractListModel",
&signalDefinitions,
&slotDefinitions,
&propertyDefinitions),
&dos_qmetaobject_delete); &dos_qmetaobject_delete);
} }
} }

View File

@ -13,7 +13,7 @@ std::string toStringFromQVariant(DosQVariant *variant)
VoidPointer initializeMetaObject() VoidPointer initializeMetaObject()
{ {
void *superClassMetaObject = dos_qobject_qmetaobject(); VoidPointer superClassMetaObject(dos_qobject_qmetaobject(), &dos_qmetaobject_delete);
// Signals // Signals
::SignalDefinition signalDefinitionArray[2]; ::SignalDefinition signalDefinitionArray[2];
@ -88,7 +88,7 @@ VoidPointer initializeMetaObject()
propertyDefinitions.count = 2; propertyDefinitions.count = 2;
propertyDefinitions.definitions = propertyDefinitionArray; propertyDefinitions.definitions = propertyDefinitionArray;
return VoidPointer(dos_qmetaobject_create(superClassMetaObject, "MockQObject", &signalDefinitions, &slotDefinitions, &propertyDefinitions), return VoidPointer(dos_qmetaobject_create(superClassMetaObject.get(), "MockQObject", &signalDefinitions, &slotDefinitions, &propertyDefinitions),
&dos_qmetaobject_delete); &dos_qmetaobject_delete);
} }
} }

View File

@ -184,13 +184,14 @@ private slots:
QVERIFY(value == nullptr); QVERIFY(value == nullptr);
} }
void testQVariant(){ void testQVariant()
{
QVariant original("foo"); QVariant original("foo");
QVERIFY(original.type() == QVariant::String); QVERIFY(original.type() == QVariant::String);
auto copypointer = dos_qvariant_create_qvariant(&original); VoidPointer copyPointer(dos_qvariant_create_qvariant(&original), &dos_qvariant_delete);
QVariant copy = *static_cast<QVariant *>(copypointer); QVariant* copy = static_cast<QVariant*>(copyPointer.get());
QVERIFY(copy.type() == QVariant::String); QCOMPARE(copy->type(), original.type());
QCOMPARE(copy.toString().toStdString(),original.toString().toStdString()); QCOMPARE(copy->toString().toStdString(), original.toString().toStdString());
} }
void testArray() void testArray()
@ -410,18 +411,25 @@ private slots:
QVERIFY(result.toBool()); QVERIFY(result.toBool());
} }
void testPropertyGetSet(){ void testPropertyGetSet() {
auto testobject = new MockQObject; MockQObject testobject;
QObject *data = static_cast<QObject *>(testobject->data()); QObject *data = static_cast<QObject *>(testobject.data());
data->setProperty("name", "foo"); data->setProperty("name", "foo");
auto value = *static_cast<QVariant *>(dos_qobject_property(data, "name")); {
QVERIFY(value.type() == QVariant::String); VoidPointer valuePtr(dos_qobject_property(data, "name"), &dos_qvariant_delete);
QVERIFY(value.toString() == "foo"); auto value = *static_cast<QVariant *>(valuePtr.get());
QVERIFY(value.type() == QVariant::String);
QVERIFY(value.toString() == "foo");
}
QVariant bar("bar"); QVariant bar("bar");
dos_qobject_setProperty(data, "name", &bar); dos_qobject_setProperty(data, "name", &bar);
value = *static_cast<QVariant *>(dos_qobject_property(data, "name"));
QVERIFY(value.type() == QVariant::String); {
QVERIFY(value.toString() == "bar"); VoidPointer valuePtr(dos_qobject_property(data, "name"), &dos_qvariant_delete);
auto value = *static_cast<QVariant *>(valuePtr.get());
QVERIFY(value.type() == QVariant::String);
QVERIFY(value.toString() == "bar");
}
} }
void testSignalEmittion() void testSignalEmittion()