TInt CTestFloat_blr::sinh_test() { char chParam[MAX_SIZE]; FLOAT input; FLOAT expected; FLOAT max_ulp; FLOAT gen_ulp; // Read parameters ReadStringParam (chParam); ReadFloatParam (input); ReadFloatParam (expected); ReadFloatParam (max_ulp); // TBuf<MAX_SIZE> buf; TInt len = strlen(chParam); for (TInt j =0; j<len;j++) { buf.Append(chParam[j]); } // Do some testing FLOAT res = FUNC(sinh) (input); if(check_longlong(res, expected, max_ulp, gen_ulp)) { INFO_PRINTF1(_L("Test passed.")); } else { ERR_PRINTF1(_L("Test Failed.")); return KErrGeneral; } INFO_PRINTF1(_L("_________________________________________\n")); INFO_PRINTF2(_L("TestCase : %S\n"), &buf ); INFO_PRINTF2(_L("Input Value : %f\n"), input ); INFO_PRINTF2(_L("Expected Value : %f\n"), expected ); INFO_PRINTF2(_L("Max ULP value : %f\n"), max_ulp ); INFO_PRINTF2(_L("Result : %f\n"), res ); INFO_PRINTF2(_L("Generated Ulp : %f\n"), gen_ulp ); INFO_PRINTF1(_L("_________________________________________\n")); return KErrNone; }
static char *process_args(const CHARSET_INFO *cs, char *to, char *end, const char* fmt, size_t arg_index, va_list ap) { ARGS_INFO args_arr[MAX_ARGS]; PRINT_INFO print_arr[MAX_PRINT_INFO]; uint idx= 0, arg_count= arg_index; start: /* Here we are at the beginning of positional argument, right after $ */ arg_index--; print_arr[idx].flags= 0; if (*fmt == '`') { print_arr[idx].flags|= ESCAPED_ARG; fmt++; } if (*fmt == '-') fmt++; print_arr[idx].length= print_arr[idx].width= 0; /* Get print length */ if (*fmt == '*') { fmt++; fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags); print_arr[idx].length--; DBUG_ASSERT(*fmt == '$' && print_arr[idx].length < MAX_ARGS); args_arr[print_arr[idx].length].arg_type= 'd'; args_arr[print_arr[idx].length].have_longlong= 0; print_arr[idx].flags|= LENGTH_ARG; arg_count= MY_MAX(arg_count, print_arr[idx].length + 1); fmt++; } else fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags); if (*fmt == '.') { fmt++; /* Get print width */ if (*fmt == '*') { fmt++; fmt= get_width(fmt, &print_arr[idx].width); print_arr[idx].width--; DBUG_ASSERT(*fmt == '$' && print_arr[idx].width < MAX_ARGS); args_arr[print_arr[idx].width].arg_type= 'd'; args_arr[print_arr[idx].width].have_longlong= 0; print_arr[idx].flags|= WIDTH_ARG; arg_count= MY_MAX(arg_count, print_arr[idx].width + 1); fmt++; } else fmt= get_width(fmt, &print_arr[idx].width); } else print_arr[idx].width= SIZE_T_MAX; fmt= check_longlong(fmt, &args_arr[arg_index].have_longlong); if (*fmt == 'p') args_arr[arg_index].have_longlong= (sizeof(void *) == sizeof(longlong)); args_arr[arg_index].arg_type= print_arr[idx].arg_type= *fmt; print_arr[idx].arg_idx= arg_index; print_arr[idx].begin= ++fmt; while (*fmt && *fmt != '%') fmt++; if (!*fmt) /* End of format string */ { uint i; print_arr[idx].end= fmt; /* Obtain parameters from the list */ for (i= 0 ; i < arg_count; i++) { switch (args_arr[i].arg_type) { case 's': case 'b': args_arr[i].str_arg= va_arg(ap, char *); break; case 'f': case 'g': args_arr[i].double_arg= va_arg(ap, double); break; case 'd': case 'i': case 'u': case 'x': case 'X': case 'o': case 'p': if (args_arr[i].have_longlong) args_arr[i].longlong_arg= va_arg(ap,longlong); else if (args_arr[i].arg_type == 'd' || args_arr[i].arg_type == 'i') args_arr[i].longlong_arg= va_arg(ap, int); else args_arr[i].longlong_arg= va_arg(ap, uint); break; case 'c': args_arr[i].longlong_arg= va_arg(ap, int); break; default: DBUG_ASSERT(0); } }