00001 #ifndef CPPUNIT_ASSERTER_H
00002 #define CPPUNIT_ASSERTER_H
00003
00004 #include <cppunit/AdditionalMessage.h>
00005 #include <cppunit/SourceLine.h>
00006 #include <string>
00007
00008 CPPUNIT_NS_BEGIN
00009
00010
00011 class Message;
00012
00013
00046 #if defined __GNUC__
00047 # define NORETURN __attribute__((noreturn))
00048 #else
00049 # define NORETURN
00050 #endif
00051
00052 struct Asserter
00053 {
00056 NORETURN static void CPPUNIT_API fail( const Message &message,
00057 const SourceLine &sourceLine = SourceLine() );
00058
00062 NORETURN static void CPPUNIT_API fail( std::string message,
00063 const SourceLine &sourceLine = SourceLine() );
00064
00071 static void CPPUNIT_API failIf( bool shouldFail,
00072 const Message &message,
00073 const SourceLine &sourceLine = SourceLine() );
00074
00082 static void CPPUNIT_API failIf( bool shouldFail,
00083 std::string message,
00084 const SourceLine &sourceLine = SourceLine() );
00085
00096 static std::string CPPUNIT_API makeExpected( const std::string &expectedValue );
00106 static std::string CPPUNIT_API makeExpectedEqual( const std::string &expectedValue );
00113 static std::string CPPUNIT_API makeExpectedLess( const std::string &expectedValue );
00120 static std::string CPPUNIT_API makeExpectedLessEqual( const std::string &expectedValue );
00127 static std::string CPPUNIT_API makeExpectedGreater( const std::string &expectedValue );
00134 static std::string CPPUNIT_API makeExpectedGreaterEqual( const std::string &expectedValue );
00135
00145 static std::string CPPUNIT_API makeActual( const std::string &actualValue );
00146
00150 static Message CPPUNIT_API makeNotEqualMessage( const std::string &expectedValue,
00151 const std::string &actualValue,
00152 const AdditionalMessage &additionalMessage = AdditionalMessage(),
00153 const std::string &shortDescription = "equality assertion failed");
00154
00155 static Message CPPUNIT_API makeMessage( const std::string &expectedValue,
00156 const std::string &actualValue,
00157 const std::string &shortDescription,
00158 const AdditionalMessage &additionalMessage = AdditionalMessage());
00159
00168 NORETURN static void CPPUNIT_API failNotEqual( std::string expected,
00169 std::string actual,
00170 const SourceLine &sourceLine,
00171 const AdditionalMessage &additionalMessage = AdditionalMessage(),
00172 std::string shortDescription = "equality assertion failed" );
00173
00182 static void CPPUNIT_API failNotLess( std::string expected,
00183 std::string actual,
00184 const SourceLine &sourceLine,
00185 const AdditionalMessage &additionalMessage = AdditionalMessage(),
00186 std::string shortDescription = "less assertion failed" );
00187
00196 static void CPPUNIT_API failNotGreater( std::string expected,
00197 std::string actual,
00198 const SourceLine &sourceLine,
00199 const AdditionalMessage &additionalMessage = AdditionalMessage(),
00200 std::string shortDescription = "greater assertion failed" );
00201
00210 static void CPPUNIT_API failNotLessEqual( std::string expected,
00211 std::string actual,
00212 const SourceLine &sourceLine,
00213 const AdditionalMessage &additionalMessage = AdditionalMessage(),
00214 std::string shortDescription = "less equal assertion failed" );
00215
00224 static void CPPUNIT_API failNotGreaterEqual( std::string expected,
00225 std::string actual,
00226 const SourceLine &sourceLine,
00227 const AdditionalMessage &additionalMessage = AdditionalMessage(),
00228 std::string shortDescription = "greater equal assertion failed" );
00239 static void CPPUNIT_API failNotEqualIf( bool shouldFail,
00240 std::string expected,
00241 std::string actual,
00242 const SourceLine &sourceLine,
00243 const AdditionalMessage &additionalMessage = AdditionalMessage(),
00244 std::string shortDescription = "equality assertion failed" );
00245
00246 };
00247
00248
00249 CPPUNIT_NS_END
00250
00251
00252 #endif // CPPUNIT_ASSERTER_H