// // Copyright 2019 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. // // Tests the eglQueryStringiANGLE and eglQueryDisplayAttribANGLE functions exposed by the // extension EGL_ANGLE_feature_control. #include <gtest/gtest.h> #include <optional> #include "common/string_utils.h" #include "libANGLE/Display.h" #include "test_utils/ANGLETest.h" usingnamespaceangle; class EGLFeatureControlTest : public ANGLETest<> { … }; // Ensure eglQueryStringiANGLE generates EGL_BAD_DISPLAY if the display passed in is invalid. TEST_P(EGLFeatureControlTest, InvalidDisplay) { … } // Ensure eglQueryStringiANGLE generates EGL_BAD_PARAMETER if the index is negative. TEST_P(EGLFeatureControlTest, NegativeIndex) { … } // Ensure eglQueryStringiANGLE generates EGL_BAD_PARAMETER if the index is out of bounds. TEST_P(EGLFeatureControlTest, IndexOutOfBounds) { … } // Ensure eglQueryStringiANGLE generates EGL_BAD_PARAMETER if the name is not one of the valid // options specified in EGL_ANGLE_feature_control. TEST_P(EGLFeatureControlTest, InvalidName) { … } // For each valid name and index in the feature description arrays, query the values and ensure // that no error is generated, and that the values match the correct values frim ANGLE's display's // FeatureList. TEST_P(EGLFeatureControlTest, QueryAll) { … } // Ensure eglQueryDisplayAttribANGLE returns the correct number of features when queried with // attribute EGL_FEATURE_COUNT_ANGLE TEST_P(EGLFeatureControlTest, FeatureCount) { … } void EGLFeatureControlTest::testOverrideFeatures(FeatureNameModifier modifyName) { … } // Submit a list of features to override when creating the display with eglGetPlatformDisplay, and // ensure that the features are correctly overridden. TEST_P(EGLFeatureControlTest, OverrideFeatures) { … } // Similar to OverrideFeatures, but ensures that camelCase variants of the name match as well. TEST_P(EGLFeatureControlTest, OverrideFeaturesCamelCase) { … } // Similar to OverrideFeatures, but ensures wildcard matching works TEST_P(EGLFeatureControlTest, OverrideFeaturesWildcard) { … } // Ensure that dependent features are affected properly by overrides TEST_P(EGLFeatureControlTest, OverrideFeaturesDependent) { … } ANGLE_INSTANTIATE_TEST(…);