ICU-5261 Don't crash when Solaris 10 with gcc is crashing.

X-SVN-Rev: 19837
This commit is contained in:
George Rhoten 2006-07-13 18:53:36 +00:00
parent f4ee2b0947
commit a0f456dad5
2 changed files with 68 additions and 58 deletions

View file

@ -179,7 +179,10 @@ void Test4056591()
gotdate=myFormatit(def, got);
expdate=myFormatit(def, exp);
if(u_strcmp(gotdate, expdate) !=0){
if (gotdate == NULL || expdate == NULL) {
log_err("myFormatit failed!\n");
}
else if(u_strcmp(gotdate, expdate) !=0){
log_err("set2DigitYearStart broken for %s \n got: %s, expected: %s\n", austrdup(s),
austrdup(gotdate), austrdup(expdate) );
}
@ -390,47 +393,45 @@ void Test4073003()
}
u_uastrcpy(temp, "m/D/yy");
udat_applyPattern(fmt, FALSE, temp, u_strlen(temp));
for(i= 0; i < 4; i+=2) {
status=U_ZERO_ERROR;
datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i])+1));
u_uastrcpy(datestr, tests[i]);
pos=0;
d = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
if(U_FAILURE(status)){
log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
}
free(datestr);
datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i+1])+1));
u_uastrcpy(datestr, tests[i+1]);
for(i= 0; i < 4; i+=2) {
status=U_ZERO_ERROR;
datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i])+1));
u_uastrcpy(datestr, tests[i]);
pos=0;
status=U_ZERO_ERROR;
dd = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
if(U_FAILURE(status)){
log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
}
free(datestr);
result =myFormatit(fmt, d);
result2 =myFormatit(fmt, dd);
if(!result || !result2) {
log_data_err("Fail: could not format - exitting test");
return;
}
if (u_strcmp(result, result2)!=0){
log_err("Fail: %s != %s\n", austrdup(result), austrdup(result2) );
}
else{
log_verbose("Ok: %s == %s\n", austrdup(result), austrdup(result2) );
}
pos=0;
d = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
if(U_FAILURE(status)){
log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
}
udat_close(fmt);
free(datestr);
datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i+1])+1));
u_uastrcpy(datestr, tests[i+1]);
pos=0;
status=U_ZERO_ERROR;
dd = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
if(U_FAILURE(status)){
log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
}
free(datestr);
result =myFormatit(fmt, d);
result2 =myFormatit(fmt, dd);
if(!result || !result2) {
log_data_err("Fail: could not format - exitting test\n");
return;
}
if (u_strcmp(result, result2)!=0){
log_err("Fail: %s != %s\n", austrdup(result), austrdup(result2) );
}
else{
log_verbose("Ok: %s == %s\n", austrdup(result), austrdup(result2) );
}
}
udat_close(fmt);
}
/**
@ -456,12 +457,12 @@ void Test4162071()
pos=0;
x = udat_parse(df, datestr, u_strlen(datestr), &pos, &status);
if(U_FAILURE(status)){
log_data_err("ERROR : parse format %s fails : %s\n", austrdup(format), myErrorName(status));
}
log_data_err("ERROR : parse format %s fails : %s\n", austrdup(format), myErrorName(status));
}
else{
log_verbose("Parse format \"%s \" ok.\n", austrdup(format) );
}
log_verbose("date= %s\n", austrdup(myFormatit(df, x)) );
/*log_verbose("date= %s\n", austrdup(myFormatit(df, x)) );*/
udat_close(df);
}

View file

@ -248,7 +248,7 @@ free(result);
{
log_err("Error in formatting using unum_formatDouble(.....): %s\n", myErrorName(status));
}
if(u_strcmp(result, temp1)==0)
if(result && u_strcmp(result, temp1)==0)
log_verbose("Pass: Number Formatting using unum_formatDouble() Successful\n");
else
log_err("FAIL: Error in number formatting using unum_formatDouble()\n");
@ -262,10 +262,14 @@ free(result);
/* Testing unum_parse() and unum_parseDouble() */
log_verbose("\nTesting unum_parseDouble()\n");
/* for (i = 0; i < 100000; i++)*/
if (result != NULL)
{
parsepos=0;
d1=unum_parseDouble(cur_def, result, u_strlen(result), &parsepos, &status);
}
else {
log_err("result is NULL\n");
}
if(U_FAILURE(status))
{
log_err("parse failed. The error is : %s\n", myErrorName(status));
@ -305,26 +309,31 @@ free(result);
if (pos2.beginIndex == 1 && pos2.endIndex == 6) {
log_verbose("Pass: Complete number formatting using unum_format() successful\n");
} else {
log_err("Fail: Error in complete number Formatting using unum_formatDouble()\nGot: b=%d end=%d\nExpected: b=1 end=6",
log_err("Fail: Error in complete number Formatting using unum_formatDouble()\nGot: b=%d end=%d\nExpected: b=1 end=6\n",
pos1.beginIndex, pos1.endIndex);
}
log_verbose("\nTesting unum_parseDoubleCurrency\n");
parsepos=0;
d1=unum_parseDoubleCurrency(cur_def, result, u_strlen(result), &parsepos, temp2, &status);
if (U_FAILURE(status)) {
log_err("parse failed. The error is : %s\n", myErrorName(status));
if (result == NULL) {
log_err("result is NULL\n");
}
/* Note: a==1234.56, but on parse expect a1=1235.0 */
if (d1!=a1) {
log_err("Fail: Error in parsing currency, got %f, expected %f\n", d1, a1);
} else {
log_verbose("Pass: parsed currency ammount successfully\n");
}
if (u_strcmp(temp2, temp)==0) {
log_verbose("Pass: parsed correct currency\n");
} else {
log_err("Fail: parsed incorrect currency\n");
else {
d1=unum_parseDoubleCurrency(cur_def, result, u_strlen(result), &parsepos, temp2, &status);
if (U_FAILURE(status)) {
log_err("parse failed. The error is : %s\n", myErrorName(status));
}
/* Note: a==1234.56, but on parse expect a1=1235.0 */
if (d1!=a1) {
log_err("Fail: Error in parsing currency, got %f, expected %f\n", d1, a1);
} else {
log_verbose("Pass: parsed currency ammount successfully\n");
}
if (u_strcmp(temp2, temp)==0) {
log_verbose("Pass: parsed correct currency\n");
} else {
log_err("Fail: parsed incorrect currency\n");
}
}
free(result);