diff options
author | Vsevolod Buzinov <ext-vsevolod.buzinov@nokia.com> | 2010-05-26 09:59:02 +0300 |
---|---|---|
committer | Vsevolod Buzinov <ext-vsevolod.buzinov@nokia.com> | 2010-05-26 09:59:02 +0300 |
commit | 6a6d3799cb686d5cc91c79e281fb8b0ba436fe0c (patch) | |
tree | e62d87f90ef7fcde9fe6e7e95d6bd9f1ae485755 /tests | |
parent | 5e69a0ef55fc3299862aa168ce1b4db3fabb3e83 (diff) | |
download | libresourceqt-6a6d3799cb686d5cc91c79e281fb8b0ba436fe0c.tar.gz |
Added test-memory-leaks, not built by the root makefile
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-memory-leaks/test-memory-leaks.cpp | 61 | ||||
-rw-r--r-- | tests/test-memory-leaks/test-memory-leaks.h | 21 | ||||
-rw-r--r-- | tests/test-memory-leaks/test-memory-leaks.pro | 24 |
3 files changed, 106 insertions, 0 deletions
diff --git a/tests/test-memory-leaks/test-memory-leaks.cpp b/tests/test-memory-leaks/test-memory-leaks.cpp new file mode 100644 index 0000000..fa888a3 --- /dev/null +++ b/tests/test-memory-leaks/test-memory-leaks.cpp @@ -0,0 +1,61 @@ +#include "test-memory-leaks.h" +#include <cassert> + +const int ITERATIONS = 20000; + +void MemoryLeakTest::test() { + set = new ResourceSet("player", this); + + iterations = ITERATIONS; + + AudioResource *audioResource = new ResourcePolicy::AudioResource("player"); + set->addResourceObject(audioResource); + + connect(set, SIGNAL(resourcesGranted(QList<ResourcePolicy::ResourceType>)), + this, SLOT(resourceAcquiredHandler(QList<ResourcePolicy::ResourceType>))); + + connect(set, SIGNAL(resourcesReleased()), this, SLOT(resourceReleasedHandler())); + + set->acquire(); +} + + +void MemoryLeakTest::resourceAcquiredHandler(QList<ResourceType> notused) +{ + (void) notused; + QList<Resource*> list = set->resources(); + if (list.count() == 0) { + printf("Granted resource set is empty\n"); + } + else { + for (int i = 0; i < list.count(); i++) { + //printf("Granted resource %d\n", (int)list[i]); + } + + set->release(); + + } +} + +void MemoryLeakTest::resourceReleasedHandler() +{ + set->acquire(); + iterations--; + printf("iteration %d\n", (ITERATIONS-iterations+1)); + if (iterations <= 0) exit(0); + +} + + + +int main(int argc, char* argv[]) { + + QCoreApplication app(argc, argv); + + MemoryLeakTest *leaks = new MemoryLeakTest(); + + leaks->test(); + + return app.exec(); + delete leaks; +} diff --git a/tests/test-memory-leaks/test-memory-leaks.h b/tests/test-memory-leaks/test-memory-leaks.h new file mode 100644 index 0000000..e515390 --- /dev/null +++ b/tests/test-memory-leaks/test-memory-leaks.h @@ -0,0 +1,21 @@ +#include <policy/resource-set.h> + +using namespace ResourcePolicy; + +class MemoryLeakTest : public QObject { + Q_OBJECT + Q_DISABLE_COPY(MemoryLeakTest) +public: + MemoryLeakTest(QObject *parent = NULL) : QObject(parent) {} + + void test(); + +private: + ResourceSet *set; + int iterations; + +private slots: + void resourceAcquiredHandler(QList<ResourcePolicy::ResourceType> grantedResList); + void resourceReleasedHandler(); + +}; diff --git a/tests/test-memory-leaks/test-memory-leaks.pro b/tests/test-memory-leaks/test-memory-leaks.pro new file mode 100644 index 0000000..73c1146 --- /dev/null +++ b/tests/test-memory-leaks/test-memory-leaks.pro @@ -0,0 +1,24 @@ +include(../../common.pri) +TEMPLATE = app +TARGET = test-memory-leaks +DESTDIR = build +DEPENDPATH += $${POLICY} $${BASE}/src . +INCLUDEPATH += $${LIBRESOURCEQT}/src $${LIBRESOURCEQT}/include $${LIBRESOURCEINC} $${LIBDBUSQEVENTLOOP} + +# Input +HEADERS += test-memory-leaks.h +SOURCES += test-memory-leaks.cpp + +OBJECTS_DIR = build +MOC_DIR = build + +LIBS += -L$${LIBDBUSQEVENTLOOP}/build -L$${LIBRESOURCEQT}/build -ldbus-qeventloop -lresourceqt + +CONFIG += qt debug warn_on link_pkgconfig +QT -= gui +PKGCONFIG += dbus-1 libresource0 + +# Install directives +INSTALLBASE = /usr +target.path = $${INSTALLBASE}/lib/libresourceqt-tests/ +INSTALLS = target |