New file |
| | |
| | | #define BOOST_TEST_MODULE network_test |
| | | #include <string> |
| | | #include <iostream> |
| | | #include <boost/test/unit_test.hpp> |
| | | |
| | | #include <licensecc_properties.h> |
| | | #include <licensecc_properties_test.h> |
| | | #include "../../../src/library/base/StringUtils.h" |
| | | #include "../../../src/library/os/network.hpp" |
| | | #include "../../../src/library/os/execution_environment.hpp" |
| | | |
| | | namespace license { |
| | | namespace os { |
| | | namespace test { |
| | | |
| | | using namespace license::os; |
| | | using namespace std; |
| | | |
| | | BOOST_AUTO_TEST_CASE(read_network_adapters) { |
| | | std::vector<license::os::OsAdapterInfo> adapters; |
| | | // we can suppose every test environment other than docker has at least one network interface (it's hard to |
| | | // download this source code) |
| | | FUNCTION_RETURN result = getAdapterInfos(adapters); |
| | | ExecutionEnvironment exec_env; |
| | | if (result != FUNC_RET_OK && exec_env.is_docker()) { |
| | | BOOST_TEST_MESSAGE("detected docker environment, not having network interfaces is normal here"); |
| | | return; |
| | | } |
| | | BOOST_CHECK_EQUAL(result, FUNC_RET_OK); |
| | | for (auto& it : adapters) { |
| | | cout << "Interface found: " << string(it.description) << endl; |
| | | BOOST_CHECK_GT(strlen(it.description), 0); |
| | | // lo mac address is always 0 but it has ip |
| | | // other interfaces may not be connected |
| | | if (string(it.description) == "lo") { |
| | | BOOST_FAIL("loopback adapters shouldn't appear"); |
| | | } else { |
| | | // check mac address are not all zero |
| | | bool mac_is_0 = true; |
| | | for (int j = 0; j < 6; j++) { |
| | | mac_is_0 = mac_is_0 || (it.mac_address[j] != 0); |
| | | } |
| | | BOOST_CHECK_MESSAGE(mac_is_0, "Mac address for interface " << it.description << " is 0"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } // namespace test |
| | | } // namespace os |
| | | } // namespace license |