1/******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 1997-2010, International Business Machines 4 * Corporation and others. All Rights Reserved. 5 ********************************************************************/ 6 7/** 8 * IntlTestFormat is the medium level test class for everything in the directory "format". 9 */ 10 11#include "unicode/utypes.h" 12 13#if !UCONFIG_NO_FORMATTING 14 15#include "itformat.h" 16#include "tsdate.h" 17#include "tsnmfmt.h" 18#include "caltest.h" 19#include "callimts.h" 20#include "tztest.h" 21#include "tzbdtest.h" 22#include "tsdcfmsy.h" // DecimalFormatSymbols 23#include "tchcfmt.h" 24#include "tsdtfmsy.h" // DateFormatSymbols 25#include "dcfmapts.h" // DecimalFormatAPI 26#include "tfsmalls.h" // Format Small Classes 27#include "nmfmapts.h" // NumberFormatAPI 28#include "numfmtst.h" // NumberFormatTest 29#include "sdtfmtts.h" // SimpleDateFormatAPI 30#include "dtfmapts.h" // DateFormatAPI 31#include "dtfmttst.h" // DateFormatTest 32#include "tmsgfmt.h" // TestMessageFormat 33#include "dtfmrgts.h" // DateFormatRegressionTest 34#include "msfmrgts.h" // MessageFormatRegressionTest 35#include "miscdtfm.h" // DateFormatMiscTests 36#include "nmfmtrt.h" // NumberFormatRoundTripTest 37#include "numrgts.h" // NumberFormatRegressionTest 38#include "dtfmtrtts.h" // DateFormatRoundTripTest 39#include "pptest.h" // ParsePositionTest 40#include "calregts.h" // CalendarRegressionTest 41#include "tzregts.h" // TimeZoneRegressionTest 42#include "astrotst.h" // AstroTest 43#include "incaltst.h" // IntlCalendarTest 44#include "calcasts.h" // CalendarCaseTest 45#include "tzrulets.h" // TimeZoneRuleTest 46#include "dadrcal.h" // DataDrivenCalendarTest 47#include "dadrfmt.h" // DataDrivenFormatTest 48#include "dtptngts.h" // IntlTestDateTimePatternGeneratorAPI 49#include "tzoffloc.h" // TimeZoneOffsetLocalTest 50#include "tzfmttst.h" // TimeZoneFormatTest 51#include "plurults.h" // PluralRulesTest 52#include "plurfmts.h" // PluralFormatTest 53#include "selfmts.h" // PluralFormatTest 54#include "dtifmtts.h" // DateIntervalFormatTest 55#include "tufmtts.h" // TimeUnitTest 56#include "locnmtst.h" // LocaleDisplayNamesTest 57#include "dcfmtest.h" // DecimalFormatTest 58 59#define TESTCLASS(id, TestClass) \ 60 case id: \ 61 name = #TestClass; \ 62 if (exec) { \ 63 logln(#TestClass " test---"); \ 64 logln((UnicodeString)""); \ 65 TestClass test; \ 66 callTest(test, par); \ 67 } \ 68 break 69 70void IntlTestFormat::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ) 71{ 72 // for all format tests, always set default Locale and TimeZone to ENGLISH and PST. 73 TimeZone* saveDefaultTimeZone = NULL; 74 Locale saveDefaultLocale = Locale::getDefault(); 75 if (exec) { 76 saveDefaultTimeZone = TimeZone::createDefault(); 77 TimeZone *tz = TimeZone::createTimeZone("PST"); 78 TimeZone::setDefault(*tz); 79 delete tz; 80 UErrorCode status = U_ZERO_ERROR; 81 Locale::setDefault( Locale::getEnglish(), status ); 82 if (U_FAILURE(status)) { 83 errln("itformat: couldn't set default Locale to ENGLISH!"); 84 } 85 } 86 if (exec) logln("TestSuite Format: "); 87 switch (index) { 88 TESTCLASS(0,IntlTestDateFormat); 89 TESTCLASS(1,IntlTestNumberFormat); 90 TESTCLASS(2,CalendarTest); 91 TESTCLASS(3,CalendarLimitTest); 92 TESTCLASS(4,TimeZoneTest); 93 TESTCLASS(5,TimeZoneBoundaryTest); 94 TESTCLASS(6,TestChoiceFormat); 95 TESTCLASS(7,IntlTestDecimalFormatSymbols); 96 TESTCLASS(8,IntlTestDateFormatSymbols); 97 TESTCLASS(9,IntlTestDecimalFormatAPI); 98 TESTCLASS(10,TestFormatSmallClasses); 99 TESTCLASS(11,IntlTestNumberFormatAPI); 100 TESTCLASS(12,IntlTestSimpleDateFormatAPI); 101 TESTCLASS(13,IntlTestDateFormatAPI); 102 TESTCLASS(14,DateFormatTest); 103 TESTCLASS(15,TestMessageFormat); 104 TESTCLASS(16,NumberFormatTest); 105 TESTCLASS(17,DateFormatRegressionTest); 106 TESTCLASS(18,MessageFormatRegressionTest); 107 TESTCLASS(19,DateFormatMiscTests); 108 TESTCLASS(20,NumberFormatRoundTripTest); 109 TESTCLASS(21,NumberFormatRegressionTest); 110 TESTCLASS(22,DateFormatRoundTripTest); 111 TESTCLASS(23,ParsePositionTest); 112 TESTCLASS(24,CalendarRegressionTest); 113 TESTCLASS(25,TimeZoneRegressionTest); 114 TESTCLASS(26,IntlCalendarTest); 115 TESTCLASS(27,AstroTest); 116 TESTCLASS(28,CalendarCaseTest); 117 TESTCLASS(29,TimeZoneRuleTest); 118#if !UCONFIG_NO_FILE_IO && !UCONFIG_NO_LEGACY_CONVERSION 119 TESTCLASS(30,DataDrivenCalendarTest); 120 TESTCLASS(31,DataDrivenFormatTest); 121#endif 122 TESTCLASS(32,IntlTestDateTimePatternGeneratorAPI); 123 TESTCLASS(33,TimeZoneOffsetLocalTest); 124 TESTCLASS(34,TimeZoneFormatTest); 125 TESTCLASS(35,PluralRulesTest); 126 TESTCLASS(36,PluralFormatTest); 127 TESTCLASS(37,DateIntervalFormatTest); 128 TESTCLASS(38,TimeUnitTest); 129 TESTCLASS(39,SelectFormatTest); 130 TESTCLASS(40,LocaleDisplayNamesTest); 131#if !UCONFIG_NO_REGULAR_EXPRESSIONS 132 TESTCLASS(41,DecimalFormatTest); 133#endif 134 135 default: name = ""; break; //needed to end loop 136 } 137 if (exec) { 138 // restore saved Locale and TimeZone 139 TimeZone::adoptDefault(saveDefaultTimeZone); 140 UErrorCode status = U_ZERO_ERROR; 141 Locale::setDefault( saveDefaultLocale, status ); 142 if (U_FAILURE(status)) { 143 errln("itformat: couldn't re-set default Locale!"); 144 } 145 } 146} 147 148#endif /* #if !UCONFIG_NO_FORMATTING */ 149