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 result = new QVariant(object->property(propertyName));
return static_cast<QVariant *>(result);
}
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()
{
void *superClassMetaObject = dos_qabstractitemmodel_qmetaobject();
VoidPointer superClassMetaObject(dos_qabstractitemmodel_qmetaobject(),
&dos_qmetaobject_delete);
// Signals
::SignalDefinition signalDefinitionArray[1];
@ -60,7 +61,11 @@ VoidPointer initializeMetaObject()
propertyDefinitions.count = 1;
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);
}
}

View File

@ -13,7 +13,7 @@ std::string toStringFromQVariant(DosQVariant *variant)
VoidPointer initializeMetaObject()
{
void *superClassMetaObject = dos_qobject_qmetaobject();
VoidPointer superClassMetaObject(dos_qobject_qmetaobject(), &dos_qmetaobject_delete);
// Signals
::SignalDefinition signalDefinitionArray[2];
@ -88,7 +88,7 @@ VoidPointer initializeMetaObject()
propertyDefinitions.count = 2;
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);
}
}

View File

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