X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fopt%2Ftest%2Frun-helpers.c;fp=ccan%2Fopt%2Ftest%2Frun-helpers.c;h=6ec17f589fdb76d8c1fc7f0f78d39619d18c6294;hp=49fb2062e30427725c4b79b33303df55edc02e14;hb=106eab33eac437bdde11280e5f05f194a8fdb8c8;hpb=188ec2fac47289c7b543e9307d61af7fbccde0f5 diff --git a/ccan/opt/test/run-helpers.c b/ccan/opt/test/run-helpers.c index 49fb2062..6ec17f58 100644 --- a/ccan/opt/test/run-helpers.c +++ b/ccan/opt/test/run-helpers.c @@ -5,6 +5,7 @@ #include #include #include "utils.h" +#include /* We don't actually want it to exit... */ static jmp_buf exited; @@ -77,7 +78,7 @@ static void set_args(int *argc, char ***argv, ...) /* Test helpers. */ int main(int argc, char *argv[]) { - plan_tests(476); + plan_tests(500); /* opt_set_bool */ { @@ -215,9 +216,25 @@ int main(int argc, char *argv[]) ok1(arg == 9999); ok1(parse_args(&argc, &argv, "-a", "-9999", NULL)); ok1(arg == -9999); + ok1(parse_args(&argc, &argv, "-a", "1e33", NULL)); + ok1(arg == 1e33f); + /*overflows should fail */ + ok1(!parse_args(&argc, &argv, "-a", "1e39", NULL)); + ok1(!parse_args(&argc, &argv, "-a", "-1e40", NULL)); + /*low numbers lose precision but work */ + ok1(parse_args(&argc, &argv, "-a", "1e-39", NULL)); + ok1(arg == 1e-39f); + ok1(parse_args(&argc, &argv, "-a", "-1e-45", NULL)); + ok1(arg == -1e-45f); + ok1(!parse_args(&argc, &argv, "-a", "1e-99", NULL)); ok1(parse_args(&argc, &argv, "-a", "0", NULL)); ok1(arg == 0); + ok1(parse_args(&argc, &argv, "-a", "1.111111111111", NULL)); + ok1(arg == 1.1111112f); + ok1(parse_args(&argc, &argv, "-a", "INF", NULL)); + ok1(isinf(arg)); ok1(!parse_args(&argc, &argv, "-a", "100crap", NULL)); + ok1(!parse_args(&argc, &argv, "-a", "1e7crap", NULL)); } /* opt_set_doubleval */ { @@ -228,9 +245,19 @@ int main(int argc, char *argv[]) ok1(arg == 9999); ok1(parse_args(&argc, &argv, "-a", "-9999", NULL)); ok1(arg == -9999); + ok1(parse_args(&argc, &argv, "-a", "1e-299", NULL)); + ok1(arg == 1e-299); + ok1(parse_args(&argc, &argv, "-a", "-1e-305", NULL)); + ok1(arg == -1e-305); + ok1(!parse_args(&argc, &argv, "-a", "1e-499", NULL)); ok1(parse_args(&argc, &argv, "-a", "0", NULL)); ok1(arg == 0); + ok1(parse_args(&argc, &argv, "-a", "1.1111111111111111111", NULL)); + ok1(arg == 1.1111111111111112); + ok1(parse_args(&argc, &argv, "-a", "INF", NULL)); + ok1(isinf(arg)); ok1(!parse_args(&argc, &argv, "-a", "100crap", NULL)); + ok1(!parse_args(&argc, &argv, "-a", "1e7crap", NULL)); } {