cellular/telephonysettings/xqbindings/psetwrapper/tsrc/common/testutilities.h
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
child 21 0a6dd2dc9970
--- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/common/testutilities.h	Tue Aug 31 15:45:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#ifndef TESTUTILITIES_H
-#define TESTUTILITIES_H
-
-#include <qobject.h>
-#include <qglobal.h>
-#include <qlist.h>
-#include <qmetaobject.h>
-#include <QDebug>
-
-/*! Provides services for OOM simulation and memory leak detection. */
-class MemoryAllocator : public QObject
-{
-    Q_OBJECT
-    
-public:
-    
-    /*! Activates OOM simulation. */
-    static void enableOomSimulation();
-    
-    /*! Disables OOM simulation. */
-    static void disableOomSimulation();
-    
-    /*! Checks whether OOM simulation is active. */
-    static bool isOomSimulationEnabled();
-    
-    /*! Returns current alloc fail index. */
-    static int currentAllocFailIndex();
-    
-    /*! Allocates memory. */
-    static void* alloc(std::size_t sz);
-    
-    /*! Frees allocated memory. */
-    static void free(void *memoryAddress);
-    
-    /*! Checks that all memory allocated through this allocator is freed. */
-    static void verifyMemoryAllocations();
-
-private:
-    
-    static bool m_isOomSimulationEnabled;
-    static int m_numOfAllocsSinceLastFail;
-    static int m_allocFailIndex;
-    static QList<void*> m_allocList;
-};
-
-/*! Provides services to run QTest cases with OOM simulation. */
-class OomTestExecuter : public QObject
-{
-    Q_OBJECT
-    
-public:
-    
-    /*! Runs specified test case with OOM simulation. */
-    template <typename CLASS>
-    static void runTest(CLASS& testObject, void(CLASS::*testMethod)())
-    {
-        MemoryAllocator::enableOomSimulation();
-
-        bool exceptionCaught = false;
-        do {
-            exceptionCaught = false;
-            int currentAllocFailIndex = 
-                MemoryAllocator::currentAllocFailIndex();
-            
-            try {
-                try {
-                    QMetaObject::invokeMethod(
-                        &testObject, "init", Qt::DirectConnection);
-                    (testObject.*testMethod)();
-                } catch (const std::bad_alloc &ex) {
-                    exceptionCaught = true;
-                    QMetaObject::invokeMethod(
-                        &testObject, "cleanup", Qt::DirectConnection);
-                }
-            // TODO: for some reason bad_alloc exception is corrupted to 
-            // unknown exception and nested catch block is needed to be able to
-            // handle situation. One level try-catch does not work for some reason.
-            } catch (...) {
-                exceptionCaught = true;
-                QMetaObject::invokeMethod(
-                    &testObject, "cleanup", Qt::DirectConnection);
-                if (currentAllocFailIndex == MemoryAllocator::currentAllocFailIndex()) {
-                    qDebug() << "OomTestExecuter::runTest, ERROR: unexpected exception!";
-                    throw;
-                }
-            }
-        } while(exceptionCaught);
-        
-        QMetaObject::invokeMethod(&testObject, "cleanup", Qt::DirectConnection);
-        MemoryAllocator::disableOomSimulation();
-    }
-
-    /*! Runs specified test case with OOM simulation. */
-    static void runTest(
-        QObject &testObject, 
-        const char *testMethod);
-    
-    /*! Runs all test cases in given QTest object with OOM simulation. */
-    static void runAllTests(
-        QObject &testObject, 
-        const char *callingTestMethod);
-
-private:
-    
-    static bool isValidSlot(const QMetaMethod &sl);
-};
-
-#define EXPECT_EXCEPTION(statements)    \
-{                                       \
-    bool exceptionDetected = false;     \
-    try {                               \
-        statements                      \
-    } catch (...) {                     \
-        exceptionDetected = true;       \
-    }                                   \
-    QVERIFY(true == exceptionDetected); \
-}
-
-#define QTEST_MAIN_S60(TestObject) \
-int main(int argc, char *argv[]) \
-{ \
-    char *new_argv[3]; \
-    QCoreApplication app(argc, argv); \
-    \
-    QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \
-    QByteArray   bytes  = str.toAscii(); \
-    \
-    char arg1[] = "-o"; \
-    \
-    new_argv[0] = argv[0]; \
-    new_argv[1] = arg1; \
-    new_argv[2] = bytes.data(); \
-    \
-    TestObject tc; \
-    int result = QTest::qExec(&tc, 3, new_argv); \
-    \
-    MemoryAllocator::verifyMemoryAllocations(); \
-    \
-    return result;\
-}
-
-#endif  // TESTUTILITIES_H