// // Copyright 2017 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // PrintSystemInfoTest.cpp: // prints the information gathered about the system so that it appears in the test logs #include #include #include "common/platform.h" #include "common/system_utils.h" #include "gpu_info_util/SystemInfo.h" using namespace angle; namespace { #if defined(ANGLE_PLATFORM_WINDOWS) || defined(ANGLE_PLATFORM_LINUX) || \ defined(ANGLE_PLATFORM_APPLE) # define SYSTEM_INFO_IMPLEMENTED #endif // Prints the information gathered about the system TEST(PrintSystemInfoTest, Print) { #if defined(SYSTEM_INFO_IMPLEMENTED) SystemInfo info; ASSERT_TRUE(GetSystemInfo(&info)); ASSERT_GT(info.gpus.size(), 0u); PrintSystemInfo(info); #else std::cerr << "GetSystemInfo not implemented, skipping" << std::endl; #endif } TEST(PrintSystemInfoTest, GetSystemInfoNoCrashOnInvalidDisplay) { #if defined(SYSTEM_INFO_IMPLEMENTED) && defined(ANGLE_USE_X11) const char kX11DisplayEnvVar[] = "DISPLAY"; const char kInvalidDisplay[] = "124:"; std::string previous_display = GetEnvironmentVar(kX11DisplayEnvVar); SetEnvironmentVar(kX11DisplayEnvVar, kInvalidDisplay); SystemInfo info; // This should not crash. GetSystemInfo(&info); if (previous_display.empty()) { UnsetEnvironmentVar(kX11DisplayEnvVar); } else { SetEnvironmentVar(kX11DisplayEnvVar, previous_display.c_str()); } #elif defined(SYSTEM_INFO_IMPLEMENTED) std::cerr << "GetSystemInfo not implemented, skipping" << std::endl; #else std::cerr << "GetSystemInfo X11 test not applicable, skipping" << std::endl; #endif } } // anonymous namespace