projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix problem with --showcmd and callbacks that verify
[fio.git]
/
parse.c
diff --git
a/parse.c
b/parse.c
index 8885f594d5d12e5454182c110a92d38e33e40dad..5e3573ea646fcb52ca1b08d043712d2c89efb0c6 100644
(file)
--- a/
parse.c
+++ b/
parse.c
@@
-49,7
+49,7
@@
static void posval_sort(struct fio_option *o, struct value_pair *vpmap)
static void show_option_range(struct fio_option *o,
int (*logger)(const char *format, ...))
{
static void show_option_range(struct fio_option *o,
int (*logger)(const char *format, ...))
{
- if (o->type == FIO_OPT_FLOAT_LIST){
+ if (o->type == FIO_OPT_FLOAT_LIST)
{
if (o->minfp == DBL_MIN && o->maxfp == DBL_MAX)
return;
if (o->minfp == DBL_MIN && o->maxfp == DBL_MAX)
return;
@@
-57,7
+57,7
@@
static void show_option_range(struct fio_option *o,
if (o->maxfp != DBL_MAX)
logger(", max=%f", o->maxfp);
logger("\n");
if (o->maxfp != DBL_MAX)
logger(", max=%f", o->maxfp);
logger("\n");
- } else {
+ } else
if (!o->posval[0].ival)
{
if (!o->minval && !o->maxval)
return;
if (!o->minval && !o->maxval)
return;
@@
-285,7
+285,7
@@
int check_str_bytes(const char *p, long long *val, void *data)
return str_to_decimal(p, val, 1, data);
}
return str_to_decimal(p, val, 1, data);
}
-
static
int check_str_time(const char *p, long long *val)
+int check_str_time(const char *p, long long *val)
{
return str_to_decimal(p, val, 0, NULL);
}
{
return str_to_decimal(p, val, 0, NULL);
}
@@
-380,7
+380,7
@@
static int str_match_len(const struct value_pair *vp, const char *str)
static int __handle_option(struct fio_option *o, const char *ptr, void *data,
int first, int more, int curr)
{
static int __handle_option(struct fio_option *o, const char *ptr, void *data,
int first, int more, int curr)
{
- int il, *ilp;
+ int il
=0
, *ilp;
fio_fp64_t *flp;
long long ull, *ullp;
long ul1, ul2;
fio_fp64_t *flp;
long long ull, *ullp;
long ul1, ul2;
@@
-451,6
+451,8
@@
static int __handle_option(struct fio_option *o, const char *ptr, void *data,
else
ret = check_str_bytes(tmp, &ull, data);
else
ret = check_str_bytes(tmp, &ull, data);
+ dprint(FD_PARSE, " ret=%d, out=%llu\n", ret, ull);
+
if (ret)
break;
if (ret)
break;
@@
-478,7
+480,8
@@
static int __handle_option(struct fio_option *o, const char *ptr, void *data,
}
}
if (ret) {
}
}
if (ret) {
- log_err("value %d not in allowed range\n",ull);
+ log_err("fio: value %llu not allowed:\n", ull);
+ show_option_values(o);
return 1;
}
}
return 1;
}
}
@@
-575,6
+578,8
@@
static int __handle_option(struct fio_option *o, const char *ptr, void *data,
flp = td_var(data, o->off1);
flp[curr].u.f = uf;
flp = td_var(data, o->off1);
flp[curr].u.f = uf;
+ dprint(FD_PARSE, " out=%f\n", uf);
+
/*
** Calculate precision for output by counting
** number of digits after period. Find first
/*
** Calculate precision for output by counting
** number of digits after period. Find first
@@
-744,6
+749,8
@@
static int __handle_option(struct fio_option *o, const char *ptr, void *data,
else
il = 1;
else
il = 1;
+ dprint(FD_PARSE, " ret=%d, out=%d\n", ret, il);
+
if (ret)
break;
if (ret)
break;
@@
-781,6
+788,7
@@
static int __handle_option(struct fio_option *o, const char *ptr, void *data,
}
case FIO_OPT_DEPRECATED:
log_info("Option %s is deprecated\n", o->name);
}
case FIO_OPT_DEPRECATED:
log_info("Option %s is deprecated\n", o->name);
+ ret = 1;
break;
default:
log_err("Bad option type %u\n", o->type);
break;
default:
log_err("Bad option type %u\n", o->type);
@@
-1079,6
+1087,8
@@
int show_cmd_help(struct fio_option *options, const char *name)
continue;
if (!exec_profile && o->prof_name)
continue;
continue;
if (!exec_profile && o->prof_name)
continue;
+ if (exec_profile && !(o->prof_name && !strcmp(exec_profile, o->prof_name)))
+ continue;
if (name) {
if (!strcmp(name, o->name) ||
if (name) {
if (!strcmp(name, o->name) ||
@@
-1167,6
+1177,11
@@
void option_init(struct fio_option *o)
}
if (!o->cb && (!o->off1 && !o->roff1))
log_err("Option %s: neither cb nor offset given\n", o->name);
}
if (!o->cb && (!o->off1 && !o->roff1))
log_err("Option %s: neither cb nor offset given\n", o->name);
+ if (!o->category) {
+ log_info("Option %s: no category defined. Setting to misc\n", o->name);
+ o->category = FIO_OPT_C_GENERAL;
+ o->group = FIO_OPT_G_INVALID;
+ }
if (o->type == FIO_OPT_STR || o->type == FIO_OPT_STR_STORE ||
o->type == FIO_OPT_STR_MULTI)
return;
if (o->type == FIO_OPT_STR || o->type == FIO_OPT_STR_STORE ||
o->type == FIO_OPT_STR_MULTI)
return;
@@
-1174,10
+1189,6
@@
void option_init(struct fio_option *o)
(o->roff1 || o->roff2 || o->roff3 || o->roff4))) {
log_err("Option %s: both cb and offset given\n", o->name);
}
(o->roff1 || o->roff2 || o->roff3 || o->roff4))) {
log_err("Option %s: both cb and offset given\n", o->name);
}
- if (!o->category) {
- log_info("Options %s: no category defined. Setting to misc\n", o->name);
- o->category = FIO_OPT_C_GENERAL;
- }
}
/*
}
/*