Index: icu46/source/test/cintltst/cposxtst.c |
=================================================================== |
--- icu46/source/test/cintltst/cposxtst.c (revision 0) |
+++ icu46/source/test/cintltst/cposxtst.c (revision 0) |
@@ -0,0 +1,109 @@ |
+/* |
+********************************************************************** |
+* Copyright (c) 2003-2009, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+********************************************************************** |
+* Author: Alan Liu |
+* Created: March 20 2003 |
+* Since: ICU 2.6 |
+********************************************************************** |
+*/ |
+#include "cintltst.h" |
+#include "cmemory.h" |
+#include "cstring.h" |
+#include "unicode/ucat.h" |
+#include "unicode/ustring.h" |
+ |
+/**********************************************************************/ |
+/* Prototypes */ |
+ |
+void TestMessageCatalog(void); |
+ |
+/**********************************************************************/ |
+/* Add our tests into the hierarchy */ |
+ |
+void addPosixTest(TestNode** root); |
+ |
+void addPosixTest(TestNode** root) |
+{ |
+#if !UCONFIG_NO_FILE_IO && !UCONFIG_NO_LEGACY_CONVERSION |
+ addTest(root, &TestMessageCatalog, "tsutil/cposxtst/TestMessageCatalog"); |
+#endif |
+} |
+ |
+/**********************************************************************/ |
+/* Test basic ucat.h API */ |
+ |
+void TestMessageCatalog(void) { |
+ |
+ UErrorCode ec = U_ZERO_ERROR; |
+ u_nl_catd catd; |
+ const char* DATA[] = { |
+ /* set_num, msg_num, expected string result, expected error code */ |
+ "1", "4", "Good morning.", "U_ZERO_ERROR", |
+ "1", "5", "Good afternoon.", "U_ZERO_ERROR", |
+ "1", "6", "FAIL", "U_MISSING_RESOURCE_ERROR", |
+ "1", "7", "Good evening.", "U_ZERO_ERROR", |
+ "1", "8", "Good night.", "U_ZERO_ERROR", |
+ "1", "9", "FAIL", "U_MISSING_RESOURCE_ERROR", |
+ "3", "1", "FAIL", "U_MISSING_RESOURCE_ERROR", |
+ "4", "14", "Please ", "U_ZERO_ERROR", |
+ "4", "15", "FAIL", "U_MISSING_RESOURCE_ERROR", |
+ "4", "19", "Thank you.", "U_ZERO_ERROR", |
+ "4", "20", "Sincerely,", "U_ZERO_ERROR", |
+ NULL |
+ }; |
+ const UChar FAIL[] = {0x46, 0x41, 0x49, 0x4C, 0x00}; /* "FAIL" */ |
+ int32_t i; |
+ const char *path = loadTestData(&ec); |
+ |
+ if (U_FAILURE(ec)) { |
+ log_data_err("FAIL: loadTestData => %s\n", u_errorName(ec)); |
+ return; |
+ } |
+ |
+ catd = u_catopen(path, "mc", &ec); |
+ if (U_FAILURE(ec)) { |
+ log_data_err("FAIL: u_catopen => %s\n", u_errorName(ec)); |
+ return; |
+ } |
+ |
+ for (i=0; DATA[i]!=NULL; i+=4) { |
+ int32_t set_num = T_CString_stringToInteger(DATA[i], 10); |
+ int32_t msg_num = T_CString_stringToInteger(DATA[i+1], 10); |
+ UChar exp[128]; |
+ int32_t len = -1; |
+ const char* err; |
+ char str[128]; |
+ const UChar* ustr; |
+ |
+ u_uastrcpy(exp, DATA[i+2]); |
+ |
+ ec = U_ZERO_ERROR; |
+ ustr = u_catgets(catd, set_num, msg_num, FAIL, &len, &ec); |
+ u_austrcpy(str, ustr); |
+ err = u_errorName(ec); |
+ |
+ log_verbose("u_catgets(%d, %d) => \"%s\", len=%d, %s\n", |
+ set_num, msg_num, str, len, err); |
+ |
+ if (u_strcmp(ustr, exp) != 0) { |
+ log_err("FAIL: u_catgets => \"%s\", exp. \"%s\"\n", |
+ str, DATA[i+2]); |
+ } |
+ |
+ if (len != (int32_t) uprv_strlen(DATA[i+2])) { |
+ log_err("FAIL: u_catgets => len=%d, exp. %d\n", |
+ len, uprv_strlen(DATA[i+2])); |
+ } |
+ |
+ if (uprv_strcmp(err, DATA[i+3]) != 0) { |
+ log_err("FAIL: u_catgets => %s, exp. %s\n", |
+ err, DATA[i+3]); |
+ } |
+ } |
+ |
+ u_catclose(catd); |
+} |
+ |
+/*eof*/ |
Property changes on: icu46/source/test/cintltst/cposxtst.c |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |