| 70 | } |
| 71 | |
| 72 | TEST(NamingServiceTest, sanity) { |
| 73 | std::vector<brpc::ServerNode> servers; |
| 74 | |
| 75 | #ifdef BAIDU_INTERNAL |
| 76 | brpc::policy::BaiduNamingService bns; |
| 77 | ASSERT_EQ(0, bns.GetServers("qa-pbrpc.SAT.tjyx", &servers)); |
| 78 | #endif |
| 79 | |
| 80 | auto collect_ips = [&servers]() { |
| 81 | std::set<butil::ip_t> ret; |
| 82 | for (auto& server : servers) { |
| 83 | ret.insert(server.addr.ip); |
| 84 | } |
| 85 | return ret; |
| 86 | }; |
| 87 | brpc::policy::DomainNamingService dns; |
| 88 | ASSERT_EQ(0, dns.GetServers("baidu.com:1234", &servers)); |
| 89 | size_t server_size = servers.size(); |
| 90 | ASSERT_GE(server_size, 1); |
| 91 | for (size_t i = 0; i < servers.size(); ++i) { |
| 92 | ASSERT_EQ(1234, servers[i].addr.port); |
| 93 | } |
| 94 | const auto expected_ips = collect_ips(); |
| 95 | |
| 96 | ASSERT_EQ(0, dns.GetServers("baidu.com", &servers)); |
| 97 | ASSERT_EQ(server_size, servers.size()); |
| 98 | ASSERT_TRUE(IsIPListEqual(expected_ips, collect_ips())); |
| 99 | for (size_t i = 0; i < servers.size(); ++i) { |
| 100 | ASSERT_EQ(80, servers[i].addr.port); |
| 101 | } |
| 102 | |
| 103 | ASSERT_EQ(0, dns.GetServers("baidu.com:1234/useless1/useless2", &servers)); |
| 104 | ASSERT_EQ(server_size, servers.size()); |
| 105 | ASSERT_TRUE(IsIPListEqual(expected_ips, collect_ips())); |
| 106 | for (size_t i = 0; i < servers.size(); ++i) { |
| 107 | ASSERT_EQ(1234, servers[i].addr.port); |
| 108 | } |
| 109 | |
| 110 | ASSERT_EQ(0, dns.GetServers("baidu.com/useless1/useless2", &servers)); |
| 111 | ASSERT_EQ(server_size, servers.size()); |
| 112 | ASSERT_TRUE(IsIPListEqual(expected_ips, collect_ips())); |
| 113 | for (size_t i = 0; i < servers.size(); ++i) { |
| 114 | ASSERT_EQ(80, servers[i].addr.port); |
| 115 | } |
| 116 | |
| 117 | const char *address_list[] = { |
| 118 | "10.127.0.1:1234", |
| 119 | "10.128.0.1:1234", |
| 120 | "10.129.0.1:1234", |
| 121 | "localhost:1234", |
| 122 | "baidu.com:1234" |
| 123 | }; |
| 124 | butil::TempFile tmp_file; |
| 125 | { |
| 126 | FILE* fp = fopen(tmp_file.fname(), "w"); |
| 127 | for (size_t i = 0; i < ARRAY_SIZE(address_list); ++i) { |
| 128 | ASSERT_TRUE(fprintf(fp, "%s\n", address_list[i])); |
| 129 | } |
nothing calls this directly
no test coverage detected