|
23 | 23 |
|
24 | 24 | #include <errno.h> |
25 | 25 | #include <cstring> |
| 26 | +#include <tbox/base/log_output.h> |
26 | 27 |
|
27 | 28 | #include "loop.h" |
28 | 29 | #include "fd_event.h" |
@@ -348,57 +349,64 @@ TEST(FdEvent, Reinitialize) |
348 | 349 | /// Test exception events |
349 | 350 | TEST(FdEvent, Exception) |
350 | 351 | { |
351 | | - int read_fd, write_fd; |
352 | | - bool ok = tbox::event::CreateFdPair(read_fd, write_fd); |
353 | | - ASSERT_TRUE(ok); |
| 352 | + LogOutput_Enable(); |
354 | 353 |
|
355 | | - auto loop = Loop::New(); |
356 | | - auto read_fd_event = loop->newFdEvent(); |
357 | | - auto write_fd_event = loop->newFdEvent(); |
| 354 | + auto engines = Loop::Engines(); |
| 355 | + for (auto e : engines) { |
| 356 | + cout << "engine: " << e << endl; |
358 | 357 |
|
359 | | - ASSERT_TRUE(read_fd_event != nullptr); |
360 | | - ASSERT_TRUE(write_fd_event != nullptr); |
| 358 | + int read_fd, write_fd; |
| 359 | + bool ok = tbox::event::CreateFdPair(read_fd, write_fd); |
| 360 | + ASSERT_TRUE(ok); |
361 | 361 |
|
362 | | - int run_time = 0; |
| 362 | + auto loop = Loop::New(e); |
| 363 | + auto read_fd_event = loop->newFdEvent(); |
| 364 | + auto write_fd_event = loop->newFdEvent(); |
363 | 365 |
|
364 | | - EXPECT_TRUE(read_fd_event->initialize(read_fd, FdEvent::kReadEvent | FdEvent::kHupEvent, Event::Mode::kPersist)); |
365 | | - read_fd_event->setCallback([&](short events){ |
366 | | - if (events & FdEvent::kReadEvent) { |
367 | | - char data[100] = { 0}; |
368 | | - ssize_t len = read(read_fd, data, sizeof(data)); |
369 | | - EXPECT_EQ(len, sizeof(int)); |
370 | | - } |
| 366 | + ASSERT_TRUE(read_fd_event != nullptr); |
| 367 | + ASSERT_TRUE(write_fd_event != nullptr); |
371 | 368 |
|
372 | | - if (events & FdEvent::kHupEvent) { |
373 | | - ++run_time; |
374 | | - loop->exitLoop(); |
375 | | - } |
376 | | - }); |
| 369 | + int run_time = 0; |
377 | 370 |
|
378 | | - read_fd_event->enable(); |
| 371 | + EXPECT_TRUE(read_fd_event->initialize(read_fd, FdEvent::kReadEvent | FdEvent::kHupEvent, Event::Mode::kPersist)); |
| 372 | + read_fd_event->setCallback([&](short events){ |
| 373 | + if (events & FdEvent::kReadEvent) { |
| 374 | + char data[100] = { 0}; |
| 375 | + ssize_t len = read(read_fd, data, sizeof(data)); |
| 376 | + EXPECT_EQ(len, sizeof(int)); |
| 377 | + } |
379 | 378 |
|
380 | | - EXPECT_TRUE(write_fd_event->initialize(write_fd, FdEvent::kWriteEvent, Event::Mode::kPersist)); |
381 | | - write_fd_event->setCallback([&](short events){ |
382 | | - if (events & FdEvent::kWriteEvent) { |
383 | | - int data = 0; |
384 | | - ssize_t ret = write(write_fd, &data, sizeof(data)); |
385 | | - EXPECT_EQ(ret, sizeof(data)); |
386 | | - close(write_fd); |
387 | | - } |
388 | | - }); |
| 379 | + if (events & FdEvent::kHupEvent) { |
| 380 | + ++run_time; |
| 381 | + loop->exitLoop(); |
| 382 | + } |
| 383 | + }); |
| 384 | + |
| 385 | + read_fd_event->enable(); |
| 386 | + |
| 387 | + EXPECT_TRUE(write_fd_event->initialize(write_fd, FdEvent::kWriteEvent, Event::Mode::kPersist)); |
| 388 | + write_fd_event->setCallback([&](short events){ |
| 389 | + if (events & FdEvent::kWriteEvent) { |
| 390 | + int data = 0; |
| 391 | + ssize_t ret = write(write_fd, &data, sizeof(data)); |
| 392 | + EXPECT_EQ(ret, sizeof(data)); |
| 393 | + close(write_fd); |
| 394 | + } |
| 395 | + }); |
389 | 396 |
|
390 | | - write_fd_event->enable(); |
| 397 | + write_fd_event->enable(); |
391 | 398 |
|
392 | | - loop->runLoop(); |
| 399 | + loop->runLoop(); |
393 | 400 |
|
394 | | - EXPECT_EQ(run_time, 1); |
| 401 | + EXPECT_EQ(run_time, 1); |
395 | 402 |
|
396 | | - read_fd_event->disable(); |
397 | | - write_fd_event->disable(); |
| 403 | + read_fd_event->disable(); |
| 404 | + write_fd_event->disable(); |
398 | 405 |
|
399 | | - delete read_fd_event; |
400 | | - delete write_fd_event; |
401 | | - delete loop; |
| 406 | + delete read_fd_event; |
| 407 | + delete write_fd_event; |
| 408 | + delete loop; |
| 409 | + } |
402 | 410 | } |
403 | 411 |
|
404 | 412 | } |
|
0 commit comments