#define BOOST_TEST_MODULE network_test #include #include #include #include #include #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; // To test if virtualization is detected correctly define an env variable VIRT_ENV // otherwise the test is skipped BOOST_AUTO_TEST_CASE(test_virtualization) { const char *env = getenv("VIRTUAL_ENV"); os::ExecutionEnvironment exec_env; bool docker = false; if (env != nullptr) { os::VIRTUALIZATION virt = exec_env.getVirtualization(); if (strcmp(env, "CONTAINER") == 0 || (docker = (strcmp(env, "DOCKER") == 0))) { BOOST_CHECK_MESSAGE(virt == VIRTUALIZATION::CONTAINER, "container detected"); BOOST_CHECK_MESSAGE(exec_env.is_container(), "container detected"); if (docker) { BOOST_CHECK_MESSAGE(exec_env.is_docker(), "docker detected"); } } else if (strcmp(env, "VM") == 0) { BOOST_CHECK_MESSAGE(virt == VIRTUALIZATION::VM, "VM detected"); BOOST_CHECK_MESSAGE(!exec_env.is_container(), "VM is not a container"); BOOST_CHECK_MESSAGE(!exec_env.is_docker(), "VM is not a docker"); } else if (strcmp(env, "NONE") == 0) { BOOST_CHECK_EQUAL(virt, VIRTUALIZATION::NONE); BOOST_CHECK_MESSAGE(!exec_env.is_container(), "not a container"); BOOST_CHECK_MESSAGE(!exec_env.is_docker(), "not a docker"); } else { BOOST_FAIL(string("value ") + env + " not supported: VM,DOCKER,CONTAINER,NONE"); } } } } // namespace test } // namespace os } // namespace license