-------------------------------------------------------------------------
drawElements Quality Program Test Specification
-----------------------------------------------

Copyright 2014 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-------------------------------------------------------------------------
    Android extension pack (ES31A) tests

Tests:
 + dEQP-GLES31.functional.android_extension_pack.*

Includes:
 + Implementation limit checks
 + Checks for required extensions
 + Shader extension macro test
 + Shader compilation tests using android extension pack extension
   directive
 + Shader compilation tests using extended implementation limits

Excludes:

Description:

android_extension_pack.limits.* group cases check the corresponding
implementation limit and verify it is larger or equal to the minimum
required by the extension.

android_extension_pack.extensions.* group cases check that all
extensions required by android_extension_pack are supported if
android_extension_pack extension is supported.

android_extension_pack.shaders.extension_macros.* group cases check
that shader preprocessor macros defined by android_extension_pack
extension are declared.

android_extension_pack.shaders.extension_directive.* group cases check
that shader extension directive of an extension required by
android_extension_pack can be replaced with an android_extension_pack
extension directive.

android_extension_pack.shaders.implementation_limits.* group cases
check that shaders using extended implementation limits compile
successfully.
