OLD | NEW |
1 /******************************************************************** | 1 /******************************************************************** |
2 * COPYRIGHT: | 2 * COPYRIGHT: |
3 * Copyright (c) 1997-2013, International Business Machines Corporation and | 3 * Copyright (c) 1997-2014, International Business Machines Corporation and |
4 * others. All Rights Reserved. | 4 * others. All Rights Reserved. |
5 ******************************************************************** | 5 ******************************************************************** |
6 * | 6 * |
7 * File CMSGTST.C | 7 * File CMSGTST.C |
8 * | 8 * |
9 * Modification History: | 9 * Modification History: |
10 * Name Description | 10 * Name Description |
11 * Madhu Katragadda Creation | 11 * Madhu Katragadda Creation |
12 ********************************************************************/ | 12 ********************************************************************/ |
13 /* C API TEST FOR MESSAGE FORMAT */ | 13 /* C API TEST FOR MESSAGE FORMAT */ |
14 | 14 |
15 #include "unicode/utypes.h" | 15 #include "unicode/utypes.h" |
16 | 16 |
17 #if !UCONFIG_NO_FORMATTING | 17 #if !UCONFIG_NO_FORMATTING |
18 | 18 |
19 #include <stdlib.h> | 19 #include <stdlib.h> |
20 #include <string.h> | 20 #include <string.h> |
21 #include <stdarg.h> | 21 #include <stdarg.h> |
22 #include "unicode/uloc.h" | 22 #include "unicode/uloc.h" |
23 #include "unicode/umsg.h" | 23 #include "unicode/umsg.h" |
24 #include "unicode/udat.h" | 24 #include "unicode/udat.h" |
25 #include "unicode/umsg.h" | 25 #include "unicode/umsg.h" |
26 #include "unicode/ustring.h" | 26 #include "unicode/ustring.h" |
27 #include "cintltst.h" | 27 #include "cintltst.h" |
28 #include "cmsgtst.h" | 28 #include "cmsgtst.h" |
29 #include "cformtst.h" | 29 #include "cformtst.h" |
30 | 30 #include "cmemory.h" |
31 #define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0])) | |
32 | 31 |
33 static const char* const txt_testCasePatterns[] = { | 32 static const char* const txt_testCasePatterns[] = { |
34 "Quotes '', '{', a {0,number,integer} '{'0}", | 33 "Quotes '', '{', a {0,number,integer} '{'0}", |
35 "Quotes '', '{', a {0,number,integer} '{'0}", | 34 "Quotes '', '{', a {0,number,integer} '{'0}", |
36 "You deposited {0,number,integer} times an amount of {1,number,currency} on {
2,date,short}", | 35 "You deposited {0,number,integer} times an amount of {1,number,currency} on {
2,date,short}", |
37 "'{'2,time,full}, for {1, number }, {0,number,integer} is {2,time,full} and
full date is {2,date,full}", | 36 "'{'2,time,full}, for {1, number }, {0,number,integer} is {2,time,full} and
full date is {2,date,full}", |
38 "'{'1,number,percent} for {0,number,integer} is {1,number,percent}", | 37 "'{'1,number,percent} for {0,number,integer} is {1,number,percent}", |
39 }; | 38 }; |
40 | 39 |
41 static const char* const txt_testResultStrings[] = { | 40 static const char* const txt_testResultStrings[] = { |
(...skipping 1079 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1121 UErrorCode errorCode = U_ZERO_ERROR; | 1120 UErrorCode errorCode = U_ZERO_ERROR; |
1122 U_STRING_DECL(pattern, "abc {1} def", 11); | 1121 U_STRING_DECL(pattern, "abc {1} def", 11); |
1123 UChar x[2] = { 0x78, 0 }; // "x" | 1122 UChar x[2] = { 0x78, 0 }; // "x" |
1124 UChar y[2] = { 0x79, 0 }; // "y" | 1123 UChar y[2] = { 0x79, 0 }; // "y" |
1125 U_STRING_DECL(expected, "abc y def", 9); | 1124 U_STRING_DECL(expected, "abc y def", 9); |
1126 UChar result[20]; | 1125 UChar result[20]; |
1127 int32_t length; | 1126 int32_t length; |
1128 | 1127 |
1129 U_STRING_INIT(pattern, "abc {1} def", 11); | 1128 U_STRING_INIT(pattern, "abc {1} def", 11); |
1130 U_STRING_INIT(expected, "abc y def", 9); | 1129 U_STRING_INIT(expected, "abc y def", 9); |
1131 length = u_formatMessage("en", pattern, -1, result, LENGTHOF(result), &error
Code, x, y); | 1130 length = u_formatMessage("en", pattern, -1, result, UPRV_LENGTHOF(result), &
errorCode, x, y); |
1132 if (U_FAILURE(errorCode) || length != u_strlen(expected) || u_strcmp(result,
expected) != 0) { | 1131 if (U_FAILURE(errorCode) || length != u_strlen(expected) || u_strcmp(result,
expected) != 0) { |
1133 log_err("u_formatMessage(pattern with only {1}, 2 args) failed: result l
ength %d, UErrorCode %s \n", | 1132 log_err("u_formatMessage(pattern with only {1}, 2 args) failed: result l
ength %d, UErrorCode %s \n", |
1134 (int)length, u_errorName(errorCode)); | 1133 (int)length, u_errorName(errorCode)); |
1135 } | 1134 } |
1136 } | 1135 } |
1137 | 1136 |
1138 static void TestErrorChaining(void) { | 1137 static void TestErrorChaining(void) { |
1139 UErrorCode status = U_USELESS_COLLATOR_ERROR; | 1138 UErrorCode status = U_USELESS_COLLATOR_ERROR; |
1140 | 1139 |
1141 umsg_open(NULL, 0, NULL, NULL, &status); | 1140 umsg_open(NULL, 0, NULL, NULL, &status); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1188 addTest(root, &TestMessageFormatWithValist, "tsformat/cmsgtst/TestMessageFor
matWithValist"); | 1187 addTest(root, &TestMessageFormatWithValist, "tsformat/cmsgtst/TestMessageFor
matWithValist"); |
1189 addTest(root, &TestParseMessageWithValist, "tsformat/cmsgtst/TestParseMessag
eWithValist"); | 1188 addTest(root, &TestParseMessageWithValist, "tsformat/cmsgtst/TestParseMessag
eWithValist"); |
1190 addTest(root, &TestJ904, "tsformat/cmsgtst/TestJ904"); | 1189 addTest(root, &TestJ904, "tsformat/cmsgtst/TestJ904"); |
1191 addTest(root, &MessageLength, "tsformat/cmsgtst/MessageLength"); | 1190 addTest(root, &MessageLength, "tsformat/cmsgtst/MessageLength"); |
1192 addTest(root, &TestMessageWithUnusedArgNumber, "tsformat/cmsgtst/TestMessage
WithUnusedArgNumber"); | 1191 addTest(root, &TestMessageWithUnusedArgNumber, "tsformat/cmsgtst/TestMessage
WithUnusedArgNumber"); |
1193 addTest(root, &TestErrorChaining, "tsformat/cmsgtst/TestErrorChaining"); | 1192 addTest(root, &TestErrorChaining, "tsformat/cmsgtst/TestErrorChaining"); |
1194 addTest(root, &TestMsgFormatSelect, "tsformat/cmsgtst/TestMsgFormatSelect"); | 1193 addTest(root, &TestMsgFormatSelect, "tsformat/cmsgtst/TestMsgFormatSelect"); |
1195 } | 1194 } |
1196 | 1195 |
1197 #endif /* #if !UCONFIG_NO_FORMATTING */ | 1196 #endif /* #if !UCONFIG_NO_FORMATTING */ |
OLD | NEW |