summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-49.1/test/intltest
diff options
context:
space:
mode:
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.cpp28
-rw-r--r--Build/source/libs/icu/icu-49.1/test/intltest/caltest.h2
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 */