summaryrefslogtreecommitdiff
path: root/tests/dns.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/dns.cpp')
-rw-r--r--tests/dns.cpp91
1 files changed, 0 insertions, 91 deletions
diff --git a/tests/dns.cpp b/tests/dns.cpp
deleted file mode 100644
index c3eda7b..0000000
--- a/tests/dns.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "catch.hpp"
-
-#include <network/dns_handler.hpp>
-#include <network/resolver.hpp>
-#include <network/poller.hpp>
-
-#include <utils/timed_events.hpp>
-
-TEST_CASE("DNS resolver")
-{
- Resolver resolver;
- Resolver resolver2;
- Resolver resolver3;
-
- /**
- * If we are using cares, we need to run a poller loop until each
- * resolution is finished. Without cares we get the result before
- * resolve() returns because it’s blocking.
- */
-#ifdef CARES_FOUND
- auto p = std::make_shared<Poller>();
-
- const auto loop = [&p]()
- {
- do
- {
- DNSHandler::instance.watch_dns_sockets(p);
- }
- while (p->poll(utils::no_timeout) != -1);
- };
-#else
- // We don’t need to do anything if we are not using cares.
- const auto loop = [](){};
-#endif
-
- std::string hostname;
- std::string port = "6667";
-
- bool success = true;
-
- const auto error_cb = [&success](const std::string& hostname)
- {
- return [&success, hostname](const char *msg)
- {
- INFO("Failed to resolve " << hostname << ":" << msg);
- success = false;
- };
- };
- const auto success_cb = [&success](const std::string& hostname)
- {
- return [&success, hostname](const struct addrinfo *addr)
- {
- INFO("Successfully resolved " << hostname << ": " << addr_to_string(addr));
- success = true;
- };
- };
-
- hostname = "example.com";
- resolver.resolve(hostname, port,
- success_cb(hostname), error_cb(hostname));
- hostname = "poez.io";
- resolver2.resolve(hostname, port,
- success_cb(hostname), error_cb(hostname));
- hostname = "louiz.org";
- resolver3.resolve(hostname, port,
- success_cb(hostname), error_cb(hostname));
- loop();
- CHECK(success);
-
- hostname = "this.should.fail.because.it.is..misformatted";
- resolver.resolve(hostname, port,
- success_cb(hostname), error_cb(hostname));
- loop();
- CHECK(!success);
-
- hostname = "this.should.fail.because.it.is.does.not.exist.invalid";
- resolver.resolve(hostname, port,
- success_cb(hostname), error_cb(hostname));
- loop();
- CHECK(!success);
-
- hostname = "localhost";
- resolver.resolve(hostname, port,
- success_cb(hostname), error_cb(hostname));
- loop();
- CHECK(success);
-
-#ifdef CARES_FOUND
- DNSHandler::instance.destroy();
-#endif
-}