add dns lookup test
This commit is contained in:
		| @@ -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
									
								
							
							
						
						
									
										50
									
								
								test/IXDNSLookupTest.cpp
									
									
									
									
									
										Normal 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); | ||||
|     } | ||||
| } | ||||
| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user