gcontini
2020-04-26 72c1d257af15851c4820f9446d8a244f2d732eb4
better vm detection
2个文件已修改
24 ■■■■■ 已修改文件
src/library/os/execution_environment_common.cpp 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/library/os/execution_environment_test.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/library/os/execution_environment_common.cpp
@@ -24,14 +24,15 @@
    {"VBOX", VIRTUALBOX}};
const unordered_map<string, LCC_API_VIRTUALIZATION_DETAIL> vm_vendors{{"VMWARE", VMWARE},
                                                              {"MICROSOFT", HV},
                                                              {"VITRUAL MACHINE", V_OTHER},
                                                                      {"MICROSOFT", HV},
                                                                      {"VITRUAL MACHINE", V_OTHER},
                                                                      {"INNOTEK GMBH", VIRTUALBOX},
                                                              {"POWERVM", V_OTHER},
                                                              {"BOCHS", V_OTHER},
                                                              {"KVM", KVM}};
                                                                      {"POWERVM", V_OTHER},
                                                                      {"BOCHS", V_OTHER},
                                                                      {"KVM", KVM}};
static LCC_API_VIRTUALIZATION_DETAIL find_in_map(const unordered_map<string, LCC_API_VIRTUALIZATION_DETAIL>& map, const string& data) {
static LCC_API_VIRTUALIZATION_DETAIL find_in_map(const unordered_map<string, LCC_API_VIRTUALIZATION_DETAIL>& map,
                                                 const string& data) {
    for (auto it : map) {
        if (data.find(it.first) != string::npos) {
            return it.second;
@@ -67,8 +68,10 @@
            }
        }
    }
    if (result == BARE_TO_METAL && m_cpu_info.is_hypervisor_set()) {
        result = V_OTHER;
    if (result == BARE_TO_METAL) {
        if (m_cpu_info.is_hypervisor_set() || is_cloud()) {
            result = V_OTHER;
        }
    }
    return result;
}
@@ -88,7 +91,8 @@
        if (bios_vendor.find("SEABIOS") != string::npos || bios_description.find("ALIBABA") != string::npos ||
            sys_vendor.find("ALIBABA") != string::npos) {
            result = ALI_CLOUD;
        } else if (sys_vendor.find("GOOGLE") != string::npos || bios_description.find("GOOGLE") != string::npos) {
        } else if (sys_vendor.find("GOOGLE") != string::npos ||
                   bios_description.find("GOOGLECOMPUTEENGINE") != string::npos) {
            result = GOOGLE_CLOUD;
        } else if (bios_vendor.find("AWS") != string::npos || bios_description.find("AMAZON") != string::npos ||
                   sys_vendor.find("AWS") != string::npos) {
test/library/os/execution_environment_test.cpp
@@ -1,4 +1,4 @@
#define BOOST_TEST_MODULE network_test
#define BOOST_TEST_MODULE execution_environment_test
#include <string>
#include <iostream>
#include <boost/test/unit_test.hpp>