51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
|
/*
|
||
|
* IXDNSLookupTest.cpp
|
||
|
* Author: Benjamin Sergeant
|
||
|
* Copyright (c) 2018 Machine Zone. All rights reserved.
|
||
|
*/
|
||
|
|
||
|
#include "catch.hpp"
|
||
|
|
||
|
#include "IXTest.h"
|
||
|
#include <ixwebsocket/IXDNSLookup.h>
|
||
|
#include <iostream>
|
||
|
|
||
|
using namespace ix;
|
||
|
|
||
|
|
||
|
TEST_CASE("dns", "[net]")
|
||
|
{
|
||
|
SECTION("Test resolving a known hostname")
|
||
|
{
|
||
|
DNSLookup dnsLookup("www.google.com", 80);
|
||
|
|
||
|
std::string errMsg;
|
||
|
struct addrinfo* res;
|
||
|
|
||
|
res = dnsLookup.resolve(errMsg, [] { return false; });
|
||
|
std::cerr << "Error message: " << errMsg << std::endl;
|
||
|
REQUIRE(res != nullptr);
|
||
|
}
|
||
|
|
||
|
SECTION("Test resolving a non-existing hostname")
|
||
|
{
|
||
|
DNSLookup dnsLookup("wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", 80);
|
||
|
|
||
|
std::string errMsg;
|
||
|
struct addrinfo* res = dnsLookup.resolve(errMsg, [] { return false; });
|
||
|
std::cerr << "Error message: " << errMsg << std::endl;
|
||
|
REQUIRE(res == nullptr);
|
||
|
}
|
||
|
|
||
|
SECTION("Test resolving a good hostname, with cancellation")
|
||
|
{
|
||
|
DNSLookup dnsLookup("www.google.com", 80, 1);
|
||
|
|
||
|
std::string errMsg;
|
||
|
// The callback returning true means we are requesting cancellation
|
||
|
struct addrinfo* res = dnsLookup.resolve(errMsg, [] { return true; });
|
||
|
std::cerr << "Error message: " << errMsg << std::endl;
|
||
|
REQUIRE(res == nullptr);
|
||
|
}
|
||
|
}
|