summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/keywords.test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/keywords.test3219
1 files changed, 3219 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/keywords.test b/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/keywords.test
new file mode 100644
index 0000000000..b588cd74e3
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/deqp/data/gles3/shaders/keywords.test
@@ -0,0 +1,3219 @@
+# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
+# modify the generating script file. Otherwise changes will be lost!
+
+group keywords "Usage of keywords as identifiers."
+
+ case const
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float const = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uniform
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uniform = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case layout
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float layout = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case centroid
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float centroid = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case flat
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float flat = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case smooth
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float smooth = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case break
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float break = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case continue
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float continue = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case do
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float do = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case for
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float for = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case while
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float while = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case switch
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float switch = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case case
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float case = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case default
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float default = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case if
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float if = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case else
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float else = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case in
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float in = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case out
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float out = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case inout
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float inout = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case float
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float float = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case int
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float int = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case void
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float void = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case bool
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float bool = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case true
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float true = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case false
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float false = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case invariant
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float invariant = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case discard
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float discard = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case return
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float return = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat2x2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat2x2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat2x3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat2x3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat2x4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat2x4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat3x2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat3x2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat3x3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat3x3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat3x4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat3x4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat4x2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat4x2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat4x3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat4x3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mat4x4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mat4x4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case vec2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float vec2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case vec3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float vec3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case vec4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float vec4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case ivec2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float ivec2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case ivec3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float ivec3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case ivec4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float ivec4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case bvec2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float bvec2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case bvec3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float bvec3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case bvec4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float bvec4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uint
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uint = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uvec2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uvec2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uvec3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uvec3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uvec4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uvec4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case lowp
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float lowp = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case mediump
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float mediump = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case highp
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float highp = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case precision
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float precision = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler3D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler3D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case samplerCube
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float samplerCube = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2DShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2DShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case samplerCubeShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float samplerCubeShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2DArrayShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2DArrayShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler2D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler2D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler3D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler3D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isamplerCube
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isamplerCube = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler2DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler2DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler2D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler2D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler3D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler3D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usamplerCube
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usamplerCube = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler2DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler2DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case struct
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float struct = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+
+end # keywords
+group reserved_keywords "Usage of reserved keywords as identifiers."
+
+ case attribute
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float attribute = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case varying
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float varying = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case coherent
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float coherent = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case restrict
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float restrict = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case readonly
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float readonly = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case writeonly
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float writeonly = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case resource
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float resource = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case atomic_uint
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float atomic_uint = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case noperspective
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float noperspective = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case patch
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float patch = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sample
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sample = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case subroutine
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float subroutine = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case common
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float common = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case partition
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float partition = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case active
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float active = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case asm
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float asm = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case class
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float class = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case union
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float union = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case enum
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float enum = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case typedef
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float typedef = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case template
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float template = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case this
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float this = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case goto
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float goto = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case inline
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float inline = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case noinline
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float noinline = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case volatile
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float volatile = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case public
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float public = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case static
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float static = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case extern
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float extern = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case external
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float external = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case interface
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float interface = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case long
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float long = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case short
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float short = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case double
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float double = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case half
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float half = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case fixed
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float fixed = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case unsigned
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float unsigned = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case superp
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float superp = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case input
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float input = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case output
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float output = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case hvec2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float hvec2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case hvec3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float hvec3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case hvec4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float hvec4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case dvec2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float dvec2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case dvec3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float dvec3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case dvec4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float dvec4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case fvec2
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float fvec2 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case fvec3
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float fvec3 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case fvec4
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float fvec4 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler3DRect
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler3DRect = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case filter
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float filter = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image1D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image1D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image2D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image2D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image3D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image3D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case imageCube
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float imageCube = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case iimage1D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float iimage1D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case iimage2D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float iimage2D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case iimage3D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float iimage3D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case iimageCube
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float iimageCube = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uimage1D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uimage1D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uimage2D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uimage2D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uimage3D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uimage3D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uimageCube
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uimageCube = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image1DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image1DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image2DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image2DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case iimage1DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float iimage1DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case iimage2DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float iimage2DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uimage1DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uimage1DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uimage2DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uimage2DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image1DShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image1DShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image2DShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image2DShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image1DArrayShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image1DArrayShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image2DArrayShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image2DArrayShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case imageBuffer
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float imageBuffer = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case iimageBuffer
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float iimageBuffer = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case uimageBuffer
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float uimageBuffer = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler1D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler1D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler1DShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler1DShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler1DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler1DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler1DArrayShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler1DArrayShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler1D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler1D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler1DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler1DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler1D
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler1D = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler1DArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler1DArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2DRect
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2DRect = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2DRectShadow
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2DRectShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler2DRect
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler2DRect = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler2DRect
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler2DRect = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case samplerBuffer
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float samplerBuffer = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isamplerBuffer
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isamplerBuffer = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usamplerBuffer
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usamplerBuffer = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2DMS
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2DMS = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler2DMS
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler2DMS = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler2DMS
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler2DMS = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sampler2DMSArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sampler2DMSArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case isampler2DMSArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float isampler2DMSArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case usampler2DMSArray
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float usampler2DMSArray = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case sizeof
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float sizeof = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case cast
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float cast = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case namespace
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float namespace = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case using
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float using = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+
+end # reserved_keywords
+group invalid_identifiers "Usage of invalid identifiers."
+
+ case gl_begin
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float gl_Invalid = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case digit
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float 0123 = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case digit_begin
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float 0invalid = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case max_length
+ expect compile_fail
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdX = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+
+end # invalid_identifiers