From 43cf6dbe272a7e82162eb4d3801d0b922c125419 Mon Sep 17 00:00:00 2001 From: Jeff Genovy <29107334+jefgen@users.noreply.github.com> Date: Sat, 8 Apr 2017 04:20:31 +0000 Subject: [PATCH] ICU-13102 - Add logKnownIssue and skip problematic locales in format/NumberFormatTest/TestHost for now. X-SVN-Rev: 40015 --- icu4c/source/test/intltest/winnmtst.cpp | 19 ++++++++++++++++++- icu4c/source/test/intltest/winnmtst.h | 4 ++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/icu4c/source/test/intltest/winnmtst.cpp b/icu4c/source/test/intltest/winnmtst.cpp index 466ae5cfdbe..b65ad73dd62 100644 --- a/icu4c/source/test/intltest/winnmtst.cpp +++ b/icu4c/source/test/intltest/winnmtst.cpp @@ -28,6 +28,8 @@ #include "winutil.h" #include "winnmtst.h" +#include "numfmtst.h" + #include "cmemory.h" #include "cstring.h" #include "locmap.h" @@ -268,7 +270,7 @@ static void testLocale(const char *localeID, int32_t lcid, NumberFormat *wnf, UB } } -void Win32NumberTest::testLocales(TestLog *log) +void Win32NumberTest::testLocales(NumberFormatTest *log) { int32_t lcidCount = 0; Win32Utilities::LCIDRecord *lcidRecords = Win32Utilities::getLocales(lcidCount); @@ -282,6 +284,21 @@ void Win32NumberTest::testLocales(TestLog *log) continue; } + // Some locales have had their names change over various OS releases; skip them in the test for now. + int32_t failingLocaleLCIDs[] = { + 0x040a, /* es-ES_tradnl;es-ES-u-co-trad; */ + 0x048c, /* fa-AF;prs-AF;prs-Arab-AF; */ + 0x046b, /* qu-BO;quz-BO;quz-Latn-BO; */ + 0x086b, /* qu-EC;quz-EC;quz-Latn-EC; */ + 0x0c6b, /* qu-PE;quz-PE;quz-Latn-PE; */ + 0x0492 /* ckb-IQ;ku-Arab-IQ; */ + }; + bool skip = (std::find(std::begin(failingLocaleLCIDs), std::end(failingLocaleLCIDs), lcidRecords[i].lcid) != std::end(failingLocaleLCIDs)); + if (skip && log->logKnownIssue("13119", "Windows '@compat=host' fails on down-level versions of the OS")) { + log->logln("ticket:13119 - Skipping LCID = 0x%04x", lcidRecords[i].lcid); + continue; + } + strcpy(localeID, lcidRecords[i].localeID); if (strchr(localeID, '@') > 0) { diff --git a/icu4c/source/test/intltest/winnmtst.h b/icu4c/source/test/intltest/winnmtst.h index e8aeda1d5b5..84d276a6b8d 100644 --- a/icu4c/source/test/intltest/winnmtst.h +++ b/icu4c/source/test/intltest/winnmtst.h @@ -25,12 +25,12 @@ * \brief C++ API: Format dates using Windows API. */ -class TestLog; +class NumberFormatTest; class Win32NumberTest { public: - static void testLocales(TestLog *log); + static void testLocales(NumberFormatTest *log); private: Win32NumberTest();