OLD | NEW |
1 /* | 1 /* |
2 ******************************************************************************* | 2 ******************************************************************************* |
3 * Copyright (C) 2007-2014, International Business Machines Corporation and * | 3 * Copyright (C) 2007-2015, International Business Machines Corporation and * |
4 * others. All Rights Reserved. * | 4 * others. All Rights Reserved. * |
5 ******************************************************************************* | 5 ******************************************************************************* |
6 */ | 6 */ |
7 #include "unicode/utypes.h" | 7 #include "unicode/utypes.h" |
8 | 8 |
9 #if !UCONFIG_NO_FORMATTING | 9 #if !UCONFIG_NO_FORMATTING |
10 | 10 |
11 #include "tzfmttst.h" | 11 #include "tzfmttst.h" |
12 | 12 |
13 #include "simplethread.h" | 13 #include "simplethread.h" |
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 data.index = 0; | 671 data.index = 0; |
672 data.testCounts = testCounts; | 672 data.testCounts = testCounts; |
673 data.times = times; | 673 data.times = times; |
674 data.locales = LOCALES; | 674 data.locales = LOCALES; |
675 data.nLocales = nLocales; | 675 data.nLocales = nLocales; |
676 data.quick = quick; | 676 data.quick = quick; |
677 data.START_TIME = START_TIME; | 677 data.START_TIME = START_TIME; |
678 data.END_TIME = END_TIME; | 678 data.END_TIME = END_TIME; |
679 data.numDone = 0; | 679 data.numDone = 0; |
680 | 680 |
681 #if (ICU_USE_THREADS==0) | 681 TestTimeRoundTripThread **threads = new TestTimeRoundTripThread*[nThreads]; |
682 TestTimeRoundTripThread fakeThread(*this, data, 0); | |
683 fakeThread.run(); | |
684 #else | |
685 TestTimeRoundTripThread **threads = new TestTimeRoundTripThread*[threadCount
]; | |
686 int32_t i; | 682 int32_t i; |
687 for (i = 0; i < nThreads; i++) { | 683 for (i = 0; i < nThreads; i++) { |
688 threads[i] = new TestTimeRoundTripThread(*this, data, i); | 684 threads[i] = new TestTimeRoundTripThread(*this, data, i); |
689 if (threads[i]->start() != 0) { | 685 if (threads[i]->start() != 0) { |
690 errln("Error starting thread %d", i); | 686 errln("Error starting thread %d", i); |
691 } | 687 } |
692 } | 688 } |
693 | 689 |
694 UBool done = false; | 690 for (i = 0; i < nThreads; i++) { |
695 while (true) { | 691 threads[i]->join(); |
696 umtx_lock(NULL); | 692 } |
697 if (data.numDone == nLocales) { | 693 if (data.numDone != nLocales) { |
698 done = true; | 694 errln("%s:%d data.numDone = %d, nLocales = %d", __FILE__, __LINE__, data
.numDone, nLocales); |
699 } | |
700 umtx_unlock(NULL); | |
701 if (done) | |
702 break; | |
703 SimpleThread::sleep(1000); | |
704 } | 695 } |
705 | 696 |
706 for (i = 0; i < nThreads; i++) { | 697 for (i = 0; i < nThreads; i++) { |
707 delete threads[i]; | 698 delete threads[i]; |
708 } | 699 } |
709 delete [] threads; | 700 delete [] threads; |
710 | 701 |
711 #endif | |
712 UDate total = 0; | 702 UDate total = 0; |
713 logln("### Elapsed time by patterns ###"); | 703 logln("### Elapsed time by patterns ###"); |
714 for (int32_t i = 0; i < NUM_PATTERNS; i++) { | 704 for (int32_t i = 0; i < NUM_PATTERNS; i++) { |
715 logln(UnicodeString("") + data.times[i] + "ms (" + PATTERNS[i] + ")"); | 705 logln(UnicodeString("") + data.times[i] + "ms (" + PATTERNS[i] + ")"); |
716 total += data.times[i]; | 706 total += data.times[i]; |
717 } | 707 } |
718 logln((UnicodeString) "Total: " + total + "ms"); | 708 logln((UnicodeString) "Total: " + total + "ms"); |
719 logln((UnicodeString) "Iteration: " + data.testCounts); | 709 logln((UnicodeString) "Iteration: " + data.testCounts); |
720 | 710 |
721 delete cal; | 711 delete cal; |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 }; | 943 }; |
954 | 944 |
955 const int32_t MIN_OFFSET_UNIT[] = { | 945 const int32_t MIN_OFFSET_UNIT[] = { |
956 60000, 60000, 60000, 1000, 1000, | 946 60000, 60000, 60000, 1000, 1000, |
957 60000, 60000, 60000, 1000, 1000, | 947 60000, 60000, 60000, 1000, 1000, |
958 1000, | 948 1000, |
959 }; | 949 }; |
960 | 950 |
961 // Formatting | 951 // Formatting |
962 UErrorCode status = U_ZERO_ERROR; | 952 UErrorCode status = U_ZERO_ERROR; |
963 LocalPointer<SimpleDateFormat> sdf(new SimpleDateFormat(status)); | 953 LocalPointer<SimpleDateFormat> sdf(new SimpleDateFormat(status), status); |
964 if (U_FAILURE(status)) { | 954 if (U_FAILURE(status)) { |
965 dataerrln("Fail new SimpleDateFormat: %s", u_errorName(status)); | 955 dataerrln("Fail new SimpleDateFormat: %s", u_errorName(status)); |
966 return; | 956 return; |
967 } | 957 } |
968 UDate d = Calendar::getNow(); | 958 UDate d = Calendar::getNow(); |
969 | 959 |
970 for (uint32_t i = 0; i < sizeof(OFFSET)/sizeof(OFFSET[0]); i++) { | 960 for (uint32_t i = 0; i < sizeof(OFFSET)/sizeof(OFFSET[0]); i++) { |
971 SimpleTimeZone* tz = new SimpleTimeZone(OFFSET[i], UnicodeString("Zone O
ffset:") + OFFSET[i] + "ms"); | 961 SimpleTimeZone* tz = new SimpleTimeZone(OFFSET[i], UnicodeString("Zone O
ffset:") + OFFSET[i] + "ms"); |
972 sdf->adoptTimeZone(tz); | 962 sdf->adoptTimeZone(tz); |
973 for (int32_t j = 0; PATTERN[j] != 0; j++) { | 963 for (int32_t j = 0; PATTERN[j] != 0; j++) { |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1226 assertEquals(UnicodeString("Format result for ") + DATA[i].tzid + " (Tes
t Case " + i + ")", expected, out); | 1216 assertEquals(UnicodeString("Format result for ") + DATA[i].tzid + " (Tes
t Case " + i + ")", expected, out); |
1227 if (DATA[i].timeType != timeType) { | 1217 if (DATA[i].timeType != timeType) { |
1228 dataerrln(UnicodeString("Formatted time zone type (Test Case ") + i
+ "), returned=" | 1218 dataerrln(UnicodeString("Formatted time zone type (Test Case ") + i
+ "), returned=" |
1229 + timeType + ", expected=" + DATA[i].timeType); | 1219 + timeType + ", expected=" + DATA[i].timeType); |
1230 } | 1220 } |
1231 } | 1221 } |
1232 } | 1222 } |
1233 | 1223 |
1234 | 1224 |
1235 #endif /* #if !UCONFIG_NO_FORMATTING */ | 1225 #endif /* #if !UCONFIG_NO_FORMATTING */ |
OLD | NEW |