AsyncNameResolverTest.cc 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. for(node = root; node;) {
  34. ares_addr_node* nextNode = node->next;
  35. delete node;
  36. node = nextNode;
  37. }
  38. #endif // HAVE_ARES_ADDR_NODE
  39. }
  40. } // namespace aria2