1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 2004-2010, International Business Machines Corporation and 4 * others. All Rights Reserved. 5 ********************************************************************/ 6 7 /* Created by grhoten 03/17/2004 */ 8 9 /* Base class for data driven tests */ 10 11 #ifndef U_TESTFW_TESTLOG 12 #define U_TESTFW_TESTLOG 13 14 #include "unicode/errorcode.h" 15 #include "unicode/unistr.h" 16 #include "unicode/testtype.h" 17 18 /** Facilitates internal logging of data driven test service 19 * It would be interesting to develop this into a full 20 * fledged control system as in Java. 21 */ 22 class T_CTEST_EXPORT_API TestLog { 23 public: 24 virtual ~TestLog(); 25 virtual void errln( const UnicodeString &message ) = 0; 26 virtual void logln( const UnicodeString &message ) = 0; 27 virtual void dataerrln( const UnicodeString &message ) = 0; 28 virtual const char* getTestDataPath(UErrorCode& err) = 0; 29 }; 30 31 class T_CTEST_EXPORT_API IcuTestErrorCode : public ErrorCode { 32 public: 33 IcuTestErrorCode(TestLog &callingTestClass, const char *callingTestName) : 34 testClass(callingTestClass), testName(callingTestName) {} 35 virtual ~IcuTestErrorCode(); 36 // Returns TRUE if isFailure(). 37 UBool logIfFailureAndReset(const char *fmt, ...); 38 UBool logDataIfFailureAndReset(const char *fmt, ...); 39 protected: 40 virtual void handleFailure() const; 41 private: 42 TestLog &testClass; 43 const char *const testName; 44 }; 45 46 #endif 47