test: add test case for cache and fix some issue

This commit is contained in:
Nick Peng
2023-03-20 23:41:34 +08:00
parent aa6f6fd519
commit bf68385d0e
11 changed files with 405 additions and 47 deletions

View File

@@ -29,6 +29,10 @@ TEST(DiscardBlockIP, first_ping)
smartdns::Server server;
server_upstream1.Start("udp://0.0.0.0:61053", [](struct smartdns::ServerRequestContext *request) {
if (request->qtype != DNS_T_A) {
return smartdns::SERVER_REQUEST_SOA;
}
unsigned char addr[4] = {0, 0, 0, 0};
dns_add_A(request->response_packet, DNS_RRS_AN, request->domain.c_str(), 611, addr);
request->response_packet->head.rcode = DNS_RC_NOERROR;
@@ -36,6 +40,9 @@ TEST(DiscardBlockIP, first_ping)
});
server_upstream2.Start("udp://0.0.0.0:62053", [](struct smartdns::ServerRequestContext *request) {
if (request->qtype != DNS_T_A) {
return smartdns::SERVER_REQUEST_SOA;
}
unsigned char addr[4] = {1, 2, 3, 4};
usleep(20000);
dns_add_A(request->response_packet, DNS_RRS_AN, request->domain.c_str(), 611, addr);
@@ -55,7 +62,8 @@ cache-persist no)""");
std::cout << client.GetResult() << std::endl;
ASSERT_EQ(client.GetAnswerNum(), 1);
EXPECT_EQ(client.GetStatus(), "NOERROR");
EXPECT_EQ(client.GetAnswer()[0].GetTTL(), 600);
EXPECT_LT(client.GetQueryTime(), 100);
EXPECT_EQ(client.GetAnswer()[0].GetTTL(), 3);
EXPECT_EQ(client.GetAnswer()[0].GetData(), "1.2.3.4");
}