summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/icu')
-rw-r--r--dev-libs/icu/ChangeLog6
-rw-r--r--dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch177
-rw-r--r--dev-libs/icu/icu-4.0.1.ebuild3
3 files changed, 184 insertions, 2 deletions
diff --git a/dev-libs/icu/ChangeLog b/dev-libs/icu/ChangeLog
index 79da5e6b9961..2f24bd867677 100644
--- a/dev-libs/icu/ChangeLog
+++ b/dev-libs/icu/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for dev-libs/icu
# Copyright 2002-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/ChangeLog,v 1.78 2009/04/14 13:48:34 arfrever Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/ChangeLog,v 1.79 2009/04/14 19:37:51 arfrever Exp $
+
+ 14 Apr 2009; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
+ +files/icu-4.0.1-TestDisplayNamesMeta.patch, icu-4.0.1.ebuild:
+ Fix TestDisplayNamesMeta test (bug #265352).
14 Apr 2009; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
+files/icu-4.0.1-fix_parallel_building.patch, icu-4.0.1.ebuild:
diff --git a/dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch b/dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch
new file mode 100644
index 000000000000..be1f7ec59f25
--- /dev/null
+++ b/dev-libs/icu/files/icu-4.0.1-TestDisplayNamesMeta.patch
@@ -0,0 +1,177 @@
+https://bugs.icu-project.org/trac/ticket/6814
+https://bugs.icu-project.org/trac/changeset/25681
+
+--- i18n/olsontz.cpp
++++ i18n/olsontz.cpp
+@@ -1,6 +1,6 @@
+ /*
+ **********************************************************************
+-* Copyright (c) 2003-2008, International Business Machines
++* Copyright (c) 2003-2009, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ * Author: Alan Liu
+@@ -526,8 +526,8 @@
+ if (transitionTimes[i] >= limit) {
+ break;
+ }
+- if (transitionTimes[i] >= start &&
+- dstOffset(typeData[i]) != 0) {
++ if ((transitionTimes[i] >= start && dstOffset(typeData[i]) != 0)
++ || (transitionTimes[i] > start && i > 0 && dstOffset(typeData[i - 1]) != 0)) {
+ return TRUE;
+ }
+ }
+--- i18n/timezone.cpp
++++ i18n/timezone.cpp
+@@ -1,6 +1,6 @@
+ /*
+ *******************************************************************************
+-* Copyright (C) 1997-2008, International Business Machines Corporation and *
++* Copyright (C) 1997-2009, International Business Machines Corporation and *
+ * others. All Rights Reserved. *
+ *******************************************************************************
+ *
+@@ -1240,6 +1240,8 @@
+ }
+ } else {
+ // The display name for standard time was requested, but currently in DST
++ // or display name for daylight saving time was requested, but this zone no longer
++ // observes DST.
+ tz = new SimpleTimeZone(rawOffset, tempID);
+ if (U_FAILURE(status) || tz == NULL) {
+ if (U_SUCCESS(status)) {
+--- test/intltest/tztest.cpp
++++ test/intltest/tztest.cpp
+@@ -34,6 +34,11 @@
+ // class TimeZoneTest
+ // *****************************************************************************
+
++// TODO: We should probably read following data at runtime, so we can update
++// the these values every release with necessary data changes.
++const int32_t TimeZoneTest::REFERENCE_YEAR = 2009;
++const char * TimeZoneTest::REFERENCE_DATA_VERSION = "2009d";
++
+ void TimeZoneTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
+ {
+ if (exec) logln("TestSuite TestTimeZone");
+@@ -579,18 +584,13 @@
+ */
+ void TimeZoneTest::TestShortZoneIDs()
+ {
+- // TODO: This test case is tzdata sensitive.
+- // We should actually put the data version in this test code
+- // at build time. For now, we just hardcode the version string
+- // and display warning instead of error if non-reference tzdata
+- // version is used.
+- const char *REFERENCE_DATA_VERSION = "2008i";
+-
+ UErrorCode status = U_ZERO_ERROR;
++
++ // This test case is tzdata version sensitive.
+ UBool isNonReferenceTzdataVersion = FALSE;
+ const char *tzdataVer = TimeZone::getTZDataVersion(status);
+ if (failure(status, "getTZDataVersion")) return;
+- if (uprv_strcmp(tzdataVer, REFERENCE_DATA_VERSION) != 0) {
++ if (uprv_strcmp(tzdataVer, TimeZoneTest::REFERENCE_DATA_VERSION) != 0) {
+ // Note: We want to display a warning message here if
+ // REFERENCE_DATA_VERSION is out of date - so we
+ // do not forget to update the value before GA.
+@@ -603,11 +603,11 @@
+ // Note: useDaylightTime returns true if DST is observed
+ // in the time zone in the current calendar year. The test
+ // data is valid for the date after the reference year below.
+- // If system clock is before the year, some test cases may fail.
+- const int32_t REFERENCE_YEAR = 2009;
++ // If system clock is before the year, some test cases may
++ // fail.
+ GregorianCalendar cal(*TimeZone::getGMT(), status);
+ if (failure(status, "GregorianCalendar")) return;
+- cal.set(REFERENCE_YEAR, UCAL_JANUARY, 2); // day 2 in GMT
++ cal.set(TimeZoneTest::REFERENCE_YEAR, UCAL_JANUARY, 2); // day 2 in GMT
+
+ UBool isDateBeforeReferenceYear = ucal_getNow() < cal.getTime(status);
+ if (failure(status, "Calendar::getTime")) return;
+@@ -1898,6 +1898,15 @@
+ };
+
+ void TimeZoneTest::TestDisplayNamesMeta() {
++ UErrorCode status = U_ZERO_ERROR;
++ GregorianCalendar cal(*TimeZone::getGMT(), status);
++ if (failure(status, "GregorianCalendar")) return;
++
++ UBool isReferenceYear = TRUE;
++ if (cal.get(UCAL_YEAR, status) != TimeZoneTest::REFERENCE_YEAR) {
++ isReferenceYear = FALSE;
++ }
++
+ UBool sawAnError = FALSE;
+ for (int testNum = 0; zoneDisplayTestData[testNum].zoneName != NULL; testNum++) {
+ Locale locale = Locale::createFromName(zoneDisplayTestData[testNum].localeName);
+@@ -1908,20 +1917,33 @@
+ locale,
+ displayName);
+ if (displayName != zoneDisplayTestData[testNum].expectedDisplayName) {
+- sawAnError = TRUE;
+ char name[100];
+ UErrorCode status = U_ZERO_ERROR;
+ displayName.extract(name, 100, NULL, status);
+- errln("Incorrect time zone display name. zone = \"%s\",\n"
+- " locale = \"%s\", style = %s, Summertime = %d\n"
+- " Expected \"%s\", "
+- " Got \"%s\"\n", zoneDisplayTestData[testNum].zoneName,
+- zoneDisplayTestData[testNum].localeName,
+- zoneDisplayTestData[testNum].style==TimeZone::SHORT ?
+- "SHORT" : "LONG",
+- zoneDisplayTestData[testNum].summerTime,
+- zoneDisplayTestData[testNum].expectedDisplayName,
+- name);
++ if (isReferenceYear) {
++ sawAnError = TRUE;
++ errln("Incorrect time zone display name. zone = \"%s\",\n"
++ " locale = \"%s\", style = %s, Summertime = %d\n"
++ " Expected \"%s\", "
++ " Got \"%s\"\n", zoneDisplayTestData[testNum].zoneName,
++ zoneDisplayTestData[testNum].localeName,
++ zoneDisplayTestData[testNum].style==TimeZone::SHORT ?
++ "SHORT" : "LONG",
++ zoneDisplayTestData[testNum].summerTime,
++ zoneDisplayTestData[testNum].expectedDisplayName,
++ name);
++ } else {
++ logln("Incorrect time zone display name. zone = \"%s\",\n"
++ " locale = \"%s\", style = %s, Summertime = %d\n"
++ " Expected \"%s\", "
++ " Got \"%s\"\n", zoneDisplayTestData[testNum].zoneName,
++ zoneDisplayTestData[testNum].localeName,
++ zoneDisplayTestData[testNum].style==TimeZone::SHORT ?
++ "SHORT" : "LONG",
++ zoneDisplayTestData[testNum].summerTime,
++ zoneDisplayTestData[testNum].expectedDisplayName,
++ name);
++ }
+ }
+ delete zone;
+ }
+--- test/intltest/tztest.h
++++ test/intltest/tztest.h
+@@ -1,6 +1,6 @@
+
+ /********************************************************************
+- * Copyright (c) 1997-2008, International Business Machines
++ * Copyright (c) 1997-2009, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ ********************************************************************/
+
+@@ -98,6 +98,11 @@
+ // internal functions
+ static UnicodeString& formatOffset(int32_t offset, UnicodeString& rv);
+ static UnicodeString& formatTZID(int32_t offset, UnicodeString& rv);
++
++ // Some test case data is current date/tzdata version sensitive and producing errors
++ // when year/rule are changed.
++ static const int32_t REFERENCE_YEAR;
++ static const char *REFERENCE_DATA_VERSION;
+ };
+
+ #endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/dev-libs/icu/icu-4.0.1.ebuild b/dev-libs/icu/icu-4.0.1.ebuild
index ec215ebb8688..1d7cfd98b2e9 100644
--- a/dev-libs/icu/icu-4.0.1.ebuild
+++ b/dev-libs/icu/icu-4.0.1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/icu-4.0.1.ebuild,v 1.2 2009/04/14 13:48:34 arfrever Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/icu-4.0.1.ebuild,v 1.3 2009/04/14 19:37:51 arfrever Exp $
EAPI="2"
@@ -55,6 +55,7 @@ src_prepare() {
done
epatch "${FILESDIR}/${P}-fix_parallel_building.patch"
+ epatch "${FILESDIR}/${P}-TestDisplayNamesMeta.patch"
}
src_configure() {