diff options
author | jsing <> | 2014-12-28 16:11:54 +0000 |
---|---|---|
committer | jsing <> | 2014-12-28 16:11:54 +0000 |
commit | 84bb0d054839eafa37a0ae06c864c16155188d05 (patch) | |
tree | 97f2b09b8d9de60d25c92fd71f5c6b126aec117d | |
parent | 5b99ab3aef9652baafedf8a5e0aafa1fca73aabf (diff) | |
download | openbsd-84bb0d054839eafa37a0ae06c864c16155188d05.tar.gz openbsd-84bb0d054839eafa37a0ae06c864c16155188d05.tar.bz2 openbsd-84bb0d054839eafa37a0ae06c864c16155188d05.zip |
Add option parsing regress tests with end of options handling.
-rw-r--r-- | src/regress/usr.bin/openssl/options/optionstest.c | 67 |
1 files changed, 50 insertions, 17 deletions
diff --git a/src/regress/usr.bin/openssl/options/optionstest.c b/src/regress/usr.bin/openssl/options/optionstest.c index d493f7801d..ee756b7880 100644 --- a/src/regress/usr.bin/openssl/options/optionstest.c +++ b/src/regress/usr.bin/openssl/options/optionstest.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: optionstest.c,v 1.4 2014/12/28 15:49:36 jsing Exp $ */ | 1 | /* $OpenBSD: optionstest.c,v 1.5 2014/12/28 16:11:54 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -62,8 +62,11 @@ char *args3[] = { "opts", "-arg", "arg", "-flag", "unnamed" }; | |||
62 | char *args4[] = { "opts", "-arg", "arg", "unnamed", "-flag" }; | 62 | char *args4[] = { "opts", "-arg", "arg", "unnamed", "-flag" }; |
63 | char *args5[] = { "opts", "unnamed1", "-arg", "arg", "-flag", "unnamed2" }; | 63 | char *args5[] = { "opts", "unnamed1", "-arg", "arg", "-flag", "unnamed2" }; |
64 | char *args6[] = { "opts", "-argfunc", "arg", "-flag" }; | 64 | char *args6[] = { "opts", "-argfunc", "arg", "-flag" }; |
65 | char *args7[] = { "opts", "-arg", "arg", "-flag", "file1", "file2", "file3" }; | 65 | char *args7[] = { "opts", "-arg", "arg", "-flag", "-", "-unnamed" }; |
66 | char *args8[] = { "opts", "-arg", "arg", "-flag", "file1", "-file2", "file3" }; | 66 | char *args8[] = { "opts", "-arg", "arg", "-flag", "file1", "file2", "file3" }; |
67 | char *args9[] = { "opts", "-arg", "arg", "-flag", "file1", "-file2", "file3" }; | ||
68 | char *args10[] = { "opts", "-arg", "arg", "-flag", "-", "file1", "file2" }; | ||
69 | char *args11[] = { "opts", "-arg", "arg", "-flag", "-", "-file1", "-file2" }; | ||
67 | 70 | ||
68 | struct options_test { | 71 | struct options_test { |
69 | int argc; | 72 | int argc; |
@@ -82,7 +85,7 @@ struct options_test { | |||
82 | 85 | ||
83 | struct options_test options_tests[] = { | 86 | struct options_test options_tests[] = { |
84 | { | 87 | { |
85 | /* No arguments (only program name). */ | 88 | /* Test 1 - No arguments (only program name). */ |
86 | .argc = 1, | 89 | .argc = 1, |
87 | .argv = args1, | 90 | .argv = args1, |
88 | .type = OPTIONS_TEST_NONE, | 91 | .type = OPTIONS_TEST_NONE, |
@@ -91,7 +94,7 @@ struct options_test options_tests[] = { | |||
91 | .wantflag = 0, | 94 | .wantflag = 0, |
92 | }, | 95 | }, |
93 | { | 96 | { |
94 | /* Named arguments (unnamed not permitted). */ | 97 | /* Test 2 - Named arguments (unnamed not permitted). */ |
95 | .argc = 4, | 98 | .argc = 4, |
96 | .argv = args2, | 99 | .argv = args2, |
97 | .type = OPTIONS_TEST_NONE, | 100 | .type = OPTIONS_TEST_NONE, |
@@ -100,7 +103,7 @@ struct options_test options_tests[] = { | |||
100 | .wantflag = 1, | 103 | .wantflag = 1, |
101 | }, | 104 | }, |
102 | { | 105 | { |
103 | /* Named arguments (unnamed permitted). */ | 106 | /* Test 3 - Named arguments (unnamed permitted). */ |
104 | .argc = 4, | 107 | .argc = 4, |
105 | .argv = args2, | 108 | .argv = args2, |
106 | .type = OPTIONS_TEST_UNNAMED, | 109 | .type = OPTIONS_TEST_UNNAMED, |
@@ -110,14 +113,14 @@ struct options_test options_tests[] = { | |||
110 | .wantflag = 1, | 113 | .wantflag = 1, |
111 | }, | 114 | }, |
112 | { | 115 | { |
113 | /* Named and single unnamed (unnamed not permitted). */ | 116 | /* Test 4 - Named and single unnamed (unnamed not permitted). */ |
114 | .argc = 5, | 117 | .argc = 5, |
115 | .argv = args3, | 118 | .argv = args3, |
116 | .type = OPTIONS_TEST_NONE, | 119 | .type = OPTIONS_TEST_NONE, |
117 | .want = 1, | 120 | .want = 1, |
118 | }, | 121 | }, |
119 | { | 122 | { |
120 | /* Named and single unnamed (unnamed permitted). */ | 123 | /* Test 5 - Named and single unnamed (unnamed permitted). */ |
121 | .argc = 5, | 124 | .argc = 5, |
122 | .argv = args3, | 125 | .argv = args3, |
123 | .type = OPTIONS_TEST_UNNAMED, | 126 | .type = OPTIONS_TEST_UNNAMED, |
@@ -127,7 +130,7 @@ struct options_test options_tests[] = { | |||
127 | .wantflag = 1, | 130 | .wantflag = 1, |
128 | }, | 131 | }, |
129 | { | 132 | { |
130 | /* Named and single unnamed (different sequence). */ | 133 | /* Test 6 - Named and single unnamed (different sequence). */ |
131 | .argc = 5, | 134 | .argc = 5, |
132 | .argv = args4, | 135 | .argv = args4, |
133 | .type = OPTIONS_TEST_UNNAMED, | 136 | .type = OPTIONS_TEST_UNNAMED, |
@@ -137,14 +140,14 @@ struct options_test options_tests[] = { | |||
137 | .wantflag = 1, | 140 | .wantflag = 1, |
138 | }, | 141 | }, |
139 | { | 142 | { |
140 | /* Multiple unnamed arguments (should fail). */ | 143 | /* Test 7 - Multiple unnamed arguments (should fail). */ |
141 | .argc = 6, | 144 | .argc = 6, |
142 | .argv = args5, | 145 | .argv = args5, |
143 | .type = OPTIONS_TEST_UNNAMED, | 146 | .type = OPTIONS_TEST_UNNAMED, |
144 | .want = 1, | 147 | .want = 1, |
145 | }, | 148 | }, |
146 | { | 149 | { |
147 | /* Function. */ | 150 | /* Test 8 - Function. */ |
148 | .argc = 4, | 151 | .argc = 4, |
149 | .argv = args6, | 152 | .argv = args6, |
150 | .type = OPTIONS_TEST_NONE, | 153 | .type = OPTIONS_TEST_NONE, |
@@ -153,9 +156,19 @@ struct options_test options_tests[] = { | |||
153 | .wantflag = 1, | 156 | .wantflag = 1, |
154 | }, | 157 | }, |
155 | { | 158 | { |
156 | /* Named and multiple unnamed. */ | 159 | /* Test 9 - Named and single unnamed (hyphen separated). */ |
157 | .argc = 7, | 160 | .argc = 6, |
158 | .argv = args7, | 161 | .argv = args7, |
162 | .type = OPTIONS_TEST_UNNAMED, | ||
163 | .unnamed = "-unnamed", | ||
164 | .want = 0, | ||
165 | .wantarg = "arg", | ||
166 | .wantflag = 1, | ||
167 | }, | ||
168 | { | ||
169 | /* Test 10 - Named and multiple unnamed. */ | ||
170 | .argc = 7, | ||
171 | .argv = args8, | ||
159 | .used = 4, | 172 | .used = 4, |
160 | .type = OPTIONS_TEST_ARGSUSED, | 173 | .type = OPTIONS_TEST_ARGSUSED, |
161 | .want = 0, | 174 | .want = 0, |
@@ -163,9 +176,9 @@ struct options_test options_tests[] = { | |||
163 | .wantflag = 1, | 176 | .wantflag = 1, |
164 | }, | 177 | }, |
165 | { | 178 | { |
166 | /* Named and multiple unnamed. */ | 179 | /* Test 11 - Named and multiple unnamed. */ |
167 | .argc = 7, | 180 | .argc = 7, |
168 | .argv = args8, | 181 | .argv = args9, |
169 | .used = 4, | 182 | .used = 4, |
170 | .type = OPTIONS_TEST_ARGSUSED, | 183 | .type = OPTIONS_TEST_ARGSUSED, |
171 | .want = 0, | 184 | .want = 0, |
@@ -173,7 +186,27 @@ struct options_test options_tests[] = { | |||
173 | .wantflag = 1, | 186 | .wantflag = 1, |
174 | }, | 187 | }, |
175 | { | 188 | { |
176 | /* Named only. */ | 189 | /* Test 12 - Named and multiple unnamed. */ |
190 | .argc = 7, | ||
191 | .argv = args10, | ||
192 | .used = 5, | ||
193 | .type = OPTIONS_TEST_ARGSUSED, | ||
194 | .want = 0, | ||
195 | .wantarg = "arg", | ||
196 | .wantflag = 1, | ||
197 | }, | ||
198 | { | ||
199 | /* Test 13 - Named and multiple unnamed. */ | ||
200 | .argc = 7, | ||
201 | .argv = args11, | ||
202 | .used = 5, | ||
203 | .type = OPTIONS_TEST_ARGSUSED, | ||
204 | .want = 0, | ||
205 | .wantarg = "arg", | ||
206 | .wantflag = 1, | ||
207 | }, | ||
208 | { | ||
209 | /* Test 14 - Named only. */ | ||
177 | .argc = 4, | 210 | .argc = 4, |
178 | .argv = args2, | 211 | .argv = args2, |
179 | .used = 4, | 212 | .used = 4, |
@@ -254,7 +287,7 @@ main(int argc, char **argv) | |||
254 | size_t i; | 287 | size_t i; |
255 | 288 | ||
256 | for (i = 0; i < N_OPTIONS_TESTS; i++) | 289 | for (i = 0; i < N_OPTIONS_TESTS; i++) |
257 | failed += do_options_test(i, &options_tests[i]); | 290 | failed += do_options_test(i + 1, &options_tests[i]); |
258 | 291 | ||
259 | return (failed); | 292 | return (failed); |
260 | } | 293 | } |