/******************************************************************** * COPYRIGHT: * Copyright (c) 2004-2010, International Business Machines Corporation and * others. All Rights Reserved. ********************************************************************/ /* Created by grhoten 03/17/2004 */ /* Base class for data driven tests */ #ifndef U_TESTFW_TESTLOG #define U_TESTFW_TESTLOG #include "unicode/errorcode.h" #include "unicode/unistr.h" #include "unicode/testtype.h" /** Facilitates internal logging of data driven test service * It would be interesting to develop this into a full * fledged control system as in Java. */ class T_CTEST_EXPORT_API TestLog { public: virtual ~TestLog(); virtual void errln( const UnicodeString &message ) = 0; virtual void logln( const UnicodeString &message ) = 0; virtual void dataerrln( const UnicodeString &message ) = 0; virtual const char* getTestDataPath(UErrorCode& err) = 0; }; class T_CTEST_EXPORT_API IcuTestErrorCode : public ErrorCode { public: IcuTestErrorCode(TestLog &callingTestClass, const char *callingTestName) : testClass(callingTestClass), testName(callingTestName) {} virtual ~IcuTestErrorCode(); // Returns TRUE if isFailure(). UBool logIfFailureAndReset(const char *fmt, ...); UBool logDataIfFailureAndReset(const char *fmt, ...); protected: virtual void handleFailure() const; private: TestLog &testClass; const char *const testName; }; #endif