DO NOT MERGE: Backport 2017c icu test changes

Incorporates the 2017c test changes from upstream:
http://bugs.icu-project.org/trac/changeset/40634

These changes should make CTS pass with both 2017b
(the stock release version) and 2017c.

Bug: 68878031
Bug: 68183339
Test: build only
Change-Id: Icf230d3a176d7a31dbde92b67cbb18baeedbff20
(cherry picked from commit 8b48ba7a2de62466e6a4344db948eed9e9cb73d5)
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java
index eb3d4fe..039e239 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/format/TimeZoneFormatTest.java
@@ -373,6 +373,10 @@
         int testLen = 0;
         for (int locidx = 0; locidx < LOCALES.length; locidx++) {
             logln("Locale: " + LOCALES[locidx].toString());
+            if (LOCALES[locidx].getLanguage().equals("fa")
+                    && logKnownIssue("13445", "Bidi control in localized GMT pattern")) {
+                continue;
+            }
             for (int patidx = 0; patidx < PATTERNS.length; patidx++) {
                 logln("    pattern: " + PATTERNS[patidx]);
                 String pattern = BASEPATTERN + " " + PATTERNS[patidx];
@@ -414,7 +418,8 @@
                         }
                     }
 
-                    if (id.equals("Pacific/Apia") && PATTERNS[patidx].equals("vvvv")
+                    if ((id.equals("Pacific/Apia") || id.equals("Pacific/Midway") || id.equals("Pacific/Pago_Pago"))
+                            && PATTERNS[patidx].equals("vvvv")
                             && logKnownIssue("11052", "Ambiguous zone name - Samoa Time")) {
                         continue;
                     }
diff --git a/icu4c/source/test/intltest/tzfmttst.cpp b/icu4c/source/test/intltest/tzfmttst.cpp
index dadcb54..2ccdb41 100644
--- a/icu4c/source/test/intltest/tzfmttst.cpp
+++ b/icu4c/source/test/intltest/tzfmttst.cpp
@@ -477,7 +477,7 @@
         Locale("ko_KR"), Locale("nb_NO"), Locale("nl_NL"), Locale("nn_NO"), Locale("pl_PL"),
         Locale("pt"), Locale("pt_BR"), Locale("pt_PT"), Locale("ru_RU"), Locale("sv_SE"),
         Locale("th_TH"), Locale("tr_TR"), Locale("zh"), Locale("zh_Hans"), Locale("zh_Hans_CN"),
-        Locale("zh_Hant"), Locale("zh_Hant_TW")
+        Locale("zh_Hant"), Locale("zh_Hant_TW"), Locale("fa"), Locale("ccp")
     };
 
     if (bTestAll) {
@@ -560,6 +560,11 @@
         logln("    Thread %d, Locale %s, Pattern %s", 
                 threadNumber, gLocaleData->locales[locidx].getName(), CStr(pattern)());
 
+        if (uprv_strcmp(gLocaleData->locales[locidx].getLanguage(), "ccp") == 0
+            && logKnownIssue("13446", "Chakma time zone parsing")) {
+            continue;
+        }
+
         SimpleDateFormat *sdf = new SimpleDateFormat(pattern, gLocaleData->locales[locidx], status);
         if (U_FAILURE(status)) {
             errcheckln(status, (UnicodeString) "new SimpleDateFormat failed for pattern " + 
@@ -594,7 +599,8 @@
                 }
             }
 
-            if (*tzid == "Pacific/Apia" && uprv_strcmp(PATTERNS[patidx], "vvvv") == 0
+            if ((*tzid == "Pacific/Apia" || *tzid == "Pacific/Midway" || *tzid == "Pacific/Pago_Pago")
+                    && uprv_strcmp(PATTERNS[patidx], "vvvv") == 0
                     && logKnownIssue("11052", "Ambiguous zone name - Samoa Time")) {
                 continue;
             }
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/TimeZoneFormatTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/TimeZoneFormatTest.java
index dce3ab0..1ac13ec 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/TimeZoneFormatTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/TimeZoneFormatTest.java
@@ -370,6 +370,10 @@
         int testLen = 0;
         for (int locidx = 0; locidx < LOCALES.length; locidx++) {
             logln("Locale: " + LOCALES[locidx].toString());
+            if (LOCALES[locidx].getLanguage().equals("fa")
+                    && logKnownIssue("13445", "Bidi control in localized GMT pattern")) {
+                continue;
+            }
             for (int patidx = 0; patidx < PATTERNS.length; patidx++) {
                 logln("    pattern: " + PATTERNS[patidx]);
                 String pattern = BASEPATTERN + " " + PATTERNS[patidx];
@@ -411,7 +415,8 @@
                         }
                     }
 
-                    if (id.equals("Pacific/Apia") && PATTERNS[patidx].equals("vvvv")
+                    if ((id.equals("Pacific/Apia") || id.equals("Pacific/Midway") || id.equals("Pacific/Pago_Pago"))
+                            && PATTERNS[patidx].equals("vvvv")
                             && logKnownIssue("11052", "Ambiguous zone name - Samoa Time")) {
                         continue;
                     }