Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/src/tests/egl_tests/EGLReadinessCheckTest.cpp
1693 views
1
//
2
// Copyright 2015 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
// EGLReadinessCheckTest.cpp:
8
// Tests used to check environment in which other tests are run.
9
10
#include <gtest/gtest.h>
11
12
#include "gpu_info_util/SystemInfo.h"
13
#include "test_utils/ANGLETest.h"
14
#include "test_utils/angle_test_instantiate.h"
15
16
using namespace angle;
17
18
class EGLReadinessCheckTest : public ANGLETest
19
{};
20
21
// Checks the tests are running against ANGLE
22
TEST_P(EGLReadinessCheckTest, IsRunningOnANGLE)
23
{
24
const char *extensionString =
25
static_cast<const char *>(eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS));
26
ASSERT_NE(strstr(extensionString, "EGL_ANGLE_platform_angle"), nullptr);
27
}
28
29
// Checks that getting function pointer works
30
TEST_P(EGLReadinessCheckTest, HasGetPlatformDisplayEXT)
31
{
32
ASSERT_NE(eglGetPlatformDisplayEXT, nullptr);
33
}
34
35
// Checks that calling GetProcAddress for a non-existant function fails.
36
TEST_P(EGLReadinessCheckTest, GetProcAddressNegativeTest)
37
{
38
auto check = eglGetProcAddress("WigglyWombats");
39
EXPECT_EQ(nullptr, check);
40
}
41
42
// Tests that our allowlist function generally maps to our support function.
43
// We can add specific exceptions here if needed.
44
// Disabled because it was creating a large number of configs. This could even result
45
// in a BDOD on Windows.
46
TEST_P(EGLReadinessCheckTest, DISABLED_AllowlistMatchesSupport)
47
{
48
// Has issues with Vulkan support detection on Android.
49
ANGLE_SKIP_TEST_IF(IsAndroid());
50
51
// Cannot make any useful checks if SystemInfo is not supported.
52
SystemInfo systemInfo;
53
ANGLE_SKIP_TEST_IF(!GetSystemInfo(&systemInfo));
54
55
auto check = [&systemInfo](const PlatformParameters &params) {
56
EXPECT_EQ(IsConfigAllowlisted(systemInfo, params), IsConfigSupported(params)) << params;
57
};
58
59
check(ES1_OPENGL());
60
check(ES2_OPENGL());
61
check(ES3_OPENGL());
62
check(ES31_OPENGL());
63
64
check(ES1_OPENGLES());
65
check(ES2_OPENGLES());
66
check(ES3_OPENGLES());
67
check(ES31_OPENGLES());
68
69
check(ES1_D3D9());
70
check(ES2_D3D9());
71
72
check(ES1_D3D11());
73
check(ES2_D3D11());
74
check(ES3_D3D11());
75
check(ES31_D3D11());
76
77
check(ES1_VULKAN());
78
check(ES2_VULKAN());
79
check(ES3_VULKAN());
80
81
check(ES1_VULKAN_NULL());
82
check(ES2_VULKAN_NULL());
83
check(ES3_VULKAN_NULL());
84
85
check(ES1_NULL());
86
check(ES2_NULL());
87
check(ES3_NULL());
88
check(ES31_NULL());
89
}
90
91
ANGLE_INSTANTIATE_TEST(EGLReadinessCheckTest, WithNoFixture(PlatformParameters()));
92
93