[AppFwk] Updated destructors in unit tests to make sure memory is released correctly

This commit is contained in:
Magne Sjaastad 2015-12-22 11:10:50 +01:00
parent 72459a339f
commit b9286dcd1d
6 changed files with 33 additions and 0 deletions

View File

@ -8,4 +8,5 @@ Child::Child()
Child::~Child()
{
delete m_testObj();
}

View File

@ -11,6 +11,8 @@ Parent::Parent()
Parent::~Parent()
{
delete m_simpleObjectF();
m_simpleObjectsField.deleteAllChildObjects();
}
void Parent::doSome()

View File

@ -64,6 +64,7 @@ public:
~ContainerObj()
{
derivedObjs.deleteAllChildObjects();
derivedOtherObjs.deleteAllChildObjects();
}
caf::PdmChildArrayField<SimpleObjDerived*> derivedObjs;

View File

@ -436,6 +436,11 @@ TEST(BaseTest, PdmChildField)
public:
A(Child* a) :field2(a) {}
~A()
{
delete field2();
}
caf::PdmChildField<Child*> field2;
int b;
};

View File

@ -176,6 +176,11 @@ public:
CAF_PDM_XML_InitField(&m_childArrayField, "DemoPdmObjectects");
}
~InheritedDemoObj()
{
m_childArrayField.deleteAllChildObjects();
}
caf::PdmDataValueField<QString > m_texts;
caf::PdmChildArrayField<DemoPdmObject*> m_childArrayField;
@ -220,6 +225,12 @@ public:
CAF_PDM_XML_InitField(&m_simpleObjPtrField2, "SimpleObjPtrField2");
}
~ReferenceDemoPdmObject()
{
delete m_pointersField();
m_simpleObjPtrField2.deleteAllChildObjects();
}
// Fields
caf::PdmChildField<PdmObjectHandle*> m_pointersField;
caf::PdmChildArrayField<SimpleObj*> m_simpleObjPtrField2;

View File

@ -140,6 +140,7 @@ public:
~DemoPdmObject()
{
delete m_simpleObjPtrField();
delete m_simpleObjPtrField2();
}
@ -174,6 +175,11 @@ public:
}
~InheritedDemoObj()
{
m_simpleObjectsField.deleteAllChildObjects();
}
caf::PdmField<std::vector<QString> > m_texts;
caf::PdmField< caf::AppEnum<TestEnumType> > m_testEnumField;
caf::PdmChildArrayField<SimpleObj*> m_simpleObjectsField;
@ -192,6 +198,11 @@ public:
CAF_PDM_InitFieldNoDefault(&objects, "PdmObjects", "", "", "", "")
}
~MyPdmDocument()
{
objects.deleteAllChildObjects();
}
caf::PdmChildArrayField<PdmObjectHandle*> objects;
};
@ -519,6 +530,8 @@ TEST(BaseTest, ReadWrite)
EXPECT_EQ(size_t(1), demoObjs.size());
}
d2->m_simpleObjPtrField = NULL;
xmlDoc.objects.deleteAllChildObjects();
}
{