qcpix/tsrc/qttestutil/testregistry.h
author hgs
Mon, 12 Jul 2010 00:18:57 +0530
changeset 11 7c6f43cd91cf
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (C) 2008  Remko Troncon
hgs
parents:
diff changeset
     3
 * Licensed under the MIT license.
hgs
parents:
diff changeset
     4
 * See COPYING for license details.
hgs
parents:
diff changeset
     5
 */
hgs
parents:
diff changeset
     6
hgs
parents:
diff changeset
     7
#ifndef QtTestUtil_TestRegistry_H
hgs
parents:
diff changeset
     8
#define QtTestUtil_TestRegistry_H
hgs
parents:
diff changeset
     9
hgs
parents:
diff changeset
    10
#include <QList>
hgs
parents:
diff changeset
    11
hgs
parents:
diff changeset
    12
class QObject;
hgs
parents:
diff changeset
    13
hgs
parents:
diff changeset
    14
namespace QtTestUtil {
hgs
parents:
diff changeset
    15
    
hgs
parents:
diff changeset
    16
    /**
hgs
parents:
diff changeset
    17
     * A registry of QtTest test classes.
hgs
parents:
diff changeset
    18
     * All test classes registered with QTTESTUTIL_REGISTER_TEST add 
hgs
parents:
diff changeset
    19
     * themselves to this registry. All registered tests can then be run at 
hgs
parents:
diff changeset
    20
     * once using runTests().
hgs
parents:
diff changeset
    21
     */
hgs
parents:
diff changeset
    22
    class TestRegistry {
hgs
parents:
diff changeset
    23
        public:
hgs
parents:
diff changeset
    24
            /**
hgs
parents:
diff changeset
    25
             * Retrieve the single instance of the registry.
hgs
parents:
diff changeset
    26
             */
hgs
parents:
diff changeset
    27
            static TestRegistry* getInstance();
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
            /**
hgs
parents:
diff changeset
    30
             * Register a QtTest test. 
hgs
parents:
diff changeset
    31
             * This method is called  by QTTESTUTIL_REGISTER_TEST, and you should 
hgs
parents:
diff changeset
    32
             * not use this method directly.
hgs
parents:
diff changeset
    33
             */
hgs
parents:
diff changeset
    34
            void registerTest(QObject*);
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
            /**
hgs
parents:
diff changeset
    37
             * Run all registered tests using QTest::qExec()
hgs
parents:
diff changeset
    38
             */
hgs
parents:
diff changeset
    39
            int runTests(int argc, char* argv[]);
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
        private:
hgs
parents:
diff changeset
    42
            TestRegistry() {}
hgs
parents:
diff changeset
    43
        
hgs
parents:
diff changeset
    44
        private:
hgs
parents:
diff changeset
    45
            QList<QObject*> tests_;
hgs
parents:
diff changeset
    46
    };
hgs
parents:
diff changeset
    47
}
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
#endif