X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=parse.c;h=7912212ecda47594bac999e8abbecdacaf81aeb1;hp=ae87b1ed9fb017834520034d72d128f6a46a4a25;hb=8a16f59b66e5198050ec735998692ba9436a9884;hpb=a8523a6ae6ce7beafcfa75c4f0b9226e2ab17139 diff --git a/parse.c b/parse.c index ae87b1ed..7912212e 100644 --- a/parse.c +++ b/parse.c @@ -272,53 +272,6 @@ extern int evaluate_arithmetic_expression(const char *buffer, long long *ival, double *dval, double implied_units, int is_time); -#ifdef CONFIG_ARITHMETIC -/* - * These two verification functions are just to gain confidence that - * the arithmetic processing code is always getting the same answer as the - * original number parsing code. Once sufficiently sure that the arithmetic - * code is always getting the right answers, these can be removed. - */ -static void verify_exp_parser_float(const char *str, double implied_units, int is_time) -{ - long long ival; - double dval, tmpval; - - if (sscanf(str, "%lf", &tmpval) != 1) - return; - - if (evaluate_arithmetic_expression(str, &ival, &dval, implied_units, is_time) != 0) { - log_info("Arithmetic failed on '%s'\n", str); - return; - } - if (dval != tmpval) { - log_info("Arithmetic failed on: '%s' got %lf, expected %lf\n", - str, dval, tmpval); - } -} - -static void verify_exp_parser_decimal(const char *str, long long val, int kilo, int is_seconds, - int is_time) -{ - int rc; - long long ival; - double dval; - double implied_units = 1.0; - - if (is_seconds) - implied_units = 1000000.0; - - rc = evaluate_arithmetic_expression(str, &ival, &dval, implied_units, is_time); - if (!rc) { - if (ival != val) - log_info("Arithmetic failed on '%s', expected %lld, got %lld\n", - str, val, ival); - } else { - log_info("Arithmetic failed on '%s'\n", str); - } -} -#endif - /* * Convert string into a floating number. Return 1 for success and 0 otherwise. */ @@ -335,8 +288,6 @@ int str_to_float(const char *str, double *val, int is_time) *val = dval; return 1; } - } else { - verify_exp_parser_float(str, 1.0, is_time); } #endif return 1 == sscanf(str, "%lf", val); @@ -395,9 +346,7 @@ int str_to_decimal(const char *str, long long *val, int kilo, void *data, *val *= mult; } else *val *= get_mult_time(str, len, is_seconds); -#ifdef CONFIG_ARITHMETIC - verify_exp_parser_decimal(str, *val, kilo, is_seconds, is_time); -#endif + return 0; } @@ -557,6 +506,7 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data, if (!is_time && o->is_time) is_time = o->is_time; + tmp[sizeof(tmp) - 1] = '\0'; strncpy(tmp, ptr, sizeof(tmp) - 1); p = strchr(tmp, ','); if (p) @@ -756,6 +706,7 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data, char tmp[128]; char *p1, *p2; + tmp[sizeof(tmp) - 1] = '\0'; strncpy(tmp, ptr, sizeof(tmp) - 1); /* Handle bsrange with separate read,write values: */