ICU-11535 make tests pass with only warnings when UCONFIG_ONLY_HTML_CONVERSION

X-SVN-Rev: 37088
This commit is contained in:
Markus Scherer 2015-02-27 02:24:05 +00:00
parent fe90dfe8f9
commit 7f6179f106
6 changed files with 61 additions and 30 deletions

View file

@ -493,11 +493,13 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){
if(myLocale[0]=='j' && (myLocale[1]=='a'|| myLocale[1]=='p') &&
(myLocale[2]=='_' || myLocale[2]=='\0'))
{
size_t len=0;
/* open the required converters and cache them */
if(version>MAX_JA_VERSION) {
/* prevent indexing beyond jpCharsetMasks[] */
myConverterData->version = version = 0;
// ICU 55 fails to open a converter for an unsupported version.
// Previously, it fell back to version 0, but that would yield
// unexpected behavior.
*errorCode = U_MISSING_RESOURCE_ERROR;
return;
}
if(jpCharsetMasks[version]&CSM(ISO8859_7)) {
myConverterData->myConverterArray[ISO8859_7] =
@ -523,7 +525,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){
uprv_strcpy(myConverterData->locale,"ja");
(void)uprv_strcpy(myConverterData->name,"ISO_2022,locale=ja,version=");
len = uprv_strlen(myConverterData->name);
size_t len = uprv_strlen(myConverterData->name);
myConverterData->name[len]=(char)(myConverterData->version+(int)'0');
myConverterData->name[len+1]='\0';
}
@ -531,6 +533,13 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){
else if(myLocale[0]=='k' && (myLocale[1]=='o'|| myLocale[1]=='r') &&
(myLocale[2]=='_' || myLocale[2]=='\0'))
{
if(version>1) {
// ICU 55 fails to open a converter for an unsupported version.
// Previously, it fell back to version 0, but that would yield
// unexpected behavior.
*errorCode = U_MISSING_RESOURCE_ERROR;
return;
}
const char *cnvName;
if(version==1) {
cnvName="icu-internal-25546";
@ -570,6 +579,13 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){
else if(((myLocale[0]=='z' && myLocale[1]=='h') || (myLocale[0]=='c'&& myLocale[1]=='n'))&&
(myLocale[2]=='_' || myLocale[2]=='\0'))
{
if(version>2) {
// ICU 55 fails to open a converter for an unsupported version.
// Previously, it fell back to version 0, but that would yield
// unexpected behavior.
*errorCode = U_MISSING_RESOURCE_ERROR;
return;
}
/* open the required converters and cache them */
myConverterData->myConverterArray[GB2312_1] =
@ -612,7 +628,9 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){
/* initialize the state variables */
uprv_strcpy(myConverterData->name,"ISO_2022");
#else
*errorCode = U_UNSUPPORTED_ERROR;
*errorCode = U_MISSING_RESOURCE_ERROR;
// Was U_UNSUPPORTED_ERROR but changed in ICU 55 to a more standard
// data loading error code.
return;
#endif
}

View file

@ -1,7 +1,7 @@
/*
******************************************************************************
*
* Copyright (C) 2002-2014, International Business Machines
* Copyright (C) 2002-2015, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@ -983,7 +983,7 @@ TestBOCU1(void) {
errorCode=U_ZERO_ERROR;
bocu1=ucnv_open("BOCU-1", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("error: unable to open BOCU-1 converter: %s\n", u_errorName(errorCode));
log_data_err("error: unable to open BOCU-1 converter: %s\n", u_errorName(errorCode));
return;
}

View file

@ -1,11 +1,11 @@
/********************************************************************
* COPYRIGHT:
* Copyright (c) 1997-2014, International Business Machines Corporation and
* Copyright (c) 1997-2015, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*****************************************************************************
*
* File CU_CAPITST.C
* File ccapitst.c
*
* Modification History:
* Name Description
@ -1149,13 +1149,11 @@ static void TestAlias() {
const char* ISO_2022_NAMES[] =
{"ISO_2022,locale=ja,version=2", "ISO-2022-JP-2", "csISO2022JP2",
"Iso-2022jP2", "isO-2022_Jp_2", "iSo--2022,locale=ja,version=2"};
int32_t ISO_2022_NAMES_LENGTH =
sizeof(ISO_2022_NAMES) / sizeof(ISO_2022_NAMES[0]);
int32_t ISO_2022_NAMES_LENGTH = UPRV_LENGTHOF(ISO_2022_NAMES);
const char *UTF8_NAMES[] =
{ "UTF-8", "utf-8", "utf8", "ibm-1208",
"utf_8", "ibm1208", "cp1208" };
int32_t UTF8_NAMES_LENGTH =
sizeof(UTF8_NAMES) / sizeof(UTF8_NAMES[0]);
int32_t UTF8_NAMES_LENGTH = UPRV_LENGTHOF(UTF8_NAMES);
struct {
const char *name;
@ -1196,7 +1194,7 @@ static void TestAlias() {
if (strcmp(ucnv_getName(cnv, &status), name) != 0
&& (strstr(name, "PlatformEndian") == 0 && strstr(name, "OppositeEndian") == 0)) {
log_err("FAIL: Converter \"%s\" returned \"%s\" for getName. "
"The should be the same\n",
"They should be the same\n",
name, ucnv_getName(cnv, &status));
}
}
@ -2002,6 +2000,7 @@ static void bug2()
{
/* US-ASCII "1234567890" */
static const char source[]={ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 };
#if !UCONFIG_ONLY_HTML_CONVERSION
static const char sourceUTF8[]={ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, (char)0xef, (char)0x80, (char)0x80 };
static const char sourceUTF32[]={ 0x00, 0x00, 0x00, 0x30,
0x00, 0x00, 0x00, 0x31,
@ -2013,6 +2012,8 @@ static void bug2()
0x00, 0x00, 0x00, 0x37,
0x00, 0x00, 0x00, 0x38,
0x00, 0x00, (char)0xf0, 0x00};
#endif
static char target[5];
UErrorCode err = U_ZERO_ERROR;
@ -2032,6 +2033,7 @@ static void bug2()
log_data_err("error j932 bug 2 us-ascii->iso-8859-1: got preflighting size %d instead of 10\n", size);
}
#if !UCONFIG_ONLY_HTML_CONVERSION
err = U_ZERO_ERROR;
/* do the conversion */
size = ucnv_convert("UTF-32BE", /* out */
@ -2061,6 +2063,7 @@ static void bug2()
/* bug2: size is 5, should be 12 */
log_err("error j932 bug 2 UTF-32BE->UTF-8: got preflighting size %d instead of 12\n", size);
}
#endif
}
/*
@ -2069,7 +2072,7 @@ static void bug2()
*/
static void bug3()
{
#if !UCONFIG_NO_LEGACY_CONVERSION
#if !UCONFIG_NO_LEGACY_CONVERSION && !UCONFIG_ONLY_HTML_CONVERSION
char char_in[CHUNK_SIZE*4];
char target[5];
UErrorCode err = U_ZERO_ERROR;
@ -2753,10 +2756,12 @@ TestConvertAlgorithmic() {
/*},*/
utf16[]={
0xfe, 0xff /* BOM only, no text */
},
utf32[]={
};
#if !UCONFIG_ONLY_HTML_CONVERSION
static const uint8_t utf32[]={
0xff, 0xfe, 0, 0 /* BOM only, no text */
};
#endif
char target[100], utf8NUL[100], shiftJISNUL[100];
@ -2826,6 +2831,7 @@ TestConvertAlgorithmic() {
u_errorName(errorCode), length);
}
#if !UCONFIG_ONLY_HTML_CONVERSION
errorCode=U_ZERO_ERROR;
length=ucnv_fromAlgorithmic(cnv, UCNV_UTF32, target, 0, (const char *)utf32, 4, &errorCode);
if( errorCode!=U_STRING_NOT_TERMINATED_WARNING ||
@ -2834,6 +2840,7 @@ TestConvertAlgorithmic() {
log_err("ucnv_fromAlgorithmic(UTF-32 only BOM -> Shift-JIS) fails (%s expect U_STRING_NOT_TERMINATED_WARNING), returns %d expect 0\n",
u_errorName(errorCode), length);
}
#endif
/* bad arguments */
errorCode=U_MESSAGE_PARSE_ERROR;
@ -3428,7 +3435,7 @@ static void TestDefaultName(void) {
TestOneDefaultNameChange("ISCII,version=2", "UTF-8");
TestOneDefaultNameChange("ISO-8859-1", "UTF-8");
#else
# if !UCONFIG_NO_LEGACY_CONVERSION
# if !UCONFIG_NO_LEGACY_CONVERSION && !UCONFIG_ONLY_HTML_CONVERSION
TestOneDefaultNameChange("ISCII,version=1", "ISCII,version=1");
TestOneDefaultNameChange("ISCII,version=2", "ISCII,version=2");
# endif

View file

@ -1,11 +1,11 @@
/********************************************************************
* COPYRIGHT:
* Copyright (c) 1997-2014, International Business Machines Corporation and
* Copyright (c) 1997-2015, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*****************************************************************************
*
* File CCONVTST.C
* File ncnvtst.c
*
* Modification History:
* Name Description
@ -755,6 +755,7 @@ static void TestRegressionUTF8(){
#define MAX_UTF32_LEN 1
static void TestRegressionUTF32(){
#if !UCONFIG_ONLY_HTML_CONVERSION
UChar32 currCh = 0;
int32_t offset32;
int32_t offset16;
@ -886,6 +887,7 @@ static void TestRegressionUTF32(){
}
ucnv_close(convLE);
}
#endif
}
/*Walk through the available converters*/

View file

@ -1,11 +1,11 @@
/********************************************************************
* COPYRIGHT:
* Copyright (c) 1997-2014, International Business Machines Corporation and
* Copyright (c) 1997-2015, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*******************************************************************************
*
* File CCONVTST.C
* File nucnvtst.c
*
* Modification History:
* Name Description
@ -1828,7 +1828,7 @@ static void TestUTF7() {
UErrorCode errorCode=U_ZERO_ERROR;
UConverter *cnv=ucnv_open("UTF-7", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("Unable to open a UTF-7 converter: %s\n", u_errorName(errorCode)); /* sholdn't be a data err */
log_data_err("Unable to open a UTF-7 converter: %s\n", u_errorName(errorCode));
return;
}
TestNextUChar(cnv, source, limit, results, "UTF-7");
@ -1871,7 +1871,7 @@ static void TestIMAP() {
UErrorCode errorCode=U_ZERO_ERROR;
UConverter *cnv=ucnv_open("IMAP-mailbox-name", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("Unable to open a IMAP-mailbox-name converter: %s\n", u_errorName(errorCode)); /* sholdn't be a data err */
log_data_err("Unable to open a IMAP-mailbox-name converter: %s\n", u_errorName(errorCode));
return;
}
TestNextUChar(cnv, source, limit, results, "IMAP-mailbox-name");
@ -2004,7 +2004,7 @@ static void TestCESU8() {
UErrorCode errorCode=U_ZERO_ERROR;
UConverter *cnv=ucnv_open("CESU-8", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("Unable to open a CESU-8 converter: %s\n", u_errorName(errorCode));
log_data_err("Unable to open a CESU-8 converter: %s\n", u_errorName(errorCode));
return;
}
TestNextUChar(cnv, source, limit, results, "CESU-8");
@ -2224,7 +2224,7 @@ static void TestUTF32() {
UErrorCode errorCode=U_ZERO_ERROR;
UConverter *cnv=ucnv_open("UTF-32", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("Unable to open a UTF-32 converter: %s\n", u_errorName(errorCode));
log_data_err("Unable to open a UTF-32 converter: %s\n", u_errorName(errorCode));
return;
}
@ -2300,7 +2300,7 @@ TestUTF32BE() {
UErrorCode errorCode=U_ZERO_ERROR;
UConverter *cnv=ucnv_open("UTF-32BE", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("Unable to open a UTF-32BE converter: %s\n", u_errorName(errorCode));
log_data_err("Unable to open a UTF-32BE converter: %s\n", u_errorName(errorCode));
return;
}
TestNextUChar(cnv, source, limit, results, "UTF-32BE");
@ -2371,7 +2371,7 @@ TestUTF32LE() {
UErrorCode errorCode=U_ZERO_ERROR;
UConverter *cnv=ucnv_open("UTF-32LE", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("Unable to open a UTF-32LE converter: %s\n", u_errorName(errorCode));
log_data_err("Unable to open a UTF-32LE converter: %s\n", u_errorName(errorCode));
return;
}
TestNextUChar(cnv, source, limit, results, "UTF-32LE");
@ -5537,7 +5537,7 @@ static void TestJB5275(){
const UChar* exp = expected;
ucnv_toUnicode(conv, &target, targetLimit, &source, sourceLimit, NULL, TRUE, &status);
if(U_FAILURE(status)){
log_err("conversion failed: %s \n", u_errorName(status));
log_data_err("conversion failed: %s \n", u_errorName(status));
}
targetLimit = target;
target = dest;

View file

@ -1,6 +1,6 @@
/*
**********************************************************************
* Copyright (C) 2005-2013, International Business Machines
* Copyright (C) 2005-2015, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@ -584,6 +584,7 @@ void CharsetDetectionTest::DetectionTest()
void CharsetDetectionTest::IBM424Test()
{
#if !UCONFIG_ONLY_HTML_CONVERSION
UErrorCode status = U_ZERO_ERROR;
static const UChar chars[] = {
@ -676,10 +677,12 @@ bail:
freeBytes(bytes);
freeBytes(bytes_r);
ucsdet_close(csd);
#endif
}
void CharsetDetectionTest::IBM420Test()
{
#if !UCONFIG_ONLY_HTML_CONVERSION
UErrorCode status = U_ZERO_ERROR;
static const UChar chars[] = {
@ -764,6 +767,7 @@ bail:
freeBytes(bytes);
freeBytes(bytes_r);
ucsdet_close(csd);
#endif
}