diff options
Diffstat (limited to 'lib/tests/test_opts1.c')
-rw-r--r-- | lib/tests/test_opts1.c | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/lib/tests/test_opts1.c b/lib/tests/test_opts1.c index 984183d3..99da5596 100644 --- a/lib/tests/test_opts1.c +++ b/lib/tests/test_opts1.c | |||
@@ -47,16 +47,18 @@ void my_free(int *argc, char **newargv, char **argv) { | |||
47 | printf("'%s' ", newargv[i]); | 47 | printf("'%s' ", newargv[i]); |
48 | /* Stop freeing when we get to the start of the original array */ | 48 | /* Stop freeing when we get to the start of the original array */ |
49 | if (freeflag) { | 49 | if (freeflag) { |
50 | if (newargv[i] == argv[1]) | 50 | if (newargv[i] == argv[1]) { |
51 | freeflag = 0; | 51 | freeflag = 0; |
52 | else | 52 | } else { |
53 | free(newargv[i]); | 53 | free(newargv[i]); |
54 | } | ||
54 | } | 55 | } |
55 | } | 56 | } |
56 | printf("\n"); | 57 | printf("\n"); |
57 | /* Free only if it's a different array */ | 58 | /* Free only if it's a different array */ |
58 | if (newargv != argv) | 59 | if (newargv != argv) { |
59 | free(newargv); | 60 | free(newargv); |
61 | } | ||
60 | *argc = 0; | 62 | *argc = 0; |
61 | } | 63 | } |
62 | #endif | 64 | #endif |
@@ -69,8 +71,9 @@ int array_diff(int i1, char **a1, int i2, char **a2) { | |||
69 | return 0; | 71 | return 0; |
70 | } | 72 | } |
71 | for (i = 0; i <= i1; i++) { | 73 | for (i = 0; i <= i1; i++) { |
72 | if (a1[i] == NULL && a2[i] == NULL) | 74 | if (a1[i] == NULL && a2[i] == NULL) { |
73 | continue; | 75 | continue; |
76 | } | ||
74 | if (a1[i] == NULL || a2[i] == NULL) { | 77 | if (a1[i] == NULL || a2[i] == NULL) { |
75 | printf(" Argument # %i null in one array!\n", i); | 78 | printf(" Argument # %i null in one array!\n", i); |
76 | return 0; | 79 | return 0; |
@@ -110,27 +113,36 @@ int main(int argc, char **argv) { | |||
110 | { | 113 | { |
111 | char *argv_test[] = {"prog_name", "--extra-opts=@./config-opts.ini", (char *)NULL}; | 114 | char *argv_test[] = {"prog_name", "--extra-opts=@./config-opts.ini", (char *)NULL}; |
112 | argc_test = 2; | 115 | argc_test = 2; |
113 | char *argv_known[] = {"prog_name", "--foo=Bar", "--this=Your Mother!", "--blank", (char *)NULL}; | 116 | char *argv_known[] = {"prog_name", "--foo=Bar", "--this=Your Mother!", "--blank", |
117 | (char *)NULL}; | ||
114 | argv_new = np_extra_opts(&argc_test, argv_test, "check_disk"); | 118 | argv_new = np_extra_opts(&argc_test, argv_test, "check_disk"); |
115 | ok(array_diff(argc_test, argv_new, 4, argv_known), "Only extra opts using default section"); | 119 | ok(array_diff(argc_test, argv_new, 4, argv_known), "Only extra opts using default section"); |
116 | my_free(&argc_test, argv_new, argv_test); | 120 | my_free(&argc_test, argv_new, argv_test); |
117 | } | 121 | } |
118 | 122 | ||
119 | { | 123 | { |
120 | char *argv_test[] = {"prog_name", "--extra-opts=sect1@./config-opts.ini", "--extra-opts", "sect2@./config-opts.ini", (char *)NULL}; | 124 | char *argv_test[] = {"prog_name", "--extra-opts=sect1@./config-opts.ini", "--extra-opts", |
125 | "sect2@./config-opts.ini", (char *)NULL}; | ||
121 | argc_test = 4; | 126 | argc_test = 4; |
122 | char *argv_known[] = {"prog_name", "--one=two", "--something else=oops", "--this=that", (char *)NULL}; | 127 | char *argv_known[] = {"prog_name", "--one=two", "--something else=oops", "--this=that", |
128 | (char *)NULL}; | ||
123 | argv_new = np_extra_opts(&argc_test, argv_test, "check_disk"); | 129 | argv_new = np_extra_opts(&argc_test, argv_test, "check_disk"); |
124 | ok(array_diff(argc_test, argv_new, 4, argv_known), "Only extra opts specified twice"); | 130 | ok(array_diff(argc_test, argv_new, 4, argv_known), "Only extra opts specified twice"); |
125 | my_free(&argc_test, argv_new, argv_test); | 131 | my_free(&argc_test, argv_new, argv_test); |
126 | } | 132 | } |
127 | 133 | ||
128 | { | 134 | { |
129 | char *argv_test[] = {"prog_name", "--arg1=val1", "--extra-opts=@./config-opts.ini", "--extra-opts", "sect1@./config-opts.ini", | 135 | char *argv_test[] = {"prog_name", |
130 | "--arg2", (char *)NULL}; | 136 | "--arg1=val1", |
137 | "--extra-opts=@./config-opts.ini", | ||
138 | "--extra-opts", | ||
139 | "sect1@./config-opts.ini", | ||
140 | "--arg2", | ||
141 | (char *)NULL}; | ||
131 | argc_test = 6; | 142 | argc_test = 6; |
132 | char *argv_known[] = {"prog_name", "--foo=Bar", "--this=Your Mother!", "--blank", "--one=two", | 143 | char *argv_known[] = {"prog_name", "--foo=Bar", "--this=Your Mother!", |
133 | "--arg1=val1", "--arg2", (char *)NULL}; | 144 | "--blank", "--one=two", "--arg1=val1", |
145 | "--arg2", (char *)NULL}; | ||
134 | argv_new = np_extra_opts(&argc_test, argv_test, "check_disk"); | 146 | argv_new = np_extra_opts(&argc_test, argv_test, "check_disk"); |
135 | ok(array_diff(argc_test, argv_new, 7, argv_known), "twice extra opts using two sections"); | 147 | ok(array_diff(argc_test, argv_new, 7, argv_known), "twice extra opts using two sections"); |
136 | my_free(&argc_test, argv_new, argv_test); | 148 | my_free(&argc_test, argv_new, argv_test); |