Edit

kc3-lang/angle/src/tests/egl_tests/EGLReadinessCheckTest.cpp

Branch :

  • Show log

    Commit

  • Author : Trevor David Black
    Date : 2020-09-07 22:09:22
    Hash : e815afbf
    Message : First pass at increasing inclusivity Link to the inclusivity rules https://source.android.com/setup/contribute/respectful-code Bug: b/162834212 Bug: chromium:1097198 Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Trevor Black <vantablack@google.com>

  • src/tests/egl_tests/EGLReadinessCheckTest.cpp
  • //
    // 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.
    //
    
    // EGLReadinessCheckTest.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 EGLReadinessCheckTest : public ANGLETest
    {};
    
    // Checks the tests are running against ANGLE
    TEST_P(EGLReadinessCheckTest, 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(EGLReadinessCheckTest, HasGetPlatformDisplayEXT)
    {
        ASSERT_NE(eglGetPlatformDisplayEXT, nullptr);
    }
    
    // Checks that calling GetProcAddress for a non-existant function fails.
    TEST_P(EGLReadinessCheckTest, GetProcAddressNegativeTest)
    {
        auto check = eglGetProcAddress("WigglyWombats");
        EXPECT_EQ(nullptr, check);
    }
    
    // Tests that our allowlist 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(EGLReadinessCheckTest, DISABLED_AllowlistMatchesSupport)
    {
        // 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 &params) {
            EXPECT_EQ(IsConfigAllowlisted(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(EGLReadinessCheckTest, WithNoFixture(PlatformParameters()));