summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-04-04 23:01:52 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-04-04 23:01:52 +0000
commita186543aece4065fef4c08433ea55ea383eb1e36 (patch)
tree8f9db5585995fac5131efca1030f8b80607822f4
parentd10a92ebef1e4917a90e680a89e457f388f14891 (diff)
parent264b7028df436316d856fc58d9bf3f23931fc39a (diff)
downloadicu-sparse-8430561-L04400000954274717.tar.gz
Snap for 8401853 from 264b7028df436316d856fc58d9bf3f23931fc39a to android11-tests-releasesparse-8430561-L04400000954274717
Change-Id: I8af433653d11d2622535f47e70fe7975241ef44b
-rw-r--r--android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java65
-rw-r--r--icu4c/source/test/intltest/tztest.cpp68
-rw-r--r--icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java65
3 files changed, 118 insertions, 80 deletions
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java
index df307d5eb..9d4dc7cba 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/timezone/TimeZoneTest.java
@@ -1507,9 +1507,18 @@ public class TimeZoneTest extends TestFmwk
@Test
public void TestCanonicalID() {
- // Some canonical IDs in CLDR are defined as "Link"
- // in Olson tzdata.
+ // Olson (IANA) tzdata used to have very few "Link"s long time ago.
+ // This test case was written when most of CLDR canonical time zones are
+ // defined as independent "Zone" in the TZ database.
+ // Since then, the TZ maintainer found some historic rules in mid 20th century
+ // were not really reliable, and many zones are now sharing rules.
+ // As of TZ database release 2022a, there are quite a lot of zones defined
+ // by "Link" to another zone, so the exception table below becomes really
+ // big. It might be still useful to make sure CLDR zone aliases are consistent
+ // with zone rules.
final String[][] excluded1 = {
+ // {"<link-from>", "<link-to> (A zone ID with "Zone" rule)"},
+ {"Africa/Accra", "Africa/Abidjan"},
{"Africa/Addis_Ababa", "Africa/Nairobi"},
{"Africa/Asmera", "Africa/Nairobi"},
{"Africa/Bamako", "Africa/Abidjan"},
@@ -1544,39 +1553,43 @@ public class TimeZoneTest extends TestFmwk
{"Africa/Ouagadougou", "Africa/Abidjan"},
{"Africa/Porto-Novo", "Africa/Lagos"},
{"Africa/Sao_Tome", "Africa/Abidjan"},
- {"America/Antigua", "America/Port_of_Spain"},
- {"America/Anguilla", "America/Port_of_Spain"},
+ {"America/Antigua", "America/Puerto_Rico"},
+ {"America/Anguilla", "America/Puerto_Rico"},
+ {"America/Aruba", "America/Puerto_Rico"},
+ {"America/Atikokan", "America/Panama"},
+ {"America/Blanc-Sablon", "America/Puerto_Rico"},
{"America/Cayman", "America/Panama"},
- // TODO(b/204533494): enable this check back.
- // Android-Changed: due to issues with time zones canonicity, decision was made
- // to keep America/Coral_Harbour as alias to America/Atikokan.
- // See more details in system/timezone/RELEASE_NOTES.md
- // {"America/Coral_Harbour", "America/Panama"},
- {"America/Curacao", "America/Aruba"},
- {"America/Dominica", "America/Port_of_Spain"},
- {"America/Grenada", "America/Port_of_Spain"},
- {"America/Guadeloupe", "America/Port_of_Spain"},
- {"America/Kralendijk", "America/Aruba"},
- {"America/Lower_Princes", "America/Aruba"},
- {"America/Marigot", "America/Port_of_Spain"},
- {"America/Montserrat", "America/Port_of_Spain"},
+ {"America/Coral_Harbour", "America/Panama"},
+ {"America/Creston", "America/Phoenix"},
+ {"America/Curacao", "America/Puerto_Rico"},
+ {"America/Dominica", "America/Puerto_Rico"},
+ {"America/Grenada", "America/Puerto_Rico"},
+ {"America/Guadeloupe", "America/Puerto_Rico"},
+ {"America/Kralendijk", "America/Puerto_Rico"},
+ {"America/Lower_Princes", "America/Puerto_Rico"},
+ {"America/Marigot", "America/Puerto_Rico"},
+ {"America/Montreal", "America/Toronto"},
+ {"America/Montserrat", "America/Puerto_Rico"},
+ {"America/Nassau", "America/Toronto"},
+ {"America/Port_of_Spain", "America/Puerto_Rico"},
{"America/Santa_Isabel", "America/Tijuana"},
{"America/Shiprock", "America/Denver"},
- {"America/St_Barthelemy", "America/Port_of_Spain"},
- {"America/St_Kitts", "America/Port_of_Spain"},
- {"America/St_Lucia", "America/Port_of_Spain"},
- {"America/St_Thomas", "America/Port_of_Spain"},
- {"America/St_Vincent", "America/Port_of_Spain"},
- {"America/Toronto", "America/Montreal"},
- {"America/Tortola", "America/Port_of_Spain"},
+ {"America/St_Barthelemy", "America/Puerto_Rico"},
+ {"America/St_Kitts", "America/Puerto_Rico"},
+ {"America/St_Lucia", "America/Puerto_Rico"},
+ {"America/St_Thomas", "America/Puerto_Rico"},
+ {"America/St_Vincent", "America/Puerto_Rico"},
+ {"America/Tortola", "America/Puerto_Rico"},
{"America/Virgin", "America/Puerto_Rico"},
+ {"Antarctica/DumontDUrville", "Pacific/Port_Moresby"},
{"Antarctica/South_Pole", "Antarctica/McMurdo"},
+ {"Antarctica/Syowa", "Asia/Riyadh"},
{"Arctic/Longyearbyen", "Europe/Oslo"},
- {"Asia/Kuwait", "Asia/Aden"},
+ {"Asia/Aden", "Asia/Riyadh"},
+ {"Asia/Kuwait", "Asia/Riyadh"},
{"Asia/Muscat", "Asia/Dubai"},
{"Asia/Phnom_Penh", "Asia/Bangkok"},
{"Asia/Qatar", "Asia/Bahrain"},
- {"Asia/Riyadh", "Asia/Aden"},
{"Asia/Vientiane", "Asia/Bangkok"},
{"Atlantic/Jan_Mayen", "Europe/Oslo"},
{"Atlantic/St_Helena", "Africa/Abidjan"},
diff --git a/icu4c/source/test/intltest/tztest.cpp b/icu4c/source/test/intltest/tztest.cpp
index a44b3126c..e47c35f83 100644
--- a/icu4c/source/test/intltest/tztest.cpp
+++ b/icu4c/source/test/intltest/tztest.cpp
@@ -2005,12 +2005,20 @@ void TimeZoneTest::TestCanonicalIDAPI() {
void TimeZoneTest::TestCanonicalID() {
- // Some canonical IDs in CLDR are defined as "Link"
- // in Olson tzdata.
+ // Olson (IANA) tzdata used to have very few "Link"s long time ago.
+ // This test case was written when most of CLDR canonical time zones are
+ // defined as independent "Zone" in the TZ database.
+ // Since then, the TZ maintainer found some historic rules in mid 20th century
+ // were not really reliable, and many zones are now sharing rules.
+ // As of TZ database release 2022a, there are quite a lot of zones defined
+ // by "Link" to another zone, so the exception table below becomes really
+ // big. It might be still useful to make sure CLDR zone aliases are consistent
+ // with zone rules.
static const struct {
- const char *alias;
- const char *zone;
+ const char *alias; // link-from
+ const char *zone; // link-to (A zone ID with "Zone" rule)
} excluded1[] = {
+ {"Africa/Accra", "Africa/Abidjan"},
{"Africa/Addis_Ababa", "Africa/Nairobi"},
{"Africa/Asmera", "Africa/Nairobi"},
{"Africa/Bamako", "Africa/Abidjan"},
@@ -2045,39 +2053,43 @@ void TimeZoneTest::TestCanonicalID() {
{"Africa/Ouagadougou", "Africa/Abidjan"},
{"Africa/Porto-Novo", "Africa/Lagos"},
{"Africa/Sao_Tome", "Africa/Abidjan"},
- {"America/Antigua", "America/Port_of_Spain"},
- {"America/Anguilla", "America/Port_of_Spain"},
+ {"America/Antigua", "America/Puerto_Rico"},
+ {"America/Anguilla", "America/Puerto_Rico"},
+ {"America/Aruba", "America/Puerto_Rico"},
+ {"America/Atikokan", "America/Panama"},
+ {"America/Blanc-Sablon", "America/Puerto_Rico"},
{"America/Cayman", "America/Panama"},
- // TODO(b/204533494): enable this check back.
- // Android-Changed: due to issues with time zones canonicity, decision was made to keep
- // America/Coral_Harbour as alias to America/Atikokan.
- // See more details in system/timezone/RELEASE_NOTES.md
- // {"America/Coral_Harbour", "America/Panama"},
- {"America/Curacao", "America/Aruba"},
- {"America/Dominica", "America/Port_of_Spain"},
- {"America/Grenada", "America/Port_of_Spain"},
- {"America/Guadeloupe", "America/Port_of_Spain"},
- {"America/Kralendijk", "America/Aruba"},
- {"America/Lower_Princes", "America/Aruba"},
- {"America/Marigot", "America/Port_of_Spain"},
- {"America/Montserrat", "America/Port_of_Spain"},
+ {"America/Coral_Harbour", "America/Panama"},
+ {"America/Creston", "America/Phoenix"},
+ {"America/Curacao", "America/Puerto_Rico"},
+ {"America/Dominica", "America/Puerto_Rico"},
+ {"America/Grenada", "America/Puerto_Rico"},
+ {"America/Guadeloupe", "America/Puerto_Rico"},
+ {"America/Kralendijk", "America/Puerto_Rico"},
+ {"America/Lower_Princes", "America/Puerto_Rico"},
+ {"America/Marigot", "America/Puerto_Rico"},
+ {"America/Montreal", "America/Toronto"},
+ {"America/Montserrat", "America/Puerto_Rico"},
+ {"America/Nassau", "America/Toronto"},
+ {"America/Port_of_Spain", "America/Puerto_Rico"},
{"America/Santa_Isabel", "America/Tijuana"},
{"America/Shiprock", "America/Denver"},
- {"America/St_Barthelemy", "America/Port_of_Spain"},
- {"America/St_Kitts", "America/Port_of_Spain"},
- {"America/St_Lucia", "America/Port_of_Spain"},
- {"America/St_Thomas", "America/Port_of_Spain"},
- {"America/St_Vincent", "America/Port_of_Spain"},
- {"America/Toronto", "America/Montreal"},
- {"America/Tortola", "America/Port_of_Spain"},
+ {"America/St_Barthelemy", "America/Puerto_Rico"},
+ {"America/St_Kitts", "America/Puerto_Rico"},
+ {"America/St_Lucia", "America/Puerto_Rico"},
+ {"America/St_Thomas", "America/Puerto_Rico"},
+ {"America/St_Vincent", "America/Puerto_Rico"},
+ {"America/Tortola", "America/Puerto_Rico"},
{"America/Virgin", "America/Puerto_Rico"},
+ {"Antarctica/DumontDUrville", "Pacific/Port_Moresby"},
{"Antarctica/South_Pole", "Antarctica/McMurdo"},
+ {"Antarctica/Syowa", "Asia/Riyadh"},
{"Arctic/Longyearbyen", "Europe/Oslo"},
- {"Asia/Kuwait", "Asia/Aden"},
+ {"Asia/Aden", "Asia/Riyadh"},
+ {"Asia/Kuwait", "Asia/Riyadh"},
{"Asia/Muscat", "Asia/Dubai"},
{"Asia/Phnom_Penh", "Asia/Bangkok"},
{"Asia/Qatar", "Asia/Bahrain"},
- {"Asia/Riyadh", "Asia/Aden"},
{"Asia/Vientiane", "Asia/Bangkok"},
{"Atlantic/Jan_Mayen", "Europe/Oslo"},
{"Atlantic/St_Helena", "Africa/Abidjan"},
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
index 3efc6e3b8..f608f476a 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/timezone/TimeZoneTest.java
@@ -1504,9 +1504,18 @@ public class TimeZoneTest extends TestFmwk
@Test
public void TestCanonicalID() {
- // Some canonical IDs in CLDR are defined as "Link"
- // in Olson tzdata.
+ // Olson (IANA) tzdata used to have very few "Link"s long time ago.
+ // This test case was written when most of CLDR canonical time zones are
+ // defined as independent "Zone" in the TZ database.
+ // Since then, the TZ maintainer found some historic rules in mid 20th century
+ // were not really reliable, and many zones are now sharing rules.
+ // As of TZ database release 2022a, there are quite a lot of zones defined
+ // by "Link" to another zone, so the exception table below becomes really
+ // big. It might be still useful to make sure CLDR zone aliases are consistent
+ // with zone rules.
final String[][] excluded1 = {
+ // {"<link-from>", "<link-to> (A zone ID with "Zone" rule)"},
+ {"Africa/Accra", "Africa/Abidjan"},
{"Africa/Addis_Ababa", "Africa/Nairobi"},
{"Africa/Asmera", "Africa/Nairobi"},
{"Africa/Bamako", "Africa/Abidjan"},
@@ -1541,39 +1550,43 @@ public class TimeZoneTest extends TestFmwk
{"Africa/Ouagadougou", "Africa/Abidjan"},
{"Africa/Porto-Novo", "Africa/Lagos"},
{"Africa/Sao_Tome", "Africa/Abidjan"},
- {"America/Antigua", "America/Port_of_Spain"},
- {"America/Anguilla", "America/Port_of_Spain"},
+ {"America/Antigua", "America/Puerto_Rico"},
+ {"America/Anguilla", "America/Puerto_Rico"},
+ {"America/Aruba", "America/Puerto_Rico"},
+ {"America/Atikokan", "America/Panama"},
+ {"America/Blanc-Sablon", "America/Puerto_Rico"},
{"America/Cayman", "America/Panama"},
- // TODO(b/204533494): enable this check back.
- // Android-Changed: due to issues with time zones canonicity, decision was made
- // to keep America/Coral_Harbour as alias to America/Atikokan.
- // See more details in system/timezone/RELEASE_NOTES.md
- // {"America/Coral_Harbour", "America/Panama"},
- {"America/Curacao", "America/Aruba"},
- {"America/Dominica", "America/Port_of_Spain"},
- {"America/Grenada", "America/Port_of_Spain"},
- {"America/Guadeloupe", "America/Port_of_Spain"},
- {"America/Kralendijk", "America/Aruba"},
- {"America/Lower_Princes", "America/Aruba"},
- {"America/Marigot", "America/Port_of_Spain"},
- {"America/Montserrat", "America/Port_of_Spain"},
+ {"America/Coral_Harbour", "America/Panama"},
+ {"America/Creston", "America/Phoenix"},
+ {"America/Curacao", "America/Puerto_Rico"},
+ {"America/Dominica", "America/Puerto_Rico"},
+ {"America/Grenada", "America/Puerto_Rico"},
+ {"America/Guadeloupe", "America/Puerto_Rico"},
+ {"America/Kralendijk", "America/Puerto_Rico"},
+ {"America/Lower_Princes", "America/Puerto_Rico"},
+ {"America/Marigot", "America/Puerto_Rico"},
+ {"America/Montreal", "America/Toronto"},
+ {"America/Montserrat", "America/Puerto_Rico"},
+ {"America/Nassau", "America/Toronto"},
+ {"America/Port_of_Spain", "America/Puerto_Rico"},
{"America/Santa_Isabel", "America/Tijuana"},
{"America/Shiprock", "America/Denver"},
- {"America/St_Barthelemy", "America/Port_of_Spain"},
- {"America/St_Kitts", "America/Port_of_Spain"},
- {"America/St_Lucia", "America/Port_of_Spain"},
- {"America/St_Thomas", "America/Port_of_Spain"},
- {"America/St_Vincent", "America/Port_of_Spain"},
- {"America/Toronto", "America/Montreal"},
- {"America/Tortola", "America/Port_of_Spain"},
+ {"America/St_Barthelemy", "America/Puerto_Rico"},
+ {"America/St_Kitts", "America/Puerto_Rico"},
+ {"America/St_Lucia", "America/Puerto_Rico"},
+ {"America/St_Thomas", "America/Puerto_Rico"},
+ {"America/St_Vincent", "America/Puerto_Rico"},
+ {"America/Tortola", "America/Puerto_Rico"},
{"America/Virgin", "America/Puerto_Rico"},
+ {"Antarctica/DumontDUrville", "Pacific/Port_Moresby"},
{"Antarctica/South_Pole", "Antarctica/McMurdo"},
+ {"Antarctica/Syowa", "Asia/Riyadh"},
{"Arctic/Longyearbyen", "Europe/Oslo"},
- {"Asia/Kuwait", "Asia/Aden"},
+ {"Asia/Aden", "Asia/Riyadh"},
+ {"Asia/Kuwait", "Asia/Riyadh"},
{"Asia/Muscat", "Asia/Dubai"},
{"Asia/Phnom_Penh", "Asia/Bangkok"},
{"Asia/Qatar", "Asia/Bahrain"},
- {"Asia/Riyadh", "Asia/Aden"},
{"Asia/Vientiane", "Asia/Bangkok"},
{"Atlantic/Jan_Mayen", "Europe/Oslo"},
{"Atlantic/St_Helena", "Africa/Abidjan"},