diff options
Diffstat (limited to 'src/util/test_getopt.c')
-rw-r--r-- | src/util/test_getopt.c | 167 |
1 files changed, 84 insertions, 83 deletions
diff --git a/src/util/test_getopt.c b/src/util/test_getopt.c index d9dd7121f..620605f96 100644 --- a/src/util/test_getopt.c +++ b/src/util/test_getopt.c | |||
@@ -11,12 +11,12 @@ | |||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Affero General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Affero General Public License | 15 | You should have received a copy of the GNU Affero General Public License |
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | ||
18 | SPDX-License-Identifier: AGPL3.0-or-later | 18 | SPDX-License-Identifier: AGPL3.0-or-later |
19 | */ | 19 | */ |
20 | /** | 20 | /** |
21 | * @file util/test_getopt.c | 21 | * @file util/test_getopt.c |
22 | * @brief testcase for util/getopt.c | 22 | * @brief testcase for util/getopt.c |
@@ -26,13 +26,14 @@ | |||
26 | 26 | ||
27 | 27 | ||
28 | static int | 28 | static int |
29 | testMinimal () | 29 | testMinimal() |
30 | { | 30 | { |
31 | char *const emptyargv[] = {"test", NULL}; | 31 | char *const emptyargv[] = { "test", NULL }; |
32 | const struct GNUNET_GETOPT_CommandLineOption emptyoptionlist[] = { | 32 | const struct GNUNET_GETOPT_CommandLineOption emptyoptionlist[] = { |
33 | GNUNET_GETOPT_OPTION_END}; | 33 | GNUNET_GETOPT_OPTION_END |
34 | }; | ||
34 | 35 | ||
35 | if (1 != GNUNET_GETOPT_run ("test", emptyoptionlist, 1, emptyargv)) | 36 | if (1 != GNUNET_GETOPT_run("test", emptyoptionlist, 1, emptyargv)) |
36 | return 1; | 37 | return 1; |
37 | 38 | ||
38 | return 0; | 39 | return 0; |
@@ -40,142 +41,142 @@ testMinimal () | |||
40 | 41 | ||
41 | 42 | ||
42 | static int | 43 | static int |
43 | testVerbose () | 44 | testVerbose() |
44 | { | 45 | { |
45 | char *const myargv[] = {"test", "-V", "-V", "more", NULL}; | 46 | char *const myargv[] = { "test", "-V", "-V", "more", NULL }; |
46 | unsigned int vflags = 0; | 47 | unsigned int vflags = 0; |
47 | 48 | ||
48 | const struct GNUNET_GETOPT_CommandLineOption verboseoptionlist[] = | 49 | const struct GNUNET_GETOPT_CommandLineOption verboseoptionlist[] = |
49 | {GNUNET_GETOPT_option_verbose (&vflags), GNUNET_GETOPT_OPTION_END}; | 50 | { GNUNET_GETOPT_option_verbose(&vflags), GNUNET_GETOPT_OPTION_END }; |
50 | 51 | ||
51 | if (3 != GNUNET_GETOPT_run ("test", verboseoptionlist, 4, myargv)) | 52 | if (3 != GNUNET_GETOPT_run("test", verboseoptionlist, 4, myargv)) |
52 | { | 53 | { |
53 | GNUNET_break (0); | 54 | GNUNET_break(0); |
54 | return 1; | 55 | return 1; |
55 | } | 56 | } |
56 | if (vflags != 2) | 57 | if (vflags != 2) |
57 | { | 58 | { |
58 | GNUNET_break (0); | 59 | GNUNET_break(0); |
59 | return 1; | 60 | return 1; |
60 | } | 61 | } |
61 | return 0; | 62 | return 0; |
62 | } | 63 | } |
63 | 64 | ||
64 | 65 | ||
65 | static int | 66 | static int |
66 | testVersion () | 67 | testVersion() |
67 | { | 68 | { |
68 | char *const myargv[] = {"test_getopt", "-v", NULL}; | 69 | char *const myargv[] = { "test_getopt", "-v", NULL }; |
69 | const struct GNUNET_GETOPT_CommandLineOption versionoptionlist[] = | 70 | const struct GNUNET_GETOPT_CommandLineOption versionoptionlist[] = |
70 | {GNUNET_GETOPT_option_version (PACKAGE_VERSION " " VCS_VERSION), | 71 | { GNUNET_GETOPT_option_version(PACKAGE_VERSION " " VCS_VERSION), |
71 | GNUNET_GETOPT_OPTION_END}; | 72 | GNUNET_GETOPT_OPTION_END }; |
72 | 73 | ||
73 | if (0 != GNUNET_GETOPT_run ("test_getopt", versionoptionlist, 2, myargv)) | 74 | if (0 != GNUNET_GETOPT_run("test_getopt", versionoptionlist, 2, myargv)) |
74 | { | 75 | { |
75 | GNUNET_break (0); | 76 | GNUNET_break(0); |
76 | return 1; | 77 | return 1; |
77 | } | 78 | } |
78 | return 0; | 79 | return 0; |
79 | } | 80 | } |
80 | 81 | ||
81 | 82 | ||
82 | static int | 83 | static int |
83 | testAbout () | 84 | testAbout() |
84 | { | 85 | { |
85 | char *const myargv[] = {"test_getopt", "-h", NULL}; | 86 | char *const myargv[] = { "test_getopt", "-h", NULL }; |
86 | const struct GNUNET_GETOPT_CommandLineOption aboutoptionlist[] = | 87 | const struct GNUNET_GETOPT_CommandLineOption aboutoptionlist[] = |
87 | {GNUNET_GETOPT_option_help ("Testing"), GNUNET_GETOPT_OPTION_END}; | 88 | { GNUNET_GETOPT_option_help("Testing"), GNUNET_GETOPT_OPTION_END }; |
88 | 89 | ||
89 | if (0 != GNUNET_GETOPT_run ("test_getopt", aboutoptionlist, 2, myargv)) | 90 | if (0 != GNUNET_GETOPT_run("test_getopt", aboutoptionlist, 2, myargv)) |
90 | { | 91 | { |
91 | GNUNET_break (0); | 92 | GNUNET_break(0); |
92 | return 1; | 93 | return 1; |
93 | } | 94 | } |
94 | return 0; | 95 | return 0; |
95 | } | 96 | } |
96 | 97 | ||
97 | 98 | ||
98 | static int | 99 | static int |
99 | testLogOpts () | 100 | testLogOpts() |
100 | { | 101 | { |
101 | char *const myargv[] = | 102 | char *const myargv[] = |
102 | {"test_getopt", "-l", "filename", "-L", "WARNING", NULL}; | 103 | { "test_getopt", "-l", "filename", "-L", "WARNING", NULL }; |
103 | char *level = GNUNET_strdup ("stuff"); | 104 | char *level = GNUNET_strdup("stuff"); |
104 | char *fn = NULL; | 105 | char *fn = NULL; |
105 | 106 | ||
106 | const struct GNUNET_GETOPT_CommandLineOption logoptionlist[] = | 107 | const struct GNUNET_GETOPT_CommandLineOption logoptionlist[] = |
107 | {GNUNET_GETOPT_option_logfile (&fn), | 108 | { GNUNET_GETOPT_option_logfile(&fn), |
108 | GNUNET_GETOPT_option_loglevel (&level), | 109 | GNUNET_GETOPT_option_loglevel(&level), |
109 | GNUNET_GETOPT_OPTION_END}; | 110 | GNUNET_GETOPT_OPTION_END }; |
110 | 111 | ||
111 | if (5 != GNUNET_GETOPT_run ("test_getopt", logoptionlist, 5, myargv)) | 112 | if (5 != GNUNET_GETOPT_run("test_getopt", logoptionlist, 5, myargv)) |
112 | { | 113 | { |
113 | GNUNET_break (0); | 114 | GNUNET_break(0); |
114 | return 1; | 115 | return 1; |
115 | } | 116 | } |
116 | GNUNET_assert (NULL != fn); | 117 | GNUNET_assert(NULL != fn); |
117 | if ((0 != strcmp (level, "WARNING")) || (NULL == strstr (fn, "/filename"))) | 118 | if ((0 != strcmp(level, "WARNING")) || (NULL == strstr(fn, "/filename"))) |
118 | { | 119 | { |
119 | GNUNET_break (0); | 120 | GNUNET_break(0); |
120 | GNUNET_free (level); | 121 | GNUNET_free(level); |
121 | GNUNET_free (fn); | 122 | GNUNET_free(fn); |
122 | return 1; | 123 | return 1; |
123 | } | 124 | } |
124 | GNUNET_free (level); | 125 | GNUNET_free(level); |
125 | GNUNET_free (fn); | 126 | GNUNET_free(fn); |
126 | return 0; | 127 | return 0; |
127 | } | 128 | } |
128 | 129 | ||
129 | 130 | ||
130 | static int | 131 | static int |
131 | testFlagNum () | 132 | testFlagNum() |
132 | { | 133 | { |
133 | char *const myargv[] = {"test_getopt", "-f", "-n", "42", "-N", "42", NULL}; | 134 | char *const myargv[] = { "test_getopt", "-f", "-n", "42", "-N", "42", NULL }; |
134 | int flag = 0; | 135 | int flag = 0; |
135 | unsigned int num = 0; | 136 | unsigned int num = 0; |
136 | unsigned long long lnum = 0; | 137 | unsigned long long lnum = 0; |
137 | 138 | ||
138 | const struct GNUNET_GETOPT_CommandLineOption logoptionlist[] = | 139 | const struct GNUNET_GETOPT_CommandLineOption logoptionlist[] = |
139 | {GNUNET_GETOPT_option_flag ('f', "--flag", "helptext", &flag), | 140 | { GNUNET_GETOPT_option_flag('f', "--flag", "helptext", &flag), |
140 | GNUNET_GETOPT_option_uint ('n', "--num", "ARG", "helptext", &num), | 141 | GNUNET_GETOPT_option_uint('n', "--num", "ARG", "helptext", &num), |
141 | GNUNET_GETOPT_option_ulong ('N', "--lnum", "ARG", "helptext", &lnum), | 142 | GNUNET_GETOPT_option_ulong('N', "--lnum", "ARG", "helptext", &lnum), |
142 | GNUNET_GETOPT_OPTION_END}; | 143 | GNUNET_GETOPT_OPTION_END }; |
143 | 144 | ||
144 | if (6 != GNUNET_GETOPT_run ("test_getopt", logoptionlist, 6, myargv)) | 145 | if (6 != GNUNET_GETOPT_run("test_getopt", logoptionlist, 6, myargv)) |
145 | { | 146 | { |
146 | GNUNET_break (0); | 147 | GNUNET_break(0); |
147 | return 1; | 148 | return 1; |
148 | } | 149 | } |
149 | if ((1 != flag) || (42 != num) || (42 != lnum)) | 150 | if ((1 != flag) || (42 != num) || (42 != lnum)) |
150 | { | 151 | { |
151 | GNUNET_break (0); | 152 | GNUNET_break(0); |
152 | return 1; | 153 | return 1; |
153 | } | 154 | } |
154 | return 0; | 155 | return 0; |
155 | } | 156 | } |
156 | 157 | ||
157 | 158 | ||
158 | int | 159 | int |
159 | main (int argc, char *argv[]) | 160 | main(int argc, char *argv[]) |
160 | { | 161 | { |
161 | int errCnt = 0; | 162 | int errCnt = 0; |
162 | 163 | ||
163 | GNUNET_log_setup ("test_getopt", "WARNING", NULL); | 164 | GNUNET_log_setup("test_getopt", "WARNING", NULL); |
164 | /* suppress output from -h, -v options */ | 165 | /* suppress output from -h, -v options */ |
165 | #ifndef MINGW | 166 | #ifndef MINGW |
166 | GNUNET_break (0 == close (1)); | 167 | GNUNET_break(0 == close(1)); |
167 | #endif | 168 | #endif |
168 | if (0 != testMinimal ()) | 169 | if (0 != testMinimal()) |
169 | errCnt++; | 170 | errCnt++; |
170 | if (0 != testVerbose ()) | 171 | if (0 != testVerbose()) |
171 | errCnt++; | 172 | errCnt++; |
172 | if (0 != testVersion ()) | 173 | if (0 != testVersion()) |
173 | errCnt++; | 174 | errCnt++; |
174 | if (0 != testAbout ()) | 175 | if (0 != testAbout()) |
175 | errCnt++; | 176 | errCnt++; |
176 | if (0 != testLogOpts ()) | 177 | if (0 != testLogOpts()) |
177 | errCnt++; | 178 | errCnt++; |
178 | if (0 != testFlagNum ()) | 179 | if (0 != testFlagNum()) |
179 | errCnt++; | 180 | errCnt++; |
180 | return errCnt; | 181 | return errCnt; |
181 | } | 182 | } |