add dns lookup test

This commit is contained in:
Benjamin Sergeant 2019-01-05 14:40:17 -08:00
parent e892b21872
commit 80a877ddab
3 changed files with 66 additions and 8 deletions

View File

@ -18,15 +18,25 @@ include_directories(
${PROJECT_SOURCE_DIR}/Catch2/single_include
)
add_executable(ixwebsocket_unittest
# Shared sources
set (SOURCES
test_runner.cpp
cmd_websocket_chat.cpp
IXWebSocketServerTest.cpp
IXSocketTest.cpp
IXDNSLookupTest.cpp
IXTest.cpp
msgpack11.cpp
)
# Some unittest don't work on windows yet
if (NOT WIN32)
list(APPEND SOURCES
IXWebSocketServerTest.cpp
cmd_websocket_chat.cpp
IXSocketTest.cpp
)
endif()
add_executable(ixwebsocket_unittest ${SOURCES})
if (APPLE AND USE_TLS)
target_link_libraries(ixwebsocket_unittest "-framework foundation" "-framework security")
endif()

50
test/IXDNSLookupTest.cpp Normal file
View File

@ -0,0 +1,50 @@
/*
* 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);
}
}

View File

@ -57,7 +57,5 @@ shutil.copy(os.path.join(
'bin',
'zlib.dll'), '.')
# unittest broken on Windows
if osName != 'Windows':
testCommand = '{} {}'.format(testBinary, os.getenv('TEST', ''))
os.system(testCommand)
testCommand = '{} {}'.format(testBinary, os.getenv('TEST', ''))
os.system(testCommand)