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