-------------------------------------------------------------------------
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.
-------------------------------------------------------------------------
    Array tests

Tests:
 + dEQP-GLES3.functional.shaders.arrays.*

Includes:
 + Array definition and constructors
	- Using int, float, bool, struct, vectors and matrices
 + Arrays as return values
 + Arrays as unnamed parameters in function prototypes
 + Array length() method
 + Negative tests for illegal multi-dimensional arrays
 + Negative tests for illegal C-style constructors

Excludes:

Description:

Array tests receive input values and construct different type arrays to
test correct declaration and initialization behavior.

Negative tests verify that multidimensional arrays cannot be defined,
arrays cannot be formed using C-style array syntax and that given array
size must be a constant expression.
