10596faeddefbf198de137d5e893708495ab1584cFredrik Roubert// © 2016 and later: Unicode, Inc. and others. 264339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html 3b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/******************************************************************** 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * COPYRIGHT: 550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Copyright (c) 2004-2010, International Business Machines Corporation and 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * others. All Rights Reserved. 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ********************************************************************/ 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/* Created by grhoten 03/17/2004 */ 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/* Base class for data driven tests */ 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef U_TESTFW_TESTLOG 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define U_TESTFW_TESTLOG 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 1650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "unicode/errorcode.h" 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/unistr.h" 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/testtype.h" 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** Facilitates internal logging of data driven test service 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * It would be interesting to develop this into a full 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * fledged control system as in Java. 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruclass T_CTEST_EXPORT_API TestLog { 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic: 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual ~TestLog(); 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual void errln( const UnicodeString &message ) = 0; 2850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual void logln( const UnicodeString &message ) = 0; 29c69afcec261fc345fda8daf46f0ea6b4351dc777Jean-Baptiste Queru virtual void dataerrln( const UnicodeString &message ) = 0; 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual const char* getTestDataPath(UErrorCode& err) = 0; 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 3350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoclass T_CTEST_EXPORT_API IcuTestErrorCode : public ErrorCode { 3450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehopublic: 3550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho IcuTestErrorCode(TestLog &callingTestClass, const char *callingTestName) : 3650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho testClass(callingTestClass), testName(callingTestName) {} 3750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual ~IcuTestErrorCode(); 3850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho // Returns TRUE if isFailure(). 3950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho UBool logIfFailureAndReset(const char *fmt, ...); 4050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho UBool logDataIfFailureAndReset(const char *fmt, ...); 4150294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoprotected: 4250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho virtual void handleFailure() const; 4350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoprivate: 4450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho TestLog &testClass; 4550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho const char *const testName; 4650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho}; 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 49