AsyncNameResolverTest.cc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "AsyncNameResolver.h"
  2. #include <cstring>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. #include "SocketCore.h"
  5. namespace aria2 {
  6. class AsyncNameResolverTest:public CppUnit::TestFixture {
  7. CPPUNIT_TEST_SUITE(AsyncNameResolverTest);
  8. CPPUNIT_TEST(testParseAsyncDNSServers);
  9. CPPUNIT_TEST_SUITE_END();
  10. public:
  11. void setUp() {}
  12. void tearDown() {}
  13. void testParseAsyncDNSServers();
  14. };
  15. CPPUNIT_TEST_SUITE_REGISTRATION(AsyncNameResolverTest);
  16. void AsyncNameResolverTest::testParseAsyncDNSServers()
  17. {
  18. #ifdef HAVE_ARES_ADDR_NODE
  19. in_addr ans4;
  20. CPPUNIT_ASSERT_EQUAL((size_t)4, net::getBinAddr(&ans4, "192.168.0.1"));
  21. in6_addr ans6;
  22. CPPUNIT_ASSERT_EQUAL((size_t)16, net::getBinAddr(&ans6, "2001:db8::2:1"));
  23. ares_addr_node* root;
  24. root = parseAsyncDNSServers("192.168.0.1,2001:db8::2:1");
  25. ares_addr_node* node = root;
  26. CPPUNIT_ASSERT(node);
  27. CPPUNIT_ASSERT_EQUAL(AF_INET, node->family);
  28. CPPUNIT_ASSERT(memcmp(&ans4, &node->addr, sizeof(ans4)) == 0);
  29. node = node->next;
  30. CPPUNIT_ASSERT(node);
  31. CPPUNIT_ASSERT_EQUAL(AF_INET6, node->family);
  32. CPPUNIT_ASSERT(memcmp(&ans6, &node->addr, sizeof(ans6)) == 0);
  33. #endif // HAVE_ARES_ADDR_NODE
  34. }
  35. } // namespace aria2