diff options
-rw-r--r-- | src/OSSupport/NetworkInterfaceEnum.cpp | 28 | ||||
-rw-r--r-- | tests/Network/CMakeLists.txt | 22 | ||||
-rw-r--r-- | tests/Network/EnumInterfaces.cpp | 37 |
3 files changed, 59 insertions, 28 deletions
diff --git a/src/OSSupport/NetworkInterfaceEnum.cpp b/src/OSSupport/NetworkInterfaceEnum.cpp index d74565e07..c7339c408 100644 --- a/src/OSSupport/NetworkInterfaceEnum.cpp +++ b/src/OSSupport/NetworkInterfaceEnum.cpp @@ -22,34 +22,6 @@ -#ifdef SELF_TEST - -static class cEnumIPAddressTest -{ -public: - cEnumIPAddressTest(void) - { - cSelfTests::Get().Register(std::function<void(void)>(&Test), "Network IP enumeration"); - } - - static void Test(void) - { - LOG("Enumerating all IP addresses..."); - auto IPs = cNetwork::EnumLocalIPAddresses(); - for (auto & ip: IPs) - { - LOG(" %s", ip.c_str()); - } - LOG("Done."); - } -} g_EnumIPAddressTest; - -#endif // SELF_TEST - - - - - #ifdef _WIN32 /** Converts the SOCKET_ADDRESS structure received from the OS into an IP address string. */ diff --git a/tests/Network/CMakeLists.txt b/tests/Network/CMakeLists.txt index f93ccad8e..e47b01e11 100644 --- a/tests/Network/CMakeLists.txt +++ b/tests/Network/CMakeLists.txt @@ -13,6 +13,7 @@ set (Network_SRCS ${CMAKE_SOURCE_DIR}/src/OSSupport/Event.cpp ${CMAKE_SOURCE_DIR}/src/OSSupport/HostnameLookup.cpp ${CMAKE_SOURCE_DIR}/src/OSSupport/IPLookup.cpp + ${CMAKE_SOURCE_DIR}/src/OSSupport/NetworkInterfaceEnum.cpp ${CMAKE_SOURCE_DIR}/src/OSSupport/NetworkSingleton.cpp ${CMAKE_SOURCE_DIR}/src/OSSupport/ServerHandleImpl.cpp ${CMAKE_SOURCE_DIR}/src/OSSupport/TCPLinkImpl.cpp @@ -62,3 +63,24 @@ target_link_libraries(EchoServer Network) # NameLookup: Lookup hostname-to-IP and IP-to-hostname: add_executable(NameLookup NameLookup.cpp) target_link_libraries(NameLookup Network) + +# EnumInterfaces: List all network interfaces: +add_executable(EnumInterfaces-exe EnumInterfaces.cpp) +target_link_libraries(EnumInterfaces-exe Network) +add_test(NAME EnumInterfaces-test COMMAND EnumInterfaces-exe) + + + + +# Put all the tests into a solution folder (MSVC): +set_target_properties( + EchoServer + Google-exe + NameLookup + EnumInterfaces-exe + PROPERTIES FOLDER Tests +) + + + + diff --git a/tests/Network/EnumInterfaces.cpp b/tests/Network/EnumInterfaces.cpp new file mode 100644 index 000000000..a24158c62 --- /dev/null +++ b/tests/Network/EnumInterfaces.cpp @@ -0,0 +1,37 @@ + +// EnumInterfaces.cpp + +// Implements the main app entrypoint for the EnumInterfaces network test +// Lists all network interfaces to the console + +#include "Globals.h" +#include "OSSupport/Network.h" +#include "OSSupport/NetworkSingleton.h" + + + + + +int main(int argc, char * argv[]) +{ + // Initialize the cNetwork subsystem: + cNetworkSingleton::Get().Initialise(); + + // Enumerate all the addresses: + printf("Enumerating all IP addresses...\n"); + auto IPs = cNetwork::EnumLocalIPAddresses(); + for (auto & ip: IPs) + { + printf(" %s\n", ip.c_str()); + } + printf("Done.\n"); + + // Terminate the cNetwork subsystem: + cNetworkSingleton::Get().Terminate(); + + return 0; +} + + + + |