diff options
Diffstat (limited to 'src/util/test_os_start_process.c')
-rw-r--r-- | src/util/test_os_start_process.c | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/src/util/test_os_start_process.c b/src/util/test_os_start_process.c index c617917cc..929b24232 100644 --- a/src/util/test_os_start_process.c +++ b/src/util/test_os_start_process.c | |||
@@ -55,7 +55,9 @@ struct read_context | |||
55 | const struct GNUNET_DISK_FileHandle *stdout_read_handle; | 55 | const struct GNUNET_DISK_FileHandle *stdout_read_handle; |
56 | }; | 56 | }; |
57 | 57 | ||
58 | struct read_context rc; | 58 | |
59 | static struct read_context rc; | ||
60 | |||
59 | 61 | ||
60 | static void | 62 | static void |
61 | end_task (void *cls) | 63 | end_task (void *cls) |
@@ -77,35 +79,39 @@ read_call (void *cls) | |||
77 | { | 79 | { |
78 | int bytes; | 80 | int bytes; |
79 | 81 | ||
80 | bytes = GNUNET_DISK_file_read (rc.stdout_read_handle, &rc.buf[rc.buf_offset], \ | 82 | bytes = GNUNET_DISK_file_read (rc.stdout_read_handle, |
81 | sizeof (rc.buf) - rc.buf_offset); | 83 | &rc.buf[rc.buf_offset], |
82 | 84 | sizeof (rc.buf) - rc.buf_offset); | |
83 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "bytes is %d\n", bytes); | 85 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
86 | "bytes is %d\n", | ||
87 | bytes); | ||
84 | 88 | ||
85 | if (bytes < 1) | 89 | if (bytes < 1) |
86 | { | 90 | { |
87 | GNUNET_break (0); | 91 | GNUNET_break (0); |
88 | ok = 1; | 92 | ok = 1; |
89 | GNUNET_SCHEDULER_cancel (die_task); | 93 | GNUNET_SCHEDULER_cancel (die_task); |
90 | GNUNET_SCHEDULER_add_now (&end_task, NULL); | 94 | (void) GNUNET_SCHEDULER_add_now (&end_task, NULL); |
91 | return; | 95 | return; |
92 | } | 96 | } |
93 | 97 | ||
94 | ok = strncmp (rc.buf, test_phrase, strlen (test_phrase)); | 98 | ok = strncmp (rc.buf, test_phrase, strlen (test_phrase)); |
95 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "read %s\n", &rc.buf[rc.buf_offset]); | 99 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
100 | "read %s\n", | ||
101 | &rc.buf[rc.buf_offset]); | ||
96 | rc.buf_offset += bytes; | 102 | rc.buf_offset += bytes; |
97 | 103 | ||
98 | if (0 == ok) | 104 | if (0 == ok) |
99 | { | 105 | { |
100 | GNUNET_SCHEDULER_cancel (die_task); | 106 | GNUNET_SCHEDULER_cancel (die_task); |
101 | GNUNET_SCHEDULER_add_now (&end_task, NULL); | 107 | (void) GNUNET_SCHEDULER_add_now (&end_task, NULL); |
102 | return; | 108 | return; |
103 | } | 109 | } |
104 | 110 | ||
105 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, | 111 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, |
106 | rc.stdout_read_handle, &read_call, | 112 | rc.stdout_read_handle, |
113 | &read_call, | ||
107 | NULL); | 114 | NULL); |
108 | |||
109 | } | 115 | } |
110 | 116 | ||
111 | 117 | ||
@@ -164,13 +170,15 @@ run_task (void *cls) | |||
164 | 170 | ||
165 | die_task = | 171 | die_task = |
166 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | 172 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply |
167 | (GNUNET_TIME_UNIT_MINUTES, 1), &end_task, | 173 | (GNUNET_TIME_UNIT_MINUTES, 1), |
174 | &end_task, | ||
168 | NULL); | 175 | NULL); |
169 | 176 | ||
170 | memset (&rc, 0, sizeof (rc)); | 177 | memset (&rc, 0, sizeof (rc)); |
171 | rc.stdout_read_handle = stdout_read_handle; | 178 | rc.stdout_read_handle = stdout_read_handle; |
172 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, | 179 | GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, |
173 | stdout_read_handle, &read_call, | 180 | stdout_read_handle, |
181 | &read_call, | ||
174 | NULL); | 182 | NULL); |
175 | } | 183 | } |
176 | 184 | ||
@@ -205,9 +213,12 @@ check_kill () | |||
205 | fn = GNUNET_OS_get_libexec_binary_path ("gnunet-service-resolver"); | 213 | fn = GNUNET_OS_get_libexec_binary_path ("gnunet-service-resolver"); |
206 | proc = | 214 | proc = |
207 | GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_ERR, | 215 | GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_ERR, |
208 | hello_pipe_stdin, hello_pipe_stdout, NULL, | 216 | hello_pipe_stdin, |
217 | hello_pipe_stdout, | ||
218 | NULL, | ||
209 | fn, | 219 | fn, |
210 | "gnunet-service-resolver", "-", NULL); | 220 | "gnunet-service-resolver", "-", |
221 | NULL); | ||
211 | sleep (1); /* give process time to start, so we actually use the pipe-kill mechanism! */ | 222 | sleep (1); /* give process time to start, so we actually use the pipe-kill mechanism! */ |
212 | GNUNET_free (fn); | 223 | GNUNET_free (fn); |
213 | if (0 != GNUNET_OS_process_kill (proc, GNUNET_TERM_SIG)) | 224 | if (0 != GNUNET_OS_process_kill (proc, GNUNET_TERM_SIG)) |