| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | /* *  ctkTestRegistration.cpp *  ctkTestSuiteEngine * *  Created by Paolo Quadrani on 17/09/09. *  Copyright 2009 B3C. All rights reserved. * *  See Licence at: http://tiny.cc/QXJ4D * */#ifndef CTKTESTREGISTRATION_#define CTKTESTREGISTRATION_// Includes list#include "ctkTestRegistry.h"namespace ctkQA {/** * A macro to register a test class. * * This macro will create a static variable which registers the * testclass with the TestRegistry, and creates an instance of the * test class. * * Execute this macro in the body of your unit test's .cpp file, e.g. *    class MyTest { *			... *		}; * *		CTK_REGISTER_TEST(MyTest); */#define CTK_REGISTER_TEST(TestClass) \    static ctkTestRegistration<TestClass> TestClass##Registration	/**	 * A wrapper class around a test to manage registration and static	 * creation of an instance of the test class.     * This class is used by CTK_REGISTER_TEST(), and you should not	 * use this class directly.	 */    template<typename T>    class ctkTestRegistration {		public:            ///!brief Registration class constructor.            /** The constructor also register also the test passed as typename into the test suite registry. */            ctkTestRegistration() {                m_TestToRegister = new T();                ctkTestRegistry::instance()->registerTest(m_TestToRegister);			}            ///!brief Registration class destructor            ~ctkTestRegistration() {                delete m_TestToRegister;			}				private:            T* m_TestToRegister; ///< Test to be registered into the test suite.	};}#endif //CTKTESTREGISTRATION_
 |