diff options
Diffstat (limited to 'Build/source/libs/icu/icu-49.1/test/intltest')
-rw-r--r-- | Build/source/libs/icu/icu-49.1/test/intltest/caltest.cpp | 28 | ||||
-rw-r--r-- | Build/source/libs/icu/icu-49.1/test/intltest/caltest.h | 2 |
2 files changed, 30 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-49.1/test/intltest/caltest.cpp b/Build/source/libs/icu/icu-49.1/test/intltest/caltest.cpp index 21fc18cd6fd..018c90f961a 100644 --- a/Build/source/libs/icu/icu-49.1/test/intltest/caltest.cpp +++ b/Build/source/libs/icu/icu-49.1/test/intltest/caltest.cpp @@ -18,9 +18,15 @@ #include "unicode/udat.h" #include "unicode/ustring.h" #include "cstring.h" +#include "unicode/localpointer.h" #define mkcstr(U) u_austrcpy(calloc(8, u_strlen(U) + 1), U) +#define TEST_CHECK_STATUS {if (U_FAILURE(status)) {errln("%s:%d: Test failure. status=%s", \ + __FILE__, __LINE__, u_errorName(status)); return;}} + +#define TEST_ASSERT(expr) {if ((expr)==FALSE) {errln("%s:%d: Test failure \n", __FILE__, __LINE__);};} + // ***************************************************************************** // class CalendarTest // ***************************************************************************** @@ -265,6 +271,13 @@ void CalendarTest::runIndexedTest( int32_t index, UBool exec, const char* &name, TestSkippedWallTime(); } break; + case 30: + name = "TestCloneLocale"; + if(exec) { + logln("TestCloneLocale---"); logln(""); + TestCloneLocale(); + } + break; default: name = ""; break; } } @@ -2649,6 +2662,21 @@ void CalendarTest::TestSkippedWallTime(void) { } } +void CalendarTest::TestCloneLocale(void) { + UErrorCode status = U_ZERO_ERROR; + LocalPointer<Calendar> cal(Calendar::createInstance(TimeZone::getGMT()->clone(), + Locale::createFromName("en"), status)); + TEST_CHECK_STATUS; + Locale l0 = cal->getLocale(ULOC_VALID_LOCALE, status); + TEST_CHECK_STATUS; + LocalPointer<Calendar> cal2(cal->clone()); + Locale l = cal2->getLocale(ULOC_VALID_LOCALE, status); + if(l0!=l) { + errln("Error: cloned locale %s != original locale %s, status %s\n", l0.getName(), l.getName(), u_errorName(status)); + } + TEST_CHECK_STATUS; +} + #endif /* #if !UCONFIG_NO_FORMATTING */ //eof diff --git a/Build/source/libs/icu/icu-49.1/test/intltest/caltest.h b/Build/source/libs/icu/icu-49.1/test/intltest/caltest.h index c65ec725d3c..97408df5a36 100644 --- a/Build/source/libs/icu/icu-49.1/test/intltest/caltest.h +++ b/Build/source/libs/icu/icu-49.1/test/intltest/caltest.h @@ -235,6 +235,8 @@ public: // package void TestAmbiguousWallTimeAPIs(void); void TestRepeatedWallTime(void); void TestSkippedWallTime(void); + + void TestCloneLocale(void); }; #endif /* #if !UCONFIG_NO_FORMATTING */ |