正在显示
1 个修改的文件
包含
56 行增加
和
0 行删除
@@ -147,6 +147,8 @@ void* io_client(void* arg) | @@ -147,6 +147,8 @@ void* io_client(void* arg) | ||
147 | return NULL; | 147 | return NULL; |
148 | } | 148 | } |
149 | 149 | ||
150 | + st_netfd_close(stfd); | ||
151 | + | ||
150 | return NULL; | 152 | return NULL; |
151 | } | 153 | } |
152 | 154 | ||
@@ -211,10 +213,59 @@ int io_test() | @@ -211,10 +213,59 @@ int io_test() | ||
211 | } | 213 | } |
212 | srs_trace("9. server io completed."); | 214 | srs_trace("9. server io completed."); |
213 | 215 | ||
216 | + st_netfd_close(stfd); | ||
217 | + st_netfd_close(client_stfd); | ||
218 | + | ||
214 | srs_trace("io test: end"); | 219 | srs_trace("io test: end"); |
215 | return 0; | 220 | return 0; |
216 | } | 221 | } |
217 | 222 | ||
223 | +int pipe_test() | ||
224 | +{ | ||
225 | + srs_trace("==================================================="); | ||
226 | + srs_trace("pipe test: start"); | ||
227 | + | ||
228 | + int fds[2]; | ||
229 | + if (pipe(fds) < 0) { | ||
230 | + srs_trace("pipe failed"); | ||
231 | + return -1; | ||
232 | + } | ||
233 | + srs_trace("1. pipe ok, %d=>%d", fds[1], fds[0]); | ||
234 | + | ||
235 | + st_netfd_t fdw; | ||
236 | + if ((fdw = st_netfd_open_socket(fds[1])) == NULL) { | ||
237 | + srs_trace("st_netfd_open_socket open socket failed."); | ||
238 | + return -1; | ||
239 | + } | ||
240 | + srs_trace("2. open write fd ok"); | ||
241 | + | ||
242 | + st_netfd_t fdr; | ||
243 | + if ((fdr = st_netfd_open_socket(fds[0])) == NULL) { | ||
244 | + srs_trace("st_netfd_open_socket open socket failed."); | ||
245 | + return -1; | ||
246 | + } | ||
247 | + srs_trace("3. open read fd ok"); | ||
248 | + | ||
249 | + char buf[1024]; | ||
250 | + if (st_write(fdw, buf, sizeof(buf), ST_UTIME_NO_TIMEOUT) < 0) { | ||
251 | + srs_trace("st_write socket failed."); | ||
252 | + return -1; | ||
253 | + } | ||
254 | + srs_trace("4. write to pipe ok"); | ||
255 | + | ||
256 | + if (st_read(fdr, buf, sizeof(buf), ST_UTIME_NO_TIMEOUT) < 0) { | ||
257 | + srs_trace("st_read socket failed."); | ||
258 | + return -1; | ||
259 | + } | ||
260 | + srs_trace("5. read from pipe ok"); | ||
261 | + | ||
262 | + st_netfd_close(fdw); | ||
263 | + st_netfd_close(fdr); | ||
264 | + | ||
265 | + srs_trace("pipe test: end"); | ||
266 | + return 0; | ||
267 | +} | ||
268 | + | ||
218 | int main(int argc, char** argv) | 269 | int main(int argc, char** argv) |
219 | { | 270 | { |
220 | if (st_set_eventsys(ST_EVENTSYS_ALT) < 0) { | 271 | if (st_set_eventsys(ST_EVENTSYS_ALT) < 0) { |
@@ -237,6 +288,11 @@ int main(int argc, char** argv) | @@ -237,6 +288,11 @@ int main(int argc, char** argv) | ||
237 | return -1; | 288 | return -1; |
238 | } | 289 | } |
239 | 290 | ||
291 | + if (pipe_test() < 0) { | ||
292 | + srs_trace("pipe_test failed"); | ||
293 | + return -1; | ||
294 | + } | ||
295 | + | ||
240 | // cleanup. | 296 | // cleanup. |
241 | st_thread_exit(NULL); | 297 | st_thread_exit(NULL); |
242 | 298 |
-
请 注册 或 登录 后发表评论