|
|
|
@ -633,52 +633,11 @@ class MockMultiServerChannelTestAI |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class RotateMultiMockTestAI : public MockMultiServerChannelTestAI { |
|
|
|
|
public: |
|
|
|
|
RotateMultiMockTestAI() : MockMultiServerChannelTestAI(true) {} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class NoRotateMultiMockTestAI : public MockMultiServerChannelTestAI { |
|
|
|
|
public: |
|
|
|
|
NoRotateMultiMockTestAI() : MockMultiServerChannelTestAI(false) {} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST_P(RotateMultiMockTestAI, ThirdServer) { |
|
|
|
|
struct ares_options opts = {0}; |
|
|
|
|
int optmask = 0; |
|
|
|
|
EXPECT_EQ(ARES_SUCCESS, ares_save_options(channel_, &opts, &optmask)); |
|
|
|
|
EXPECT_EQ(0, (optmask & ARES_OPT_NOROTATE)); |
|
|
|
|
ares_destroy_options(&opts); |
|
|
|
|
|
|
|
|
|
DNSPacket servfailrsp; |
|
|
|
|
servfailrsp.set_response().set_aa().set_rcode(SERVFAIL) |
|
|
|
|
.add_question(new DNSQuestion("www.example.com", T_A)); |
|
|
|
|
DNSPacket notimplrsp; |
|
|
|
|
notimplrsp.set_response().set_aa().set_rcode(NOTIMP) |
|
|
|
|
.add_question(new DNSQuestion("www.example.com", T_A)); |
|
|
|
|
DNSPacket okrsp; |
|
|
|
|
okrsp.set_response().set_aa() |
|
|
|
|
.add_question(new DNSQuestion("www.example.com", T_A)) |
|
|
|
|
.add_answer(new DNSARR("www.example.com", 100, {2,3,4,5})); |
|
|
|
|
|
|
|
|
|
ON_CALL(*servers_[0], OnRequest("www.example.com", T_A)) |
|
|
|
|
.WillByDefault(SetReply(servers_[0].get(), ¬implrsp)); |
|
|
|
|
ON_CALL(*servers_[1], OnRequest("www.example.com", T_A)) |
|
|
|
|
.WillByDefault(SetReply(servers_[1].get(), &okrsp)); |
|
|
|
|
ON_CALL(*servers_[2], OnRequest("www.example.com", T_A)) |
|
|
|
|
.WillByDefault(SetReply(servers_[2].get(), &okrsp)); |
|
|
|
|
CheckExample(); |
|
|
|
|
|
|
|
|
|
ON_CALL(*servers_[0], OnRequest("www.example.com", T_A)) |
|
|
|
|
.WillByDefault(SetReply(servers_[0].get(), &servfailrsp)); |
|
|
|
|
ON_CALL(*servers_[1], OnRequest("www.example.com", T_A)) |
|
|
|
|
.WillByDefault(SetReply(servers_[1].get(), &okrsp)); |
|
|
|
|
ON_CALL(*servers_[2], OnRequest("www.example.com", T_A)) |
|
|
|
|
.WillByDefault(SetReply(servers_[2].get(), &okrsp)); |
|
|
|
|
CheckExample(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST_P(NoRotateMultiMockTestAI, ThirdServer) { |
|
|
|
|
struct ares_options opts = {0}; |
|
|
|
|
int optmask = 0; |
|
|
|
@ -770,9 +729,6 @@ INSTANTIATE_TEST_SUITE_P(AddressFamiliesAI, MockNoCheckRespChannelTestAI, |
|
|
|
|
INSTANTIATE_TEST_SUITE_P(AddressFamiliesAI, MockEDNSChannelTestAI, |
|
|
|
|
::testing::ValuesIn(ares::test::families_modes)); |
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_SUITE_P(TransportModesAI, RotateMultiMockTestAI, |
|
|
|
|
::testing::ValuesIn(ares::test::families_modes)); |
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_SUITE_P(TransportModesAI, NoRotateMultiMockTestAI, |
|
|
|
|
::testing::ValuesIn(ares::test::families_modes)); |
|
|
|
|
|
|
|
|
|