aboutsummaryrefslogtreecommitdiffstats
path: root/test/test1.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/test1.c')
-rw-r--r--test/test1.c86
1 files changed, 86 insertions, 0 deletions
diff --git a/test/test1.c b/test/test1.c
new file mode 100644
index 0000000..dacae2e
--- /dev/null
+++ b/test/test1.c
@@ -0,0 +1,86 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "../arg.h"
+
+s_arg_ip src_ip =
+{
+ .port = 8080,
+ .ip = 0x7f000001
+};
+
+s_arg_range freq_range =
+{
+ .start = 88,
+ .end = 108,
+ .step = 100e3
+};
+
+s_arg_float ratio_float =
+{
+ .val = 0.8
+};
+
+s_arg_list color_name_list =
+{
+ .num = 3,
+ .default_val = "RED",
+ .vals = {"RED","GREEN","BLUE"}
+};
+
+s_arg_val number_val =
+{
+ .ptr = NULL
+};
+
+def_arg cmd_arg[] =
+{
+ ARG_ENTRY("-a",IP,&src_ip),
+ ARG_ENTRY("-b",RANGE,&freq_range),
+ ARG_ENTRY("-c",FLOAT,&ratio_float),
+ ARG_ENTRY("-d",LIST,&color_name_list),
+ ARG_ENTRY("-e",VAL,&number_val),
+ ARG_ENTRY("-f",FLAG,NULL),
+ ARG_ENTRY("-g",FLAG,NULL),
+ {NULL,0,NULL}
+};
+
+
+int main( int argc, char **argv )
+{
+
+ int i=0;
+ arg_t *cfg = NULL;
+
+ i = 0;
+ while ( cmd_arg[i].param != NULL )
+ {
+ printf("%s\n",cmd_arg[i].param);
+ i++;
+ }
+
+ cfg = arg_load( argc, argv, cmd_arg );
+
+ if (cfg->size == 0)
+ {
+ printf("No arguments found\n");
+ goto exit_error;
+ }
+
+ for (i=0;i<cfg->size;i++)
+ {
+ printf("TYPE:%d\n", cfg->arg[i]->type);
+ }
+
+ arg_print( cfg );
+
+ arg_free( cfg );
+
+ return 0;
+
+exit_error:
+ arg_free( cfg );
+
+ return -1;
+
+}