ares-test-ai.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef ARES_TEST_AI_H
  2. #define ARES_TEST_AI_H
  3. #include <utility>
  4. #include "gtest/gtest.h"
  5. #include "gmock/gmock.h"
  6. #include "ares-test.h"
  7. namespace ares {
  8. namespace test {
  9. class MockChannelTestAI
  10. : public MockChannelOptsTest,
  11. public ::testing::WithParamInterface< std::pair<int, bool> > {
  12. public:
  13. MockChannelTestAI() : MockChannelOptsTest(1, GetParam().first, GetParam().second, nullptr, 0) {}
  14. };
  15. class MockUDPChannelTestAI
  16. : public MockChannelOptsTest,
  17. public ::testing::WithParamInterface<int> {
  18. public:
  19. MockUDPChannelTestAI() : MockChannelOptsTest(1, GetParam(), false, nullptr, 0) {}
  20. };
  21. class MockTCPChannelTestAI
  22. : public MockChannelOptsTest,
  23. public ::testing::WithParamInterface<int> {
  24. public:
  25. MockTCPChannelTestAI() : MockChannelOptsTest(1, GetParam(), true, nullptr, 0) {}
  26. };
  27. // Test fixture that uses a default channel.
  28. class DefaultChannelTestAI : public LibraryTest {
  29. public:
  30. DefaultChannelTestAI() : channel_(nullptr) {
  31. EXPECT_EQ(ARES_SUCCESS, ares_init(&channel_));
  32. EXPECT_NE(nullptr, channel_);
  33. }
  34. ~DefaultChannelTestAI() {
  35. ares_destroy(channel_);
  36. channel_ = nullptr;
  37. }
  38. // Process all pending work on ares-owned file descriptors.
  39. void Process();
  40. protected:
  41. ares_channel channel_;
  42. };
  43. }
  44. }
  45. #endif