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 70 void 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