summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/CppUnit/cppunit/extensions/TestNamer.h')
-rw-r--r--3rdParty/CppUnit/cppunit/extensions/TestNamer.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/3rdParty/CppUnit/cppunit/extensions/TestNamer.h b/3rdParty/CppUnit/cppunit/extensions/TestNamer.h
new file mode 100644
index 0000000..5a6471c
--- /dev/null
+++ b/3rdParty/CppUnit/cppunit/extensions/TestNamer.h
@@ -0,0 +1,89 @@
+#ifndef CPPUNIT_EXTENSIONS_TESTNAMER_H
+#define CPPUNIT_EXTENSIONS_TESTNAMER_H
+
+#include <cppunit/Portability.h>
+#include <string>
+
+#if CPPUNIT_HAVE_RTTI
+# include <typeinfo>
+#endif
+
+
+
+/*! \def CPPUNIT_TESTNAMER_DECL( variableName, FixtureType )
+ * \brief Declares a TestNamer.
+ *
+ * Declares a TestNamer for the specified type, using RTTI if enabled, otherwise
+ * using macro string expansion.
+ *
+ * RTTI is used if CPPUNIT_USE_TYPEINFO_NAME is defined and not null.
+ *
+ * \code
+ * void someMethod()
+ * {
+ * CPPUNIT_TESTNAMER_DECL( namer, AFixtureType );
+ * std::string fixtureName = namer.getFixtureName();
+ * ...
+ * \endcode
+ *
+ * \relates TestNamer
+ * \see TestNamer
+ */
+#if CPPUNIT_USE_TYPEINFO_NAME
+# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
+ CPPUNIT_NS::TestNamer variableName( typeid(FixtureType) )
+#else
+# define CPPUNIT_TESTNAMER_DECL( variableName, FixtureType ) \
+ CPPUNIT_NS::TestNamer variableName( std::string(#FixtureType) )
+#endif
+
+
+
+CPPUNIT_NS_BEGIN
+
+
+/*! \brief Names a test or a fixture suite.
+ *
+ * TestNamer is usually instantiated using CPPUNIT_TESTNAMER_DECL.
+ *
+ */
+class CPPUNIT_API TestNamer
+{
+public:
+#if CPPUNIT_HAVE_RTTI
+ /*! \brief Constructs a namer using the fixture's type-info.
+ * \param typeInfo Type-info of the fixture type. Use to name the fixture suite.
+ */
+ TestNamer( const std::type_info &typeInfo );
+#endif
+
+ /*! \brief Constructs a namer using the specified fixture name.
+ * \param fixtureName Name of the fixture suite. Usually extracted using a macro.
+ */
+ TestNamer( const std::string &fixtureName );
+
+ virtual ~TestNamer();
+
+ /*! \brief Returns the name of the fixture.
+ * \return Name of the fixture.
+ */
+ virtual std::string getFixtureName() const;
+
+ /*! \brief Returns the name of the test for the specified method.
+ * \param testMethodName Name of the method that implements a test.
+ * \return A string that is the concatenation of the test fixture name
+ * (returned by getFixtureName()) and\a testMethodName,
+ * separated using '::'. This provides a fairly unique name for a given
+ * test.
+ */
+ virtual std::string getTestNameFor( const std::string &testMethodName ) const;
+
+protected:
+ std::string m_fixtureName;
+};
+
+
+CPPUNIT_NS_END
+
+#endif // CPPUNIT_EXTENSIONS_TESTNAMER_H
+