xref: /aosp_15_r20/external/angle/src/libANGLE/renderer/gl/DisplayGL_unittest.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2021 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 #include "gmock/gmock.h"
8 #include "gtest/gtest.h"
9 
10 #include "tests/angle_unittests_utils.h"
11 
12 namespace rx
13 {
14 
15 extern std::string SanitizeRendererString(std::string rendererString);
16 extern std::string SanitizeVersionString(std::string versionString,
17                                          bool isES,
18                                          bool includeFullVersion);
19 
20 namespace testing
21 {
22 
23 namespace
24 {
25 
TEST(DisplayGLTest,SanitizeRendererStringIntel)26 TEST(DisplayGLTest, SanitizeRendererStringIntel)
27 {
28     std::string testString      = "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)";
29     std::string testExpectation = "Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)";
30     EXPECT_EQ(SanitizeRendererString(testString), testExpectation);
31 }
32 
TEST(DisplayGLTest,SanitizeRendererStringLLVMPipe)33 TEST(DisplayGLTest, SanitizeRendererStringLLVMPipe)
34 {
35     std::string testString      = "llvmpipe (LLVM 11.0.0, 256 bits)";
36     std::string testExpectation = "llvmpipe (LLVM 11.0.0, 256 bits)";
37     EXPECT_EQ(SanitizeRendererString(testString), testExpectation);
38 }
39 
TEST(DisplayGLTest,SanitizeRendererStringRadeonVega)40 TEST(DisplayGLTest, SanitizeRendererStringRadeonVega)
41 {
42     std::string testString      = "Radeon RX Vega";
43     std::string testExpectation = "Radeon RX Vega";
44     EXPECT_EQ(SanitizeRendererString(testString), testExpectation);
45 }
46 
TEST(DisplayGLTest,SanitizeRendererStringRadeonTM)47 TEST(DisplayGLTest, SanitizeRendererStringRadeonTM)
48 {
49     std::string testString =
50         "AMD Radeon (TM) RX 460 Graphics (POLARIS11, DRM 3.35.0, 5.4.0-65-generic, LLVM 11.0.0)";
51     std::string testExpectation = "AMD Radeon (TM) RX 460 Graphics (POLARIS11)";
52     EXPECT_EQ(SanitizeRendererString(testString), testExpectation);
53 }
54 
TEST(DisplayGLTest,SanitizeRendererStringRadeonWithoutGeneration)55 TEST(DisplayGLTest, SanitizeRendererStringRadeonWithoutGeneration)
56 {
57     std::string testString      = "AMD Radeon RX 5700 (DRM 3.35.0, 5.4.0-65-generic, LLVM 11.0.0)";
58     std::string testExpectation = "AMD Radeon RX 5700";
59     EXPECT_EQ(SanitizeRendererString(testString), testExpectation);
60 }
61 
TEST(DisplayGLTest,SanitizeVersionStringOpenGLMissing)62 TEST(DisplayGLTest, SanitizeVersionStringOpenGLMissing)
63 {
64     std::string testString      = "4.6.0 NVIDIA 391.76";
65     std::string testExpectation = "OpenGL 4.6.0 NVIDIA 391.76";
66     EXPECT_EQ(SanitizeVersionString(testString, false, true), testExpectation);
67 }
68 
69 // Note: OpenGL renderers with this prefix don't actually seem to be present in the wild
TEST(DisplayGLTest,SanitizeVersionStringOpenGLPresent)70 TEST(DisplayGLTest, SanitizeVersionStringOpenGLPresent)
71 {
72     std::string testString      = "OpenGL 4.5.0 - Build 22.20.16.4749";
73     std::string testExpectation = "OpenGL 4.5.0 - Build 22.20.16.4749";
74     EXPECT_EQ(SanitizeVersionString(testString, false, true), testExpectation);
75 }
76 
TEST(DisplayGLTest,SanitizeVersionStringOpenGLESMissing)77 TEST(DisplayGLTest, SanitizeVersionStringOpenGLESMissing)
78 {
79     std::string testString      = "4.6.0 NVIDIA 419.67";
80     std::string testExpectation = "OpenGL ES 4.6.0 NVIDIA 419.67";
81     EXPECT_EQ(SanitizeVersionString(testString, true, true), testExpectation);
82 }
83 
TEST(DisplayGLTest,SanitizeVersionStringOpenGLESPresent)84 TEST(DisplayGLTest, SanitizeVersionStringOpenGLESPresent)
85 {
86     std::string testString      = "OpenGL ES 3.2 v1.r12p0-04rel0.44f2946824bb8739781564bffe2110c9";
87     std::string testExpectation = "OpenGL ES 3.2 v1.r12p0-04rel0.44f2946824bb8739781564bffe2110c9";
88     EXPECT_EQ(SanitizeVersionString(testString, true, true), testExpectation);
89 }
90 
TEST(DisplayGLTest,SanitizeVersionStringOpenGLMissingLimited)91 TEST(DisplayGLTest, SanitizeVersionStringOpenGLMissingLimited)
92 {
93     std::string testString      = "4.6.0 NVIDIA 391.76";
94     std::string testExpectation = "OpenGL 4.6.0";
95     EXPECT_EQ(SanitizeVersionString(testString, false, false), testExpectation);
96 }
97 
98 // Note: OpenGL renderers with this prefix don't actually seem to be present in the wild
TEST(DisplayGLTest,SanitizeVersionStringOpenGLPresentLimited)99 TEST(DisplayGLTest, SanitizeVersionStringOpenGLPresentLimited)
100 {
101     std::string testString      = "OpenGL 4.5.0 - Build 22.20.16.4749";
102     std::string testExpectation = "OpenGL 4.5.0";
103     EXPECT_EQ(SanitizeVersionString(testString, false, false), testExpectation);
104 }
105 
TEST(DisplayGLTest,SanitizeVersionStringOpenGLESMissingLimited)106 TEST(DisplayGLTest, SanitizeVersionStringOpenGLESMissingLimited)
107 {
108     std::string testString      = "4.6.0 NVIDIA 419.67";
109     std::string testExpectation = "OpenGL ES 4.6.0";
110     EXPECT_EQ(SanitizeVersionString(testString, true, false), testExpectation);
111 }
112 
TEST(DisplayGLTest,SanitizeVersionStringOpenGLESPresentLimited)113 TEST(DisplayGLTest, SanitizeVersionStringOpenGLESPresentLimited)
114 {
115     std::string testString      = "OpenGL ES 3.2 v1.r12p0-04rel0.44f2946824bb8739781564bffe2110c9";
116     std::string testExpectation = "OpenGL ES 3.2";
117     EXPECT_EQ(SanitizeVersionString(testString, true, false), testExpectation);
118 }
119 
120 }  // anonymous namespace
121 
122 }  // namespace testing
123 
124 }  // namespace rx
125