| OLD | NEW |
| 1 /******************************************************************** | 1 /******************************************************************** |
| 2 * COPYRIGHT: | 2 * COPYRIGHT: |
| 3 * Copyright (c) 1997-2014, International Business Machines Corporation and | 3 * Copyright (c) 1997-2015, International Business Machines Corporation and |
| 4 * others. All Rights Reserved. | 4 * others. All Rights Reserved. |
| 5 ********************************************************************/ | 5 ********************************************************************/ |
| 6 | 6 |
| 7 | 7 |
| 8 #include "unicode/utypes.h" | 8 #include "unicode/utypes.h" |
| 9 | 9 |
| 10 /** | 10 /** |
| 11 * IntlTest is a base class for tests. | 11 * IntlTest is a base class for tests. |
| 12 */ | 12 */ |
| 13 | 13 |
| (...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 if (pBackSlash != NULL) { | 438 if (pBackSlash != NULL) { |
| 439 /* We found and truncated three names from the path. | 439 /* We found and truncated three names from the path. |
| 440 * Now append "source\data" and set the environment | 440 * Now append "source\data" and set the environment |
| 441 */ | 441 */ |
| 442 strcpy(pBackSlash, U_FILE_SEP_STRING "data" U_FILE_SEP_STRING "out"
U_FILE_SEP_STRING); | 442 strcpy(pBackSlash, U_FILE_SEP_STRING "data" U_FILE_SEP_STRING "out"
U_FILE_SEP_STRING); |
| 443 u_setDataDirectory(p); /* p is "ICU_DATA=wherever\icu\source\da
ta" */ | 443 u_setDataDirectory(p); /* p is "ICU_DATA=wherever\icu\source\da
ta" */ |
| 444 return; | 444 return; |
| 445 } | 445 } |
| 446 else { | 446 else { |
| 447 /* __FILE__ on MSVC7 does not contain the directory */ | 447 /* __FILE__ on MSVC7 does not contain the directory */ |
| 448 u_setDataDirectory(".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING "data"
U_FILE_SEP_STRING "out" U_FILE_SEP_STRING); | 448 u_setDataDirectory(".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING "da
ta" U_FILE_SEP_STRING "out" U_FILE_SEP_STRING); |
| 449 return; | 449 return; |
| 450 } | 450 } |
| 451 } | 451 } |
| 452 #endif | 452 #endif |
| 453 | 453 |
| 454 /* No location for the data dir was identifiable. | 454 /* No location for the data dir was identifiable. |
| 455 * Add other fallbacks for the test data location here if the need arises | 455 * Add other fallbacks for the test data location here if the need arises |
| 456 */ | 456 */ |
| 457 } | 457 } |
| 458 | 458 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 554 } | 554 } |
| 555 | 555 |
| 556 void IntlTest::setCaller( IntlTest* callingTest ) | 556 void IntlTest::setCaller( IntlTest* callingTest ) |
| 557 { | 557 { |
| 558 caller = callingTest; | 558 caller = callingTest; |
| 559 if (caller) { | 559 if (caller) { |
| 560 warn_on_missing_data = caller->warn_on_missing_data; | 560 warn_on_missing_data = caller->warn_on_missing_data; |
| 561 verbose = caller->verbose; | 561 verbose = caller->verbose; |
| 562 no_err_msg = caller->no_err_msg; | 562 no_err_msg = caller->no_err_msg; |
| 563 quick = caller->quick; | 563 quick = caller->quick; |
| 564 threadCount = caller->threadCount; |
| 564 testoutfp = caller->testoutfp; | 565 testoutfp = caller->testoutfp; |
| 565 LL_indentlevel = caller->LL_indentlevel + indentLevel_offset; | 566 LL_indentlevel = caller->LL_indentlevel + indentLevel_offset; |
| 566 numProps = caller->numProps; | 567 numProps = caller->numProps; |
| 567 for (int32_t i = 0; i < numProps; i++) { | 568 for (int32_t i = 0; i < numProps; i++) { |
| 568 proplines[i] = caller->proplines[i]; | 569 proplines[i] = caller->proplines[i]; |
| 569 } | 570 } |
| 570 } | 571 } |
| 571 } | 572 } |
| 572 | 573 |
| 573 UBool IntlTest::callTest( IntlTest& testToBeCalled, char* par ) | 574 UBool IntlTest::callTest( IntlTest& testToBeCalled, char* par ) |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 UBool IntlTest::logKnownIssue(const char *ticket) { | 967 UBool IntlTest::logKnownIssue(const char *ticket) { |
| 967 return logKnownIssue(ticket, UnicodeString()); | 968 return logKnownIssue(ticket, UnicodeString()); |
| 968 } | 969 } |
| 969 | 970 |
| 970 UBool IntlTest::logKnownIssue(const char *ticket, const UnicodeString &msg) { | 971 UBool IntlTest::logKnownIssue(const char *ticket, const UnicodeString &msg) { |
| 971 if(noKnownIssues) return FALSE; | 972 if(noKnownIssues) return FALSE; |
| 972 | 973 |
| 973 char fullpath[2048]; | 974 char fullpath[2048]; |
| 974 strcpy(fullpath, basePath); | 975 strcpy(fullpath, basePath); |
| 975 strcat(fullpath, currName); | 976 strcat(fullpath, currName); |
| 976 UnicodeString msg2 =msg; | 977 UnicodeString msg2 = msg; |
| 977 UBool firstForTicket, firstForWhere; | 978 UBool firstForTicket = TRUE, firstForWhere = TRUE; |
| 978 knownList = udbg_knownIssue_openU(knownList, ticket, fullpath, msg2.getTermina
tedBuffer(), &firstForTicket, &firstForWhere); | 979 knownList = udbg_knownIssue_openU(knownList, ticket, fullpath, msg2.getTermina
tedBuffer(), &firstForTicket, &firstForWhere); |
| 979 | 980 |
| 980 msg2 = UNICODE_STRING_SIMPLE("(Known issue #") + | 981 msg2 = UNICODE_STRING_SIMPLE("(Known issue #") + |
| 981 UnicodeString(ticket, -1, US_INV) + UNICODE_STRING_SIMPLE(") ") + msg; | 982 UnicodeString(ticket, -1, US_INV) + UNICODE_STRING_SIMPLE(") ") + msg; |
| 982 if(firstForTicket || firstForWhere) { | 983 if(firstForTicket || firstForWhere) { |
| 983 infoln(msg2); | 984 infoln(msg2); |
| 984 } else { | 985 } else { |
| 985 logln(msg2); | 986 logln(msg2); |
| 986 } | 987 } |
| 987 | 988 |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1159 | 1160 |
| 1160 | 1161 |
| 1161 #if UCONFIG_NO_LEGACY_CONVERSION | 1162 #if UCONFIG_NO_LEGACY_CONVERSION |
| 1162 # define TRY_CNV_1 "iso-8859-1" | 1163 # define TRY_CNV_1 "iso-8859-1" |
| 1163 # define TRY_CNV_2 "ibm-1208" | 1164 # define TRY_CNV_2 "ibm-1208" |
| 1164 #else | 1165 #else |
| 1165 # define TRY_CNV_1 "iso-8859-7" | 1166 # define TRY_CNV_1 "iso-8859-7" |
| 1166 # define TRY_CNV_2 "sjis" | 1167 # define TRY_CNV_2 "sjis" |
| 1167 #endif | 1168 #endif |
| 1168 | 1169 |
| 1170 #ifdef UNISTR_COUNT_FINAL_STRING_LENGTHS |
| 1171 U_CAPI void unistr_printLengths(); |
| 1172 #endif |
| 1173 |
| 1169 int | 1174 int |
| 1170 main(int argc, char* argv[]) | 1175 main(int argc, char* argv[]) |
| 1171 { | 1176 { |
| 1172 UBool syntax = FALSE; | 1177 UBool syntax = FALSE; |
| 1173 UBool all = FALSE; | 1178 UBool all = FALSE; |
| 1174 UBool verbose = FALSE; | 1179 UBool verbose = FALSE; |
| 1175 UBool no_err_msg = FALSE; | 1180 UBool no_err_msg = FALSE; |
| 1176 UBool no_time = FALSE; | 1181 UBool no_time = FALSE; |
| 1177 UBool quick = TRUE; | 1182 UBool quick = TRUE; |
| 1178 UBool name = FALSE; | 1183 UBool name = FALSE; |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1324 fprintf(stdout, " Options: \n"); | 1329 fprintf(stdout, " Options: \n"); |
| 1325 fprintf(stdout, " all (a) : %s\n", (all? "O
n" : "Off")); | 1330 fprintf(stdout, " all (a) : %s\n", (all? "O
n" : "Off")); |
| 1326 fprintf(stdout, " Verbose (v) : %s\n", (verbose? "O
n" : "Off")); | 1331 fprintf(stdout, " Verbose (v) : %s\n", (verbose? "O
n" : "Off")); |
| 1327 fprintf(stdout, " No error messages (n) : %s\n", (no_err_msg? "O
n" : "Off")); | 1332 fprintf(stdout, " No error messages (n) : %s\n", (no_err_msg? "O
n" : "Off")); |
| 1328 fprintf(stdout, " Exhaustive (e) : %s\n", (!quick? "O
n" : "Off")); | 1333 fprintf(stdout, " Exhaustive (e) : %s\n", (!quick? "O
n" : "Off")); |
| 1329 fprintf(stdout, " Leaks (l) : %s\n", (leaks? "O
n" : "Off")); | 1334 fprintf(stdout, " Leaks (l) : %s\n", (leaks? "O
n" : "Off")); |
| 1330 fprintf(stdout, " utf-8 (u) : %s\n", (utf8? "O
n" : "Off")); | 1335 fprintf(stdout, " utf-8 (u) : %s\n", (utf8? "O
n" : "Off")); |
| 1331 fprintf(stdout, " notime (T) : %s\n", (no_time?
"On" : "Off")); | 1336 fprintf(stdout, " notime (T) : %s\n", (no_time?
"On" : "Off")); |
| 1332 fprintf(stdout, " noknownissues (K) : %s\n", (noKnownIssues? "
On" : "Off")); | 1337 fprintf(stdout, " noknownissues (K) : %s\n", (noKnownIssues? "
On" : "Off")); |
| 1333 fprintf(stdout, " Warn on missing data (w) : %s\n", (warnOnMissingData? "O
n" : "Off")); | 1338 fprintf(stdout, " Warn on missing data (w) : %s\n", (warnOnMissingData? "O
n" : "Off")); |
| 1334 #if (ICU_USE_THREADS==0) | |
| 1335 fprintf(stdout, " Threads : Disabled\n"); | |
| 1336 #else | |
| 1337 fprintf(stdout, " Threads : %d\n", threadCount); | 1339 fprintf(stdout, " Threads : %d\n", threadCount); |
| 1338 #endif | |
| 1339 for (int32_t i = 0; i < nProps; i++) { | 1340 for (int32_t i = 0; i < nProps; i++) { |
| 1340 fprintf(stdout, " Custom property (prop:) : %s\n", props[i]); | 1341 fprintf(stdout, " Custom property (prop:) : %s\n", props[i]); |
| 1341 } | 1342 } |
| 1342 fprintf(stdout, "-----------------------------------------------\n"); | 1343 fprintf(stdout, "-----------------------------------------------\n"); |
| 1343 | 1344 |
| 1344 if(utf8) { | 1345 if(utf8) { |
| 1345 ucnv_setDefaultName("utf-8"); | 1346 ucnv_setDefaultName("utf-8"); |
| 1346 } | 1347 } |
| 1347 /* Check whether ICU will initialize without forcing the build data director
y into | 1348 /* Check whether ICU will initialize without forcing the build data director
y into |
| 1348 * the ICU_DATA path. Success here means either the data dll contains data
, or that | 1349 * the ICU_DATA path. Success here means either the data dll contains data
, or that |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1517 if (major.getDataErrors() != 0) { | 1518 if (major.getDataErrors() != 0) { |
| 1518 fprintf(stdout, "\t*Note* some errors are data-loading related. If t
he data used is not the \n" | 1519 fprintf(stdout, "\t*Note* some errors are data-loading related. If t
he data used is not the \n" |
| 1519 "\tstock ICU data (i.e some have been added or removed), con
sider using\n" | 1520 "\tstock ICU data (i.e some have been added or removed), con
sider using\n" |
| 1520 "\tthe '-w' option to turn these errors into warnings.\n"); | 1521 "\tthe '-w' option to turn these errors into warnings.\n"); |
| 1521 } | 1522 } |
| 1522 | 1523 |
| 1523 /* Call afterwards to display errors. */ | 1524 /* Call afterwards to display errors. */ |
| 1524 u_cleanup(); | 1525 u_cleanup(); |
| 1525 } | 1526 } |
| 1526 | 1527 |
| 1528 #ifdef UNISTR_COUNT_FINAL_STRING_LENGTHS |
| 1529 unistr_printLengths(); |
| 1530 #endif |
| 1531 |
| 1527 fprintf(stdout, "--------------------------------------\n"); | 1532 fprintf(stdout, "--------------------------------------\n"); |
| 1528 | 1533 |
| 1529 if (execCount <= 0) { | 1534 if (execCount <= 0) { |
| 1530 fprintf(stdout, "***** Not all called tests actually exist! *****\n"); | 1535 fprintf(stdout, "***** Not all called tests actually exist! *****\n"); |
| 1531 } | 1536 } |
| 1532 if(!no_time) { | 1537 if(!no_time) { |
| 1533 endTime = uprv_getRawUTCtime(); | 1538 endTime = uprv_getRawUTCtime(); |
| 1534 diffTime = (int32_t)(endTime - startTime); | 1539 diffTime = (int32_t)(endTime - startTime); |
| 1535 printf("Elapsed Time: %02d:%02d:%02d.%03d\n", | 1540 printf("Elapsed Time: %02d:%02d:%02d.%03d\n", |
| 1536 (int)((diffTime%U_MILLIS_PER_DAY)/U_MILLIS_PER_HOUR), | 1541 (int)((diffTime%U_MILLIS_PER_DAY)/U_MILLIS_PER_HOUR), |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1595 srcDataDir = U_TOPSRCDIR U_FILE_SEP_STRING"test" U_FILE_SEP_STRING "testdata
" U_FILE_SEP_STRING; | 1600 srcDataDir = U_TOPSRCDIR U_FILE_SEP_STRING"test" U_FILE_SEP_STRING "testdata
" U_FILE_SEP_STRING; |
| 1596 #else | 1601 #else |
| 1597 srcDataDir = ".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING "test" U_FILE_SEP
_STRING "testdata" U_FILE_SEP_STRING; | 1602 srcDataDir = ".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING "test" U_FILE_SEP
_STRING "testdata" U_FILE_SEP_STRING; |
| 1598 FILE *f = fopen(".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING "test" U_FILE_
SEP_STRING "testdata" U_FILE_SEP_STRING "rbbitst.txt", "r"); | 1603 FILE *f = fopen(".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING "test" U_FILE_
SEP_STRING "testdata" U_FILE_SEP_STRING "rbbitst.txt", "r"); |
| 1599 if (f) { | 1604 if (f) { |
| 1600 /* We're in icu/source/test/intltest/ */ | 1605 /* We're in icu/source/test/intltest/ */ |
| 1601 fclose(f); | 1606 fclose(f); |
| 1602 } | 1607 } |
| 1603 else { | 1608 else { |
| 1604 /* We're in icu/source/test/intltest/Platform/(Debug|Release) */ | 1609 /* We're in icu/source/test/intltest/Platform/(Debug|Release) */ |
| 1605 srcDataDir = ".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING ".." U_FILE_S
EP_STRING ".." U_FILE_SEP_STRING "test" U_FILE_SEP_STRING "testdata"U_FILE_SEP_S
TRING; | 1610 srcDataDir = ".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING ".." U_FILE_S
EP_STRING ".." U_FILE_SEP_STRING |
| 1611 "test" U_FILE_SEP_STRING "testdata" U_FILE_SEP_STRING; |
| 1606 } | 1612 } |
| 1607 #endif | 1613 #endif |
| 1608 return srcDataDir; | 1614 return srcDataDir; |
| 1609 } | 1615 } |
| 1610 | 1616 |
| 1611 char *IntlTest::getUnidataPath(char path[]) { | 1617 char *IntlTest::getUnidataPath(char path[]) { |
| 1612 const int kUnicodeDataTxtLength = 15; // strlen("UnicodeData.txt") | 1618 const int kUnicodeDataTxtLength = 15; // strlen("UnicodeData.txt") |
| 1613 | 1619 |
| 1614 // Look inside ICU_DATA first. | 1620 // Look inside ICU_DATA first. |
| 1615 strcpy(path, pathToDataDirectory()); | 1621 strcpy(path, pathToDataDirectory()); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1695 | 1701 |
| 1696 if (pBackSlash != NULL) { | 1702 if (pBackSlash != NULL) { |
| 1697 /* We found and truncated three names from the path. | 1703 /* We found and truncated three names from the path. |
| 1698 * Now append "source\data" and set the environment | 1704 * Now append "source\data" and set the environment |
| 1699 */ | 1705 */ |
| 1700 strcpy(pBackSlash, U_FILE_SEP_STRING "data" U_FILE_SEP_STRING ); | 1706 strcpy(pBackSlash, U_FILE_SEP_STRING "data" U_FILE_SEP_STRING ); |
| 1701 fgDataDir = p; | 1707 fgDataDir = p; |
| 1702 } | 1708 } |
| 1703 else { | 1709 else { |
| 1704 /* __FILE__ on MSVC7 does not contain the directory */ | 1710 /* __FILE__ on MSVC7 does not contain the directory */ |
| 1705 FILE *file = fopen(".." U_FILE_SEP_STRING ".."U_FILE_SEP_STRING "dat
a" U_FILE_SEP_STRING "Makefile.in", "r"); | 1711 FILE *file = fopen(".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING "da
ta" U_FILE_SEP_STRING "Makefile.in", "r"); |
| 1706 if (file) { | 1712 if (file) { |
| 1707 fclose(file); | 1713 fclose(file); |
| 1708 fgDataDir = ".." U_FILE_SEP_STRING ".."U_FILE_SEP_STRING "data"
U_FILE_SEP_STRING; | 1714 fgDataDir = ".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING "data"
U_FILE_SEP_STRING; |
| 1709 } | 1715 } |
| 1710 else { | 1716 else { |
| 1711 fgDataDir = ".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING ".." U
_FILE_SEP_STRING ".."U_FILE_SEP_STRING "data" U_FILE_SEP_STRING; | 1717 fgDataDir = ".." U_FILE_SEP_STRING ".." U_FILE_SEP_STRING ".." U
_FILE_SEP_STRING ".." U_FILE_SEP_STRING "data" U_FILE_SEP_STRING; |
| 1712 } | 1718 } |
| 1713 } | 1719 } |
| 1714 } | 1720 } |
| 1715 #endif | 1721 #endif |
| 1716 | 1722 |
| 1717 return fgDataDir; | 1723 return fgDataDir; |
| 1718 | 1724 |
| 1719 } | 1725 } |
| 1720 | 1726 |
| 1721 /* | 1727 /* |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1919 } | 1925 } |
| 1920 #ifdef VERBOSE_ASSERTIONS | 1926 #ifdef VERBOSE_ASSERTIONS |
| 1921 else { | 1927 else { |
| 1922 logln((UnicodeString)"Ok: " + message + "; got int64 " + Int64ToUnicodeStr
ing(actual)); | 1928 logln((UnicodeString)"Ok: " + message + "; got int64 " + Int64ToUnicodeStr
ing(actual)); |
| 1923 } | 1929 } |
| 1924 #endif | 1930 #endif |
| 1925 return TRUE; | 1931 return TRUE; |
| 1926 } | 1932 } |
| 1927 | 1933 |
| 1928 UBool IntlTest::assertEquals(const char* message, | 1934 UBool IntlTest::assertEquals(const char* message, |
| 1935 double expected, |
| 1936 double actual) { |
| 1937 if (expected != actual) { |
| 1938 errln((UnicodeString)"FAIL: " + message + "; got " + |
| 1939 actual + |
| 1940 "; expected " + expected); |
| 1941 return FALSE; |
| 1942 } |
| 1943 #ifdef VERBOSE_ASSERTIONS |
| 1944 else { |
| 1945 logln((UnicodeString)"Ok: " + message + "; got " + actual); |
| 1946 } |
| 1947 #endif |
| 1948 return TRUE; |
| 1949 } |
| 1950 |
| 1951 |
| 1952 UBool IntlTest::assertEquals(const char* message, |
| 1929 UBool expected, | 1953 UBool expected, |
| 1930 UBool actual) { | 1954 UBool actual) { |
| 1931 if (expected != actual) { | 1955 if (expected != actual) { |
| 1932 errln((UnicodeString)"FAIL: " + message + "; got " + | 1956 errln((UnicodeString)"FAIL: " + message + "; got " + |
| 1933 toString(actual) + | 1957 toString(actual) + |
| 1934 "; expected " + toString(expected)); | 1958 "; expected " + toString(expected)); |
| 1935 return FALSE; | 1959 return FALSE; |
| 1936 } | 1960 } |
| 1937 #ifdef VERBOSE_ASSERTIONS | 1961 #ifdef VERBOSE_ASSERTIONS |
| 1938 else { | 1962 else { |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2048 } | 2072 } |
| 2049 | 2073 |
| 2050 /* | 2074 /* |
| 2051 * Hey, Emacs, please set the following: | 2075 * Hey, Emacs, please set the following: |
| 2052 * | 2076 * |
| 2053 * Local Variables: | 2077 * Local Variables: |
| 2054 * indent-tabs-mode: nil | 2078 * indent-tabs-mode: nil |
| 2055 * End: | 2079 * End: |
| 2056 * | 2080 * |
| 2057 */ | 2081 */ |
| OLD | NEW |