Revision: 65192
http://sourceforge.net/p/brlcad/code/65192
Author: starseeker
Date: 2015-06-05 01:05:53 +0000 (Fri, 05 Jun 2015)
Log Message:
-----------
Add proof-of-concept test for negative number parsing
Modified Paths:
--------------
brlcad/trunk/src/libbu/opt.c
brlcad/trunk/src/libbu/tests/CMakeLists.txt
brlcad/trunk/src/libbu/tests/opt.c
Modified: brlcad/trunk/src/libbu/opt.c
===================================================================
--- brlcad/trunk/src/libbu/opt.c 2015-06-05 00:45:22 UTC (rev 65191)
+++ brlcad/trunk/src/libbu/opt.c 2015-06-05 01:05:53 UTC (rev 65192)
@@ -691,6 +691,30 @@
return ret;
}
+
+int
+bu_opt_arg_int(struct bu_vls *UNUSED(msg), struct bu_opt_data *data)
+{
+ int i, ret;
+ if (!data) return 0;
+
+ if (data->argc != 1 || !data->argv || !data->argv[0]) {
+ data->valid = 0;
+ return 0;
+ }
+
+ ret = bu_sscanf(data->argv[0], "%i", &i);
+
+ if (ret == 0) {
+ data->valid = 0;
+ return 1;
+ } else {
+ return 1;
+ }
+
+}
+
+
/*
* Local Variables:
* mode: C
Modified: brlcad/trunk/src/libbu/tests/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/libbu/tests/CMakeLists.txt 2015-06-05 00:45:22 UTC (rev
65191)
+++ brlcad/trunk/src/libbu/tests/CMakeLists.txt 2015-06-05 01:05:53 UTC (rev
65192)
@@ -470,6 +470,9 @@
add_test(NAME bu_opt_2_12 COMMAND tester_bu_opt 2 --color=200 10 30)
add_test(NAME bu_opt_2_13 COMMAND tester_bu_opt 2 --color=200/10/30)
add_test(NAME bu_opt_2_14 COMMAND tester_bu_opt 2 --color=200 10 30 file)
+add_test(NAME bu_opt_3_00 COMMAND tester_bu_opt 3 -n)
+add_test(NAME bu_opt_3_01 COMMAND tester_bu_opt 3 -n 1)
+add_test(NAME bu_opt_3_02 COMMAND tester_bu_opt 3 -n -1)
#
# *********** date-time.c tests ************
Modified: brlcad/trunk/src/libbu/tests/opt.c
===================================================================
--- brlcad/trunk/src/libbu/tests/opt.c 2015-06-05 00:45:22 UTC (rev 65191)
+++ brlcad/trunk/src/libbu/tests/opt.c 2015-06-05 01:05:53 UTC (rev 65192)
@@ -139,7 +139,15 @@
BU_OPT_DESC_NULL
};
+ enum d3_opt_ind {D3_HELP, D3_NUM};
+ struct bu_opt_desc d3[4] = {
+ {D3_HELP, 0, 0, "h", "help", NULL, "", help_str},
+ {D3_NUM, 1, 1, "n", "num", &bu_opt_arg_int, "#", "Read number"},
+ BU_OPT_DESC_NULL
+ };
+
+
if (argc < 2)
bu_exit(1, "ERROR: wrong number of parameters");
@@ -156,6 +164,9 @@
case 2:
(void)bu_opt_parse(&results, NULL, argc-2, argv+2, d2);
break;
+ case 3:
+ (void)bu_opt_parse(&results, NULL, argc-2, argv+2, d3);
+ break;
}
if (results) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits