| // | |
| // Copyright 2015 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. | |
| // | |
| // EGLSanityCheckTest.cpp: | |
| // Tests used to check environment in which other tests are run. | |
| #include <gtest/gtest.h> | |
| #include "gpu_info_util/SystemInfo.h" | |
| #include "test_utils/ANGLETest.h" | |
| #include "test_utils/angle_test_instantiate.h" | |
| using namespace angle; | |
| class EGLSanityCheckTest : public ANGLETest | |
| {}; | |
| // Checks the tests are running against ANGLE | |
| TEST_P(EGLSanityCheckTest, IsRunningOnANGLE) | |
| { | |
| const char *extensionString = | |
| static_cast<const char *>(eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS)); | |
| ASSERT_NE(strstr(extensionString, "EGL_ANGLE_platform_angle"), nullptr); | |
| } | |
| // Checks that getting function pointer works | |
| TEST_P(EGLSanityCheckTest, HasGetPlatformDisplayEXT) | |
| { | |
| ASSERT_NE(eglGetPlatformDisplayEXT, nullptr); | |
| } | |
| // Checks that calling GetProcAddress for a non-existant function fails. | |
| TEST_P(EGLSanityCheckTest, GetProcAddressNegativeTest) | |
| { | |
| auto check = eglGetProcAddress("WigglyWombats"); | |
| EXPECT_EQ(nullptr, check); | |
| } | |
| // Tests that our whitelist function generally maps to our support function. | |
| // We can add specific exceptions here if needed. | |
| // Disabled because it was creating a large number of configs. This could even result | |
| // in a BDOD on Windows. | |
| TEST_P(EGLSanityCheckTest, DISABLED_WhitelistMatchesSupport) | |
| { | |
| // Has issues with Vulkan support detection on Android. | |
| ANGLE_SKIP_TEST_IF(IsAndroid()); | |
| // Cannot make any useful checks if SystemInfo is not supported. | |
| SystemInfo systemInfo; | |
| ANGLE_SKIP_TEST_IF(!GetSystemInfo(&systemInfo)); | |
| auto check = [&systemInfo](const PlatformParameters ¶ms) { | |
| EXPECT_EQ(IsConfigWhitelisted(systemInfo, params), IsConfigSupported(params)) << params; | |
| }; | |
| check(ES1_OPENGL()); | |
| check(ES2_OPENGL()); | |
| check(ES3_OPENGL()); | |
| check(ES31_OPENGL()); | |
| check(ES1_OPENGLES()); | |
| check(ES2_OPENGLES()); | |
| check(ES3_OPENGLES()); | |
| check(ES31_OPENGLES()); | |
| check(ES1_D3D9()); | |
| check(ES2_D3D9()); | |
| check(ES1_D3D11()); | |
| check(ES2_D3D11()); | |
| check(ES3_D3D11()); | |
| check(ES31_D3D11()); | |
| check(ES1_VULKAN()); | |
| check(ES2_VULKAN()); | |
| check(ES3_VULKAN()); | |
| check(ES1_VULKAN_NULL()); | |
| check(ES2_VULKAN_NULL()); | |
| check(ES3_VULKAN_NULL()); | |
| check(ES1_NULL()); | |
| check(ES2_NULL()); | |
| check(ES3_NULL()); | |
| check(ES31_NULL()); | |
| } | |
| ANGLE_INSTANTIATE_TEST(EGLSanityCheckTest, WithNoFixture(PlatformParameters())); |