| // |
| // 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 <gtest/gtest.h> |
| |
| #include <iostream> |
| |
| #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 |