aboutsummaryrefslogtreecommitdiff
path: root/src/util/test_os_start_process.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/test_os_start_process.c')
-rw-r--r--src/util/test_os_start_process.c39
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
58struct read_context rc; 58
59static struct read_context rc;
60
59 61
60static void 62static void
61end_task (void *cls) 63end_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))