diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-10-11 09:43:04 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-10-11 09:43:04 +0000 |
commit | d9d94d0e53d26af75ec8241383d166544ebd79f3 (patch) | |
tree | 9080b73624389403a198257fe0547bb4634e64d2 /src/util/test_common_logging_runtime_loglevels.c | |
parent | 2d792ee2e9cc0c993b8907e2c8edb0c2b8465343 (diff) | |
download | gnunet-d9d94d0e53d26af75ec8241383d166544ebd79f3.tar.gz gnunet-d9d94d0e53d26af75ec8241383d166544ebd79f3.zip |
converting to GNUNET_LOG_from*
Diffstat (limited to 'src/util/test_common_logging_runtime_loglevels.c')
-rw-r--r-- | src/util/test_common_logging_runtime_loglevels.c | 334 |
1 files changed, 186 insertions, 148 deletions
diff --git a/src/util/test_common_logging_runtime_loglevels.c b/src/util/test_common_logging_runtime_loglevels.c index 815a3e516..388f74ec1 100644 --- a/src/util/test_common_logging_runtime_loglevels.c +++ b/src/util/test_common_logging_runtime_loglevels.c | |||
@@ -47,34 +47,35 @@ static void runone (); | |||
47 | static void | 47 | static void |
48 | end_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 48 | end_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
49 | { | 49 | { |
50 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Ending phase %d, ok is %d\n", phase, ok); | 50 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Ending phase %d, ok is %d\n", phase, |
51 | ok); | ||
51 | if (0 != GNUNET_OS_process_kill (proc, SIGTERM)) | 52 | if (0 != GNUNET_OS_process_kill (proc, SIGTERM)) |
52 | { | 53 | { |
53 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); | 54 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); |
54 | } | 55 | } |
55 | GNUNET_OS_process_wait (proc); | 56 | GNUNET_OS_process_wait (proc); |
56 | GNUNET_OS_process_close (proc); | 57 | GNUNET_OS_process_close (proc); |
57 | proc = NULL; | 58 | proc = NULL; |
58 | GNUNET_DISK_pipe_close (pipe_stdout); | 59 | GNUNET_DISK_pipe_close (pipe_stdout); |
59 | if (ok == 1) | 60 | if (ok == 1) |
60 | { | ||
61 | if (phase < 9) | ||
62 | { | 61 | { |
63 | phase += 1; | 62 | if (phase < 9) |
64 | runone (); | 63 | { |
64 | phase += 1; | ||
65 | runone (); | ||
66 | } | ||
67 | else | ||
68 | ok = 0; | ||
65 | } | 69 | } |
66 | else | ||
67 | ok = 0; | ||
68 | } | ||
69 | else | 70 | else |
70 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "failing\n"); | 71 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "failing\n"); |
71 | } | 72 | } |
72 | 73 | ||
73 | static char * | 74 | static char * |
74 | read_output_line (int phase_from1, int phase_to1, int phase_from2, | 75 | read_output_line (int phase_from1, int phase_to1, int phase_from2, |
75 | int phase_to2, char c, char *expect_level, | 76 | int phase_to2, char c, char *expect_level, |
76 | long delay_morethan, long delay_lessthan, int phase, char *p, | 77 | long delay_morethan, long delay_lessthan, int phase, |
77 | int *len, long *delay, char level[8]) | 78 | char *p, int *len, long *delay, char level[8]) |
78 | { | 79 | { |
79 | char *r = p; | 80 | char *r = p; |
80 | char t[7]; | 81 | char t[7]; |
@@ -82,67 +83,71 @@ read_output_line (int phase_from1, int phase_to1, int phase_from2, | |||
82 | j = 0; | 83 | j = 0; |
83 | int stage = 0; | 84 | int stage = 0; |
84 | if (!(phase >= phase_from1 && phase <= phase_to1) && | 85 | if (!(phase >= phase_from1 && phase <= phase_to1) && |
85 | !(phase >= phase_from2 && phase <= phase_to2)) | 86 | !(phase >= phase_from2 && phase <= phase_to2)) |
86 | return p; | 87 | return p; |
87 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying to match '%c%s \\d\\r\\n' on %s\n", c, expect_level, p); | 88 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
89 | "Trying to match '%c%s \\d\\r\\n' on %s\n", c, expect_level, p); | ||
88 | for (i = 0; i < *len && !stop; i++) | 90 | for (i = 0; i < *len && !stop; i++) |
89 | { | ||
90 | switch (stage) | ||
91 | { | 91 | { |
92 | case 0: /* read first char */ | 92 | switch (stage) |
93 | if (r[i] != c) | 93 | { |
94 | { | 94 | case 0: /* read first char */ |
95 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Expected '%c', but got '%c'\n", c, r[i]); | 95 | if (r[i] != c) |
96 | GNUNET_break (0); | 96 | { |
97 | return NULL; | 97 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
98 | } | 98 | "Expected '%c', but got '%c'\n", c, r[i]); |
99 | stage += 1; | 99 | GNUNET_break (0); |
100 | break; | 100 | return NULL; |
101 | case 1: /* read at most 7 char-long error level string, finished by ' ' */ | 101 | } |
102 | if (r[i] == ' ') | 102 | stage += 1; |
103 | { | 103 | break; |
104 | level[j] = '\0'; | 104 | case 1: /* read at most 7 char-long error level string, finished by ' ' */ |
105 | stage += 1; | 105 | if (r[i] == ' ') |
106 | j = 0; | 106 | { |
107 | } | 107 | level[j] = '\0'; |
108 | else if (i == 8) | 108 | stage += 1; |
109 | { | 109 | j = 0; |
110 | GNUNET_break (0); | 110 | } |
111 | ok = 2; | 111 | else if (i == 8) |
112 | return NULL; | 112 | { |
113 | } | 113 | GNUNET_break (0); |
114 | else | 114 | ok = 2; |
115 | level[j++] = r[i]; | 115 | return NULL; |
116 | break; | 116 | } |
117 | case 2: /* read the delay, finished by '\n' */ | 117 | else |
118 | t[j++] = r[i]; | 118 | level[j++] = r[i]; |
119 | break; | ||
120 | case 2: /* read the delay, finished by '\n' */ | ||
121 | t[j++] = r[i]; | ||
119 | #if WINDOWS | 122 | #if WINDOWS |
120 | if (r[i] == '\r' && r[i + 1] == '\n') | 123 | if (r[i] == '\r' && r[i + 1] == '\n') |
121 | { | 124 | { |
122 | i += 1; | 125 | i += 1; |
123 | t[j - 1] = '\0'; | 126 | t[j - 1] = '\0'; |
124 | *delay = strtol (t, NULL, 10); | 127 | *delay = strtol (t, NULL, 10); |
125 | stop = 1; | 128 | stop = 1; |
126 | } | 129 | } |
127 | #else | 130 | #else |
128 | if (r[i] == '\n') | 131 | if (r[i] == '\n') |
129 | { | 132 | { |
130 | t[j - 1] = '\0'; | 133 | t[j - 1] = '\0'; |
131 | *delay = strtol (t, NULL, 10); | 134 | *delay = strtol (t, NULL, 10); |
132 | stop = 1; | 135 | stop = 1; |
133 | } | 136 | } |
134 | #endif | 137 | #endif |
135 | break; | 138 | break; |
139 | } | ||
136 | } | 140 | } |
137 | } | 141 | if (!stop || strcmp (expect_level, level) != 0 || *delay < 0 |
138 | if (!stop || strcmp (expect_level, level) != 0 || *delay < 0 || *delay > 1000 || | 142 | || *delay > 1000 |
139 | (!((*delay < delay_lessthan) || !(*delay > delay_morethan)) && c != '1' && c != '2')) | 143 | || (!((*delay < delay_lessthan) || !(*delay > delay_morethan)) |
144 | && c != '1' && c != '2')) | ||
140 | return NULL; | 145 | return NULL; |
141 | *len = *len - i; | 146 | *len = *len - i; |
142 | return &r[i]; | 147 | return &r[i]; |
143 | } | 148 | } |
144 | 149 | ||
145 | char buf[20*16]; | 150 | char buf[20 * 16]; |
146 | char *buf_ptr; | 151 | char *buf_ptr; |
147 | int bytes; | 152 | int bytes; |
148 | 153 | ||
@@ -155,19 +160,20 @@ read_call (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
155 | long delays[8]; | 160 | long delays[8]; |
156 | int rd; | 161 | int rd; |
157 | 162 | ||
158 | rd = GNUNET_DISK_file_read (stdout_read_handle, buf_ptr, sizeof (buf) - bytes); | 163 | rd = |
164 | GNUNET_DISK_file_read (stdout_read_handle, buf_ptr, sizeof (buf) - bytes); | ||
159 | if (rd > 0) | 165 | if (rd > 0) |
160 | { | 166 | { |
161 | buf_ptr += rd; | 167 | buf_ptr += rd; |
162 | bytes += rd; | 168 | bytes += rd; |
163 | #if VERBOSE | 169 | #if VERBOSE |
164 | fprintf (stderr, "got %d bytes, reading more\n", rd); | 170 | fprintf (stderr, "got %d bytes, reading more\n", rd); |
165 | #endif | 171 | #endif |
166 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, | 172 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, |
167 | stdout_read_handle, &read_call, | 173 | stdout_read_handle, &read_call, |
168 | (void *) stdout_read_handle); | 174 | (void *) stdout_read_handle); |
169 | return; | 175 | return; |
170 | } | 176 | } |
171 | 177 | ||
172 | #if VERBOSE | 178 | #if VERBOSE |
173 | fprintf (stderr, "bytes is %d:%s\n", bytes, buf); | 179 | fprintf (stderr, "bytes is %d:%s\n", bytes, buf); |
@@ -189,32 +195,64 @@ read_call (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
189 | * | 9 * * * * | 195 | * | 9 * * * * |
190 | */ | 196 | */ |
191 | char *p = buf; | 197 | char *p = buf; |
192 | if (bytes == 20*16 || | 198 | if (bytes == 20 * 16 || |
193 | !(p = read_output_line (0, 3, 4, 9, 'L', "ERROR", -1, 1, phase, p, &bytes, &delay, level)) || | 199 | !(p = |
194 | !(p = read_output_line (0, 3, 4, 9, '1', "ERROR", 200, 400, phase, p, &bytes, &delays[0], level)) || | 200 | read_output_line (0, 3, 4, 9, 'L', "ERROR", -1, 1, phase, p, &bytes, |
195 | !(p = read_output_line (1, 3, 5, 9, 'L', "WARNING", -1, 1, phase, p, &bytes, &delay, level)) || | 201 | &delay, level)) |
196 | !(p = read_output_line (0, 3, 4, 9, '1', "WARNING", 200, 400, phase, p, &bytes, &delays[1], level)) || | 202 | || !(p = |
197 | !(p = read_output_line (2, 3, 6, 7, 'L', "INFO", -1, 1, phase, p, &bytes, &delay, level)) || | 203 | read_output_line (0, 3, 4, 9, '1', "ERROR", 200, 400, phase, p, |
198 | !(p = read_output_line (0, 3, 4, 9, '1', "INFO", 200, 400, phase, p, &bytes, &delays[2], level)) || | 204 | &bytes, &delays[0], level)) |
199 | !(p = read_output_line (3, 3, 7, 7, 'L', "DEBUG", -1, 1, phase, p, &bytes, &delay, level)) || | 205 | || !(p = |
200 | !(p = read_output_line (0, 3, 4, 9, '1', "DEBUG", 200, 400, phase, p, &bytes, &delays[3], level)) || | 206 | read_output_line (1, 3, 5, 9, 'L', "WARNING", -1, 1, phase, p, |
201 | !(p = read_output_line (0, 3, 4, 9, 'L', "ERROR", -1, 1, phase, p, &bytes, &delay, level)) || | 207 | &bytes, &delay, level)) |
202 | !(p = read_output_line (0, 3, 4, 9, '2', "ERROR", 200, 400, phase, p, &bytes, &delays[4], level)) || | 208 | || !(p = |
203 | !(p = read_output_line (0, 3, 5, 9, 'L', "WARNING", -1, 1, phase, p, &bytes, &delay, level)) || | 209 | read_output_line (0, 3, 4, 9, '1', "WARNING", 200, 400, phase, p, |
204 | !(p = read_output_line (0, 3, 4, 9, '2', "WARNING", 200, 400, phase, p, &bytes, &delays[5], level)) || | 210 | &bytes, &delays[1], level)) |
205 | !(p = read_output_line (-1, -1, 6, 7, 'L', "INFO", -1, 1, phase, p, &bytes, &delay, level)) || | 211 | || !(p = |
206 | !(p = read_output_line (0, 3, 4, 9, '2', "INFO", 200, 400, phase, p, &bytes, &delays[6], level)) || | 212 | read_output_line (2, 3, 6, 7, 'L', "INFO", -1, 1, phase, p, &bytes, |
207 | !(p = read_output_line (-1, -1, 7, 7, 'L', "DEBUG", -1, 1, phase, p, &bytes, &delay, level)) || | 213 | &delay, level)) |
208 | !(p = read_output_line (0, 3, 4, 9, '2', "DEBUG", 200, 400, phase, p, &bytes, &delays[7], level))) | 214 | || !(p = |
209 | { | 215 | read_output_line (0, 3, 4, 9, '1', "INFO", 200, 400, phase, p, |
210 | if (bytes == 20*16) | 216 | &bytes, &delays[2], level)) |
211 | fprintf (stderr, "Ran out of buffer space!\n"); | 217 | || !(p = |
212 | GNUNET_break (0); | 218 | read_output_line (3, 3, 7, 7, 'L', "DEBUG", -1, 1, phase, p, |
213 | ok = 2; | 219 | &bytes, &delay, level)) |
214 | GNUNET_SCHEDULER_cancel (die_task); | 220 | || !(p = |
215 | GNUNET_SCHEDULER_add_now (&end_task, NULL); | 221 | read_output_line (0, 3, 4, 9, '1', "DEBUG", 200, 400, phase, p, |
216 | return; | 222 | &bytes, &delays[3], level)) |
217 | } | 223 | || !(p = |
224 | read_output_line (0, 3, 4, 9, 'L', "ERROR", -1, 1, phase, p, | ||
225 | &bytes, &delay, level)) | ||
226 | || !(p = | ||
227 | read_output_line (0, 3, 4, 9, '2', "ERROR", 200, 400, phase, p, | ||
228 | &bytes, &delays[4], level)) | ||
229 | || !(p = | ||
230 | read_output_line (0, 3, 5, 9, 'L', "WARNING", -1, 1, phase, p, | ||
231 | &bytes, &delay, level)) | ||
232 | || !(p = | ||
233 | read_output_line (0, 3, 4, 9, '2', "WARNING", 200, 400, phase, p, | ||
234 | &bytes, &delays[5], level)) | ||
235 | || !(p = | ||
236 | read_output_line (-1, -1, 6, 7, 'L', "INFO", -1, 1, phase, p, | ||
237 | &bytes, &delay, level)) | ||
238 | || !(p = | ||
239 | read_output_line (0, 3, 4, 9, '2', "INFO", 200, 400, phase, p, | ||
240 | &bytes, &delays[6], level)) | ||
241 | || !(p = | ||
242 | read_output_line (-1, -1, 7, 7, 'L', "DEBUG", -1, 1, phase, p, | ||
243 | &bytes, &delay, level)) | ||
244 | || !(p = | ||
245 | read_output_line (0, 3, 4, 9, '2', "DEBUG", 200, 400, phase, p, | ||
246 | &bytes, &delays[7], level))) | ||
247 | { | ||
248 | if (bytes == 20 * 16) | ||
249 | fprintf (stderr, "Ran out of buffer space!\n"); | ||
250 | GNUNET_break (0); | ||
251 | ok = 2; | ||
252 | GNUNET_SCHEDULER_cancel (die_task); | ||
253 | GNUNET_SCHEDULER_add_now (&end_task, NULL); | ||
254 | return; | ||
255 | } | ||
218 | 256 | ||
219 | GNUNET_SCHEDULER_cancel (die_task); | 257 | GNUNET_SCHEDULER_cancel (die_task); |
220 | GNUNET_SCHEDULER_add_now (&end_task, NULL); | 258 | GNUNET_SCHEDULER_add_now (&end_task, NULL); |
@@ -228,52 +266,52 @@ runone () | |||
228 | pipe_stdout = GNUNET_DISK_pipe (GNUNET_YES, GNUNET_NO, GNUNET_YES); | 266 | pipe_stdout = GNUNET_DISK_pipe (GNUNET_YES, GNUNET_NO, GNUNET_YES); |
229 | 267 | ||
230 | if (pipe_stdout == NULL) | 268 | if (pipe_stdout == NULL) |
231 | { | 269 | { |
232 | GNUNET_break (0); | 270 | GNUNET_break (0); |
233 | ok = 2; | 271 | ok = 2; |
234 | return; | 272 | return; |
235 | } | 273 | } |
236 | 274 | ||
237 | putenv ("GNUNET_LOG="); | 275 | putenv ("GNUNET_LOG="); |
238 | putenv ("GNUNET_FORCE_LOG="); | 276 | putenv ("GNUNET_FORCE_LOG="); |
239 | switch (phase) | 277 | switch (phase) |
240 | { | 278 | { |
241 | case 0: | 279 | case 0: |
242 | putenv ("GNUNET_LOG=;;;;ERROR"); | 280 | putenv ("GNUNET_LOG=;;;;ERROR"); |
243 | break; | 281 | break; |
244 | case 1: | 282 | case 1: |
245 | putenv ("GNUNET_LOG=;;;;WARNING"); | 283 | putenv ("GNUNET_LOG=;;;;WARNING"); |
246 | break; | 284 | break; |
247 | case 2: | 285 | case 2: |
248 | putenv ("GNUNET_LOG=;;;;INFO"); | 286 | putenv ("GNUNET_LOG=;;;;INFO"); |
249 | break; | 287 | break; |
250 | case 3: | 288 | case 3: |
251 | putenv ("GNUNET_LOG=;;;;DEBUG"); | 289 | putenv ("GNUNET_LOG=;;;;DEBUG"); |
252 | break; | 290 | break; |
253 | case 4: | 291 | case 4: |
254 | putenv ("GNUNET_FORCE_LOG=;;;;ERROR"); | 292 | putenv ("GNUNET_FORCE_LOG=;;;;ERROR"); |
255 | break; | 293 | break; |
256 | case 5: | 294 | case 5: |
257 | putenv ("GNUNET_FORCE_LOG=;;;;WARNING"); | 295 | putenv ("GNUNET_FORCE_LOG=;;;;WARNING"); |
258 | break; | 296 | break; |
259 | case 6: | 297 | case 6: |
260 | putenv ("GNUNET_FORCE_LOG=;;;;INFO"); | 298 | putenv ("GNUNET_FORCE_LOG=;;;;INFO"); |
261 | break; | 299 | break; |
262 | case 7: | 300 | case 7: |
263 | putenv ("GNUNET_FORCE_LOG=;;;;DEBUG"); | 301 | putenv ("GNUNET_FORCE_LOG=;;;;DEBUG"); |
264 | break; | 302 | break; |
265 | case 8: | 303 | case 8: |
266 | putenv ("GNUNET_LOG=blah;;;;ERROR"); | 304 | putenv ("GNUNET_LOG=blah;;;;ERROR"); |
267 | break; | 305 | break; |
268 | case 9: | 306 | case 9: |
269 | putenv ("GNUNET_FORCE_LOG=blah;;;;ERROR"); | 307 | putenv ("GNUNET_FORCE_LOG=blah;;;;ERROR"); |
270 | break; | 308 | break; |
271 | } | 309 | } |
272 | 310 | ||
273 | proc = | 311 | proc = |
274 | GNUNET_OS_start_process (NULL, pipe_stdout, | 312 | GNUNET_OS_start_process (NULL, pipe_stdout, |
275 | "./test_common_logging_dummy", | 313 | "./test_common_logging_dummy", |
276 | "test_common_logging_dummy", NULL); | 314 | "test_common_logging_dummy", NULL); |
277 | putenv ("GNUNET_FORCE_LOG="); | 315 | putenv ("GNUNET_FORCE_LOG="); |
278 | putenv ("GNUNET_LOG="); | 316 | putenv ("GNUNET_LOG="); |
279 | 317 | ||
@@ -281,20 +319,20 @@ runone () | |||
281 | GNUNET_DISK_pipe_close_end (pipe_stdout, GNUNET_DISK_PIPE_END_WRITE); | 319 | GNUNET_DISK_pipe_close_end (pipe_stdout, GNUNET_DISK_PIPE_END_WRITE); |
282 | 320 | ||
283 | stdout_read_handle = | 321 | stdout_read_handle = |
284 | GNUNET_DISK_pipe_handle (pipe_stdout, GNUNET_DISK_PIPE_END_READ); | 322 | GNUNET_DISK_pipe_handle (pipe_stdout, GNUNET_DISK_PIPE_END_READ); |
285 | 323 | ||
286 | die_task = | 324 | die_task = |
287 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | 325 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply |
288 | (GNUNET_TIME_UNIT_SECONDS, 10), &end_task, | 326 | (GNUNET_TIME_UNIT_SECONDS, 10), &end_task, |
289 | NULL); | 327 | NULL); |
290 | 328 | ||
291 | bytes = 0; | 329 | bytes = 0; |
292 | buf_ptr = buf; | 330 | buf_ptr = buf; |
293 | memset (&buf, 0, sizeof (buf)); | 331 | memset (&buf, 0, sizeof (buf)); |
294 | 332 | ||
295 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, | 333 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, |
296 | stdout_read_handle, &read_call, | 334 | stdout_read_handle, &read_call, |
297 | (void *) stdout_read_handle); | 335 | (void *) stdout_read_handle); |
298 | } | 336 | } |
299 | 337 | ||
300 | static void | 338 | static void |
@@ -324,11 +362,11 @@ main (int argc, char *argv[]) | |||
324 | 362 | ||
325 | GNUNET_log_setup ("test-common-logging-runtime-loglevels", | 363 | GNUNET_log_setup ("test-common-logging-runtime-loglevels", |
326 | #if VERBOSE | 364 | #if VERBOSE |
327 | "DEBUG", | 365 | "DEBUG", |
328 | #else | 366 | #else |
329 | "WARNING", | 367 | "WARNING", |
330 | #endif | 368 | #endif |
331 | NULL); | 369 | NULL); |
332 | ret = check (); | 370 | ret = check (); |
333 | 371 | ||
334 | return ret; | 372 | return ret; |