summaryrefslogtreecommitdiffstats
path: root/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp')
-rw-r--r--tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp b/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp
index 9a387a919..a41ea83b5 100644
--- a/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp
+++ b/tests/auto/core/qresourcemanager/tst_qresourcemanager.cpp
@@ -50,6 +50,7 @@ private slots:
void heavyDutyMultiThreadedAccessRelease();
void collectResources();
void activeHandles();
+ void checkCleanup();
};
class tst_ArrayResource
@@ -422,6 +423,26 @@ void tst_QResourceManager::activeHandles()
}
}
+void tst_QResourceManager::checkCleanup()
+{
+ // GIVEN
+ Qt3DCore::QResourceManager<tst_ArrayResource, uint> manager;
+
+ // WHEN
+ tHandle newHandle = manager.getOrAcquireHandle(883U);
+ tst_ArrayResource *data = manager.data(newHandle);
+
+ data->m_value.ref();
+ // THEN
+ QCOMPARE(data->m_value.load(), 1);
+
+ // WHEN
+ manager.release(newHandle);
+
+ // THEN
+ QCOMPARE(data->m_value.load(), 0);
+}
+