Edit

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

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2019-05-03 12:52:21
    Hash : 467f174f
    Message : Remove EGLTest. Consolidate these tests into ANGLETest. Add a new parameter to PlatformParameters that lets us skip normal test setup. This removes the last 'configless' tests from angle_end2end_tests. Bug: angleproject:3393 Change-Id: I87186698ade90f95577534eb8ed1dfd4245f740e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1590467 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>

  • src/tests/egl_tests/EGLSanityCheckTest.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.
    //
    
    // 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 &params) {
            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()));