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