X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fopt%2Ftest%2Frun-helpers.c;h=49fb2062e30427725c4b79b33303df55edc02e14;hp=10b241908add534cd0f816457214debe28be1fea;hb=b989e06c093fb7a2befae277f684fa75b64b9ef5;hpb=79715b8c08446fe5e74d2ab9e9db00175169eab3 diff --git a/ccan/opt/test/run-helpers.c b/ccan/opt/test/run-helpers.c index 10b24190..49fb2062 100644 --- a/ccan/opt/test/run-helpers.c +++ b/ccan/opt/test/run-helpers.c @@ -77,7 +77,7 @@ static void set_args(int *argc, char ***argv, ...) /* Test helpers. */ int main(int argc, char *argv[]) { - plan_tests(454); + plan_tests(476); /* opt_set_bool */ { @@ -206,6 +206,32 @@ int main(int argc, char *argv[]) else fail("FIXME: Handle other long sizes"); } + /* opt_set_floatval */ + { + float arg = 1000; + reset_options(); + opt_register_arg("-a", opt_set_floatval, NULL, &arg, "All"); + ok1(parse_args(&argc, &argv, "-a", "9999", NULL)); + ok1(arg == 9999); + ok1(parse_args(&argc, &argv, "-a", "-9999", NULL)); + ok1(arg == -9999); + ok1(parse_args(&argc, &argv, "-a", "0", NULL)); + ok1(arg == 0); + ok1(!parse_args(&argc, &argv, "-a", "100crap", NULL)); + } + /* opt_set_doubleval */ + { + double arg = 1000; + reset_options(); + opt_register_arg("-a", opt_set_doubleval, NULL, &arg, "All"); + ok1(parse_args(&argc, &argv, "-a", "9999", NULL)); + ok1(arg == 9999); + ok1(parse_args(&argc, &argv, "-a", "-9999", NULL)); + ok1(arg == -9999); + ok1(parse_args(&argc, &argv, "-a", "0", NULL)); + ok1(arg == 0); + ok1(!parse_args(&argc, &argv, "-a", "100crap", NULL)); + } { const long long k = 1024; @@ -1140,6 +1166,40 @@ int main(int argc, char *argv[]) ok1(buf[OPT_SHOW_LEN] == '!'); } + /* opt_show_floatval */ + { + float f; + char buf[OPT_SHOW_LEN+2] = { 0 }; + buf[OPT_SHOW_LEN] = '!'; + + f = -77.5; + opt_show_floatval(buf, &f); + ok1(strcmp(buf, "-77.500000") == 0); + ok1(buf[OPT_SHOW_LEN] == '!'); + + f = 77.5; + opt_show_floatval(buf, &f); + ok1(strcmp(buf, "77.500000") == 0); + ok1(buf[OPT_SHOW_LEN] == '!'); + } + + /* opt_show_doubleval */ + { + double d; + char buf[OPT_SHOW_LEN+2] = { 0 }; + buf[OPT_SHOW_LEN] = '!'; + + d = -77; + opt_show_doubleval(buf, &d); + ok1(strcmp(buf, "-77.000000") == 0); + ok1(buf[OPT_SHOW_LEN] == '!'); + + d = 77; + opt_show_doubleval(buf, &d); + ok1(strcmp(buf, "77.000000") == 0); + ok1(buf[OPT_SHOW_LEN] == '!'); + } + /* opt_log_stderr. */ { reset_options();