1e5c31af7Sopenharmony_cigroup invalid_declarations "Invalid declarations"
2e5c31af7Sopenharmony_ci	case in_in_vertex_main
3e5c31af7Sopenharmony_ci		version 300 es
4e5c31af7Sopenharmony_ci		expect compile_fail
5e5c31af7Sopenharmony_ci		vertex ""
6e5c31af7Sopenharmony_ci			#version 300 es
7e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
8e5c31af7Sopenharmony_ci			void main()
9e5c31af7Sopenharmony_ci			{
10e5c31af7Sopenharmony_ci				in mediump float val;
11e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
12e5c31af7Sopenharmony_ci			}
13e5c31af7Sopenharmony_ci		""
14e5c31af7Sopenharmony_ci		fragment ""
15e5c31af7Sopenharmony_ci			#version 300 es
16e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
17e5c31af7Sopenharmony_ci			void main()
18e5c31af7Sopenharmony_ci			{
19e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
20e5c31af7Sopenharmony_ci			}
21e5c31af7Sopenharmony_ci		""
22e5c31af7Sopenharmony_ci	end
23e5c31af7Sopenharmony_ci
24e5c31af7Sopenharmony_ci	case out_in_vertex_main
25e5c31af7Sopenharmony_ci		version 300 es
26e5c31af7Sopenharmony_ci		expect compile_fail
27e5c31af7Sopenharmony_ci		vertex ""
28e5c31af7Sopenharmony_ci			#version 300 es
29e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
30e5c31af7Sopenharmony_ci			void main()
31e5c31af7Sopenharmony_ci			{
32e5c31af7Sopenharmony_ci				out mediump float val;
33e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
34e5c31af7Sopenharmony_ci			}
35e5c31af7Sopenharmony_ci		""
36e5c31af7Sopenharmony_ci		fragment ""
37e5c31af7Sopenharmony_ci			#version 300 es
38e5c31af7Sopenharmony_ci			in mediump float val;
39e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
40e5c31af7Sopenharmony_ci			void main()
41e5c31af7Sopenharmony_ci			{
42e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
43e5c31af7Sopenharmony_ci			}
44e5c31af7Sopenharmony_ci		""
45e5c31af7Sopenharmony_ci	end
46e5c31af7Sopenharmony_ci
47e5c31af7Sopenharmony_ci	case in_in_fragment_main
48e5c31af7Sopenharmony_ci		version 300 es
49e5c31af7Sopenharmony_ci		expect compile_fail
50e5c31af7Sopenharmony_ci		vertex ""
51e5c31af7Sopenharmony_ci			#version 300 es
52e5c31af7Sopenharmony_ci			out mediump float val;
53e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
54e5c31af7Sopenharmony_ci			void main()
55e5c31af7Sopenharmony_ci			{
56e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
57e5c31af7Sopenharmony_ci			}
58e5c31af7Sopenharmony_ci		""
59e5c31af7Sopenharmony_ci		fragment ""
60e5c31af7Sopenharmony_ci			#version 300 es
61e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
62e5c31af7Sopenharmony_ci			void main()
63e5c31af7Sopenharmony_ci			{
64e5c31af7Sopenharmony_ci				in mediump float val;
65e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
66e5c31af7Sopenharmony_ci			}
67e5c31af7Sopenharmony_ci		""
68e5c31af7Sopenharmony_ci	end
69e5c31af7Sopenharmony_ci
70e5c31af7Sopenharmony_ci	case out_in_fragment_main
71e5c31af7Sopenharmony_ci		version 300 es
72e5c31af7Sopenharmony_ci		expect compile_fail
73e5c31af7Sopenharmony_ci		vertex ""
74e5c31af7Sopenharmony_ci			#version 300 es
75e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
76e5c31af7Sopenharmony_ci			void main()
77e5c31af7Sopenharmony_ci			{
78e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
79e5c31af7Sopenharmony_ci			}
80e5c31af7Sopenharmony_ci		""
81e5c31af7Sopenharmony_ci		fragment ""
82e5c31af7Sopenharmony_ci			#version 300 es
83e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
84e5c31af7Sopenharmony_ci			void main()
85e5c31af7Sopenharmony_ci			{
86e5c31af7Sopenharmony_ci				out mediump float val;
87e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
88e5c31af7Sopenharmony_ci			}
89e5c31af7Sopenharmony_ci		""
90e5c31af7Sopenharmony_ci	end
91e5c31af7Sopenharmony_ci
92e5c31af7Sopenharmony_ci	case uniform_in_vertex_main
93e5c31af7Sopenharmony_ci		version 300 es
94e5c31af7Sopenharmony_ci		expect compile_fail
95e5c31af7Sopenharmony_ci		vertex ""
96e5c31af7Sopenharmony_ci			#version 300 es
97e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
98e5c31af7Sopenharmony_ci			void main()
99e5c31af7Sopenharmony_ci			{
100e5c31af7Sopenharmony_ci				uniform mediump float val;
101e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
102e5c31af7Sopenharmony_ci			}
103e5c31af7Sopenharmony_ci		""
104e5c31af7Sopenharmony_ci		fragment ""
105e5c31af7Sopenharmony_ci			#version 300 es
106e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
107e5c31af7Sopenharmony_ci			void main()
108e5c31af7Sopenharmony_ci			{
109e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
110e5c31af7Sopenharmony_ci			}
111e5c31af7Sopenharmony_ci		""
112e5c31af7Sopenharmony_ci	end
113e5c31af7Sopenharmony_ci
114e5c31af7Sopenharmony_ci	case uniform_in_fragment_main
115e5c31af7Sopenharmony_ci		version 300 es
116e5c31af7Sopenharmony_ci		expect compile_fail
117e5c31af7Sopenharmony_ci		vertex ""
118e5c31af7Sopenharmony_ci			#version 300 es
119e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
120e5c31af7Sopenharmony_ci			void main()
121e5c31af7Sopenharmony_ci			{
122e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
123e5c31af7Sopenharmony_ci			}
124e5c31af7Sopenharmony_ci		""
125e5c31af7Sopenharmony_ci		fragment ""
126e5c31af7Sopenharmony_ci			#version 300 es
127e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
128e5c31af7Sopenharmony_ci			void main()
129e5c31af7Sopenharmony_ci			{
130e5c31af7Sopenharmony_ci				uniform mediump float val;
131e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
132e5c31af7Sopenharmony_ci			}
133e5c31af7Sopenharmony_ci		""
134e5c31af7Sopenharmony_ci	end
135e5c31af7Sopenharmony_ci
136e5c31af7Sopenharmony_ci	case uniform_block_in_main
137e5c31af7Sopenharmony_ci		version 300 es
138e5c31af7Sopenharmony_ci		expect compile_fail
139e5c31af7Sopenharmony_ci		both ""
140e5c31af7Sopenharmony_ci			#version 300 es
141e5c31af7Sopenharmony_ci			${DECLARATIONS}
142e5c31af7Sopenharmony_ci			void main()
143e5c31af7Sopenharmony_ci			{
144e5c31af7Sopenharmony_ci				uniform Block { mediump float val; };
145e5c31af7Sopenharmony_ci				${OUTPUT}
146e5c31af7Sopenharmony_ci			}
147e5c31af7Sopenharmony_ci		""
148e5c31af7Sopenharmony_ci	end
149e5c31af7Sopenharmony_ci
150e5c31af7Sopenharmony_ci	case invariant_attribute
151e5c31af7Sopenharmony_ci		version 300 es
152e5c31af7Sopenharmony_ci		expect compile_fail
153e5c31af7Sopenharmony_ci		vertex ""
154e5c31af7Sopenharmony_ci			#version 300 es
155e5c31af7Sopenharmony_ci			invariant in mediump float val;
156e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
157e5c31af7Sopenharmony_ci			void main()
158e5c31af7Sopenharmony_ci			{
159e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
160e5c31af7Sopenharmony_ci			}
161e5c31af7Sopenharmony_ci		""
162e5c31af7Sopenharmony_ci		fragment ""
163e5c31af7Sopenharmony_ci			#version 300 es
164e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
165e5c31af7Sopenharmony_ci			void main()
166e5c31af7Sopenharmony_ci			{
167e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
168e5c31af7Sopenharmony_ci			}
169e5c31af7Sopenharmony_ci		""
170e5c31af7Sopenharmony_ci	end
171e5c31af7Sopenharmony_ci
172e5c31af7Sopenharmony_ci	case invariant_uniform
173e5c31af7Sopenharmony_ci		version 300 es
174e5c31af7Sopenharmony_ci		expect compile_fail
175e5c31af7Sopenharmony_ci		vertex ""
176e5c31af7Sopenharmony_ci			#version 300 es
177e5c31af7Sopenharmony_ci			invariant uniform mediump float val;
178e5c31af7Sopenharmony_ci			${VERTEX_DECLARATIONS}
179e5c31af7Sopenharmony_ci			void main()
180e5c31af7Sopenharmony_ci			{
181e5c31af7Sopenharmony_ci				gl_Position = vec4(1.0);
182e5c31af7Sopenharmony_ci			}
183e5c31af7Sopenharmony_ci		""
184e5c31af7Sopenharmony_ci		fragment ""
185e5c31af7Sopenharmony_ci			#version 300 es
186e5c31af7Sopenharmony_ci			${FRAGMENT_DECLARATIONS}
187e5c31af7Sopenharmony_ci			void main()
188e5c31af7Sopenharmony_ci			{
189e5c31af7Sopenharmony_ci				${FRAG_COLOR} = vec4(1.0);
190e5c31af7Sopenharmony_ci			}
191e5c31af7Sopenharmony_ci		""
192e5c31af7Sopenharmony_ci	end
193e5c31af7Sopenharmony_ci
194e5c31af7Sopenharmony_ci	case invariant_uniform_block_1
195e5c31af7Sopenharmony_ci		version 300 es
196e5c31af7Sopenharmony_ci		expect compile_fail
197e5c31af7Sopenharmony_ci		both ""
198e5c31af7Sopenharmony_ci			#version 300 es
199e5c31af7Sopenharmony_ci			invariant uniform Block { mediump float val; };
200e5c31af7Sopenharmony_ci			${DECLARATIONS}
201e5c31af7Sopenharmony_ci			void main()
202e5c31af7Sopenharmony_ci			{
203e5c31af7Sopenharmony_ci				${OUTPUT}
204e5c31af7Sopenharmony_ci			}
205e5c31af7Sopenharmony_ci		""
206e5c31af7Sopenharmony_ci	end
207e5c31af7Sopenharmony_ci
208e5c31af7Sopenharmony_ci	case invariant_uniform_block_2
209e5c31af7Sopenharmony_ci		version 300 es
210e5c31af7Sopenharmony_ci		expect compile_fail
211e5c31af7Sopenharmony_ci		both ""
212e5c31af7Sopenharmony_ci			#version 300 es
213e5c31af7Sopenharmony_ci			uniform Block { invariant mediump float val; };
214e5c31af7Sopenharmony_ci			${DECLARATIONS}
215e5c31af7Sopenharmony_ci			void main()
216e5c31af7Sopenharmony_ci			{
217e5c31af7Sopenharmony_ci				${OUTPUT}
218e5c31af7Sopenharmony_ci			}
219e5c31af7Sopenharmony_ci		""
220e5c31af7Sopenharmony_ci	end
221e5c31af7Sopenharmony_ci
222e5c31af7Sopenharmony_ci	case uniform_block_layout_qualifier
223e5c31af7Sopenharmony_ci		version 300 es
224e5c31af7Sopenharmony_ci		expect compile_fail
225e5c31af7Sopenharmony_ci		both ""
226e5c31af7Sopenharmony_ci			#version 300 es
227e5c31af7Sopenharmony_ci			layout(foobar) uniform Block
228e5c31af7Sopenharmony_ci			{
229e5c31af7Sopenharmony_ci				mediump float val;
230e5c31af7Sopenharmony_ci			};
231e5c31af7Sopenharmony_ci			${DECLARATIONS}
232e5c31af7Sopenharmony_ci			void main()
233e5c31af7Sopenharmony_ci			{
234e5c31af7Sopenharmony_ci				${OUTPUT}
235e5c31af7Sopenharmony_ci			}
236e5c31af7Sopenharmony_ci		""
237e5c31af7Sopenharmony_ci	end
238e5c31af7Sopenharmony_ci
239e5c31af7Sopenharmony_ci	case uniform_block_member_layout_qualifier
240e5c31af7Sopenharmony_ci		version 300 es
241e5c31af7Sopenharmony_ci		expect compile_fail
242e5c31af7Sopenharmony_ci		both ""
243e5c31af7Sopenharmony_ci			#version 300 es
244e5c31af7Sopenharmony_ci			${DECLARATIONS}
245e5c31af7Sopenharmony_ci			uniform Block
246e5c31af7Sopenharmony_ci			{
247e5c31af7Sopenharmony_ci				layout(foobar) uniform mediump float val;
248e5c31af7Sopenharmony_ci			};
249e5c31af7Sopenharmony_ci			void main()
250e5c31af7Sopenharmony_ci			{
251e5c31af7Sopenharmony_ci				${OUTPUT}
252e5c31af7Sopenharmony_ci			}
253e5c31af7Sopenharmony_ci		""
254e5c31af7Sopenharmony_ci	end
255e5c31af7Sopenharmony_ci
256e5c31af7Sopenharmony_ci	case uniform_block_nested_struct_definition
257e5c31af7Sopenharmony_ci		version 300 es
258e5c31af7Sopenharmony_ci		expect compile_fail
259e5c31af7Sopenharmony_ci		both ""
260e5c31af7Sopenharmony_ci			#version 300 es
261e5c31af7Sopenharmony_ci			${DECLARATIONS}
262e5c31af7Sopenharmony_ci			uniform Block
263e5c31af7Sopenharmony_ci			{
264e5c31af7Sopenharmony_ci				struct S
265e5c31af7Sopenharmony_ci				{
266e5c31af7Sopenharmony_ci					mediump float v;
267e5c31af7Sopenharmony_ci					struct T
268e5c31af7Sopenharmony_ci					{
269e5c31af7Sopenharmony_ci						highp int i;
270e5c31af7Sopenharmony_ci					} t;
271e5c31af7Sopenharmony_ci				} s;
272e5c31af7Sopenharmony_ci			};
273e5c31af7Sopenharmony_ci			void main()
274e5c31af7Sopenharmony_ci			{
275e5c31af7Sopenharmony_ci				${OUTPUT}
276e5c31af7Sopenharmony_ci			}
277e5c31af7Sopenharmony_ci		""
278e5c31af7Sopenharmony_ci	end
279e5c31af7Sopenharmony_ci
280e5c31af7Sopenharmony_ci	case nested_uniform_block
281e5c31af7Sopenharmony_ci		version 300 es
282e5c31af7Sopenharmony_ci		expect compile_fail
283e5c31af7Sopenharmony_ci		both ""
284e5c31af7Sopenharmony_ci			#version 300 es
285e5c31af7Sopenharmony_ci			${DECLARATIONS}
286e5c31af7Sopenharmony_ci			uniform Block
287e5c31af7Sopenharmony_ci			{
288e5c31af7Sopenharmony_ci				uniform Block2
289e5c31af7Sopenharmony_ci				{
290e5c31af7Sopenharmony_ci					mediump float v;
291e5c31af7Sopenharmony_ci				} block2;
292e5c31af7Sopenharmony_ci			} block;
293e5c31af7Sopenharmony_ci			void main()
294e5c31af7Sopenharmony_ci			{
295e5c31af7Sopenharmony_ci				${OUTPUT}
296e5c31af7Sopenharmony_ci			}
297e5c31af7Sopenharmony_ci		""
298e5c31af7Sopenharmony_ci	end
299e5c31af7Sopenharmony_ci
300e5c31af7Sopenharmony_ci	case uniform_block_sampler_2d
301e5c31af7Sopenharmony_ci		version 300 es
302e5c31af7Sopenharmony_ci		expect compile_fail
303e5c31af7Sopenharmony_ci		both ""
304e5c31af7Sopenharmony_ci			#version 300 es
305e5c31af7Sopenharmony_ci			${DECLARATIONS}
306e5c31af7Sopenharmony_ci			uniform Block
307e5c31af7Sopenharmony_ci			{
308e5c31af7Sopenharmony_ci				uniform sampler2D s;
309e5c31af7Sopenharmony_ci			};
310e5c31af7Sopenharmony_ci			void main()
311e5c31af7Sopenharmony_ci			{
312e5c31af7Sopenharmony_ci				${OUTPUT}
313e5c31af7Sopenharmony_ci			}
314e5c31af7Sopenharmony_ci		""
315e5c31af7Sopenharmony_ci	end
316e5c31af7Sopenharmony_ci
317e5c31af7Sopenharmony_ci	case uniform_block_sampler_cube
318e5c31af7Sopenharmony_ci		version 300 es
319e5c31af7Sopenharmony_ci		expect compile_fail
320e5c31af7Sopenharmony_ci		both ""
321e5c31af7Sopenharmony_ci			#version 300 es
322e5c31af7Sopenharmony_ci			${DECLARATIONS}
323e5c31af7Sopenharmony_ci			uniform Block
324e5c31af7Sopenharmony_ci			{
325e5c31af7Sopenharmony_ci				uniform samplerCube s;
326e5c31af7Sopenharmony_ci			};
327e5c31af7Sopenharmony_ci			void main()
328e5c31af7Sopenharmony_ci			{
329e5c31af7Sopenharmony_ci				${OUTPUT}
330e5c31af7Sopenharmony_ci			}
331e5c31af7Sopenharmony_ci		""
332e5c31af7Sopenharmony_ci	end
333e5c31af7Sopenharmony_ci
334e5c31af7Sopenharmony_ci	case uniform_block_missing_member_semicolon
335e5c31af7Sopenharmony_ci		version 300 es
336e5c31af7Sopenharmony_ci		expect compile_fail
337e5c31af7Sopenharmony_ci		both ""
338e5c31af7Sopenharmony_ci			#version 300 es
339e5c31af7Sopenharmony_ci			${DECLARATIONS}
340e5c31af7Sopenharmony_ci			uniform Block
341e5c31af7Sopenharmony_ci			{
342e5c31af7Sopenharmony_ci				mediump float var
343e5c31af7Sopenharmony_ci			};
344e5c31af7Sopenharmony_ci			void main()
345e5c31af7Sopenharmony_ci			{
346e5c31af7Sopenharmony_ci				${OUTPUT}
347e5c31af7Sopenharmony_ci			}
348e5c31af7Sopenharmony_ci		""
349e5c31af7Sopenharmony_ci	end
350e5c31af7Sopenharmony_ci
351e5c31af7Sopenharmony_ci	case uniform_block_missing_end_semicolon
352e5c31af7Sopenharmony_ci		version 300 es
353e5c31af7Sopenharmony_ci		expect compile_fail
354e5c31af7Sopenharmony_ci		both ""
355e5c31af7Sopenharmony_ci			#version 300 es
356e5c31af7Sopenharmony_ci			${DECLARATIONS}
357e5c31af7Sopenharmony_ci			uniform Block
358e5c31af7Sopenharmony_ci			{
359e5c31af7Sopenharmony_ci				mediump float var;
360e5c31af7Sopenharmony_ci			}
361e5c31af7Sopenharmony_ci			void main()
362e5c31af7Sopenharmony_ci			{
363e5c31af7Sopenharmony_ci				${OUTPUT}
364e5c31af7Sopenharmony_ci			}
365e5c31af7Sopenharmony_ci		""
366e5c31af7Sopenharmony_ci	end
367e5c31af7Sopenharmony_ci
368e5c31af7Sopenharmony_ci	case uniform_block_duplicate_member_name_1
369e5c31af7Sopenharmony_ci		version 300 es
370e5c31af7Sopenharmony_ci		expect compile_fail
371e5c31af7Sopenharmony_ci		both ""
372e5c31af7Sopenharmony_ci			#version 300 es
373e5c31af7Sopenharmony_ci			${DECLARATIONS}
374e5c31af7Sopenharmony_ci			uniform Block
375e5c31af7Sopenharmony_ci			{
376e5c31af7Sopenharmony_ci				mediump float var;
377e5c31af7Sopenharmony_ci				mediump float var;
378e5c31af7Sopenharmony_ci			};
379e5c31af7Sopenharmony_ci			void main()
380e5c31af7Sopenharmony_ci			{
381e5c31af7Sopenharmony_ci				${OUTPUT}
382e5c31af7Sopenharmony_ci			}
383e5c31af7Sopenharmony_ci		""
384e5c31af7Sopenharmony_ci	end
385e5c31af7Sopenharmony_ci
386e5c31af7Sopenharmony_ci	case uniform_block_duplicate_member_name_2
387e5c31af7Sopenharmony_ci		version 300 es
388e5c31af7Sopenharmony_ci		expect compile_fail
389e5c31af7Sopenharmony_ci		both ""
390e5c31af7Sopenharmony_ci			#version 300 es
391e5c31af7Sopenharmony_ci			${DECLARATIONS}
392e5c31af7Sopenharmony_ci			uniform Block
393e5c31af7Sopenharmony_ci			{
394e5c31af7Sopenharmony_ci				mediump float var;
395e5c31af7Sopenharmony_ci			};
396e5c31af7Sopenharmony_ci			uniform Block2
397e5c31af7Sopenharmony_ci			{
398e5c31af7Sopenharmony_ci				mediump float var;
399e5c31af7Sopenharmony_ci			};
400e5c31af7Sopenharmony_ci			void main()
401e5c31af7Sopenharmony_ci			{
402e5c31af7Sopenharmony_ci				${OUTPUT}
403e5c31af7Sopenharmony_ci			}
404e5c31af7Sopenharmony_ci		""
405e5c31af7Sopenharmony_ci	end
406e5c31af7Sopenharmony_ci
407e5c31af7Sopenharmony_ci	case uniform_block_duplicate_member_name_3
408e5c31af7Sopenharmony_ci		version 300 es
409e5c31af7Sopenharmony_ci		expect compile_fail
410e5c31af7Sopenharmony_ci		both ""
411e5c31af7Sopenharmony_ci			#version 300 es
412e5c31af7Sopenharmony_ci			${DECLARATIONS}
413e5c31af7Sopenharmony_ci			uniform mediump float var;
414e5c31af7Sopenharmony_ci			uniform Block
415e5c31af7Sopenharmony_ci			{
416e5c31af7Sopenharmony_ci				mediump float var;
417e5c31af7Sopenharmony_ci			};
418e5c31af7Sopenharmony_ci			void main()
419e5c31af7Sopenharmony_ci			{
420e5c31af7Sopenharmony_ci				${OUTPUT}
421e5c31af7Sopenharmony_ci			}
422e5c31af7Sopenharmony_ci		""
423e5c31af7Sopenharmony_ci	end
424e5c31af7Sopenharmony_ci
425e5c31af7Sopenharmony_ci	case uniform_block_duplicate_block_name
426e5c31af7Sopenharmony_ci		version 300 es
427e5c31af7Sopenharmony_ci		expect compile_fail
428e5c31af7Sopenharmony_ci		both ""
429e5c31af7Sopenharmony_ci			#version 300 es
430e5c31af7Sopenharmony_ci			${DECLARATIONS}
431e5c31af7Sopenharmony_ci			uniform Block
432e5c31af7Sopenharmony_ci			{
433e5c31af7Sopenharmony_ci				mediump float var;
434e5c31af7Sopenharmony_ci			};
435e5c31af7Sopenharmony_ci			uniform Block
436e5c31af7Sopenharmony_ci			{
437e5c31af7Sopenharmony_ci				mediump float var2;
438e5c31af7Sopenharmony_ci			};
439e5c31af7Sopenharmony_ci			void main()
440e5c31af7Sopenharmony_ci			{
441e5c31af7Sopenharmony_ci				${OUTPUT}
442e5c31af7Sopenharmony_ci			}
443e5c31af7Sopenharmony_ci		""
444e5c31af7Sopenharmony_ci	end
445e5c31af7Sopenharmony_ci
446e5c31af7Sopenharmony_ci	case uniform_block_duplicate_instance_name_1
447e5c31af7Sopenharmony_ci		version 300 es
448e5c31af7Sopenharmony_ci		expect compile_fail
449e5c31af7Sopenharmony_ci		both ""
450e5c31af7Sopenharmony_ci			#version 300 es
451e5c31af7Sopenharmony_ci			${DECLARATIONS}
452e5c31af7Sopenharmony_ci			uniform Block
453e5c31af7Sopenharmony_ci			{
454e5c31af7Sopenharmony_ci				mediump float var;
455e5c31af7Sopenharmony_ci			} block;
456e5c31af7Sopenharmony_ci			uniform Block2
457e5c31af7Sopenharmony_ci			{
458e5c31af7Sopenharmony_ci				mediump float var2;
459e5c31af7Sopenharmony_ci			} block;
460e5c31af7Sopenharmony_ci			void main()
461e5c31af7Sopenharmony_ci			{
462e5c31af7Sopenharmony_ci				${OUTPUT}
463e5c31af7Sopenharmony_ci			}
464e5c31af7Sopenharmony_ci		""
465e5c31af7Sopenharmony_ci	end
466e5c31af7Sopenharmony_ci
467e5c31af7Sopenharmony_ci	case uniform_block_duplicate_instance_name_2
468e5c31af7Sopenharmony_ci		version 300 es
469e5c31af7Sopenharmony_ci		expect compile_fail
470e5c31af7Sopenharmony_ci		both ""
471e5c31af7Sopenharmony_ci			#version 300 es
472e5c31af7Sopenharmony_ci			${DECLARATIONS}
473e5c31af7Sopenharmony_ci			uniform mediump float block;
474e5c31af7Sopenharmony_ci			uniform Block
475e5c31af7Sopenharmony_ci			{
476e5c31af7Sopenharmony_ci				mediump float var;
477e5c31af7Sopenharmony_ci			} block;
478e5c31af7Sopenharmony_ci			void main()
479e5c31af7Sopenharmony_ci			{
480e5c31af7Sopenharmony_ci				${OUTPUT}
481e5c31af7Sopenharmony_ci			}
482e5c31af7Sopenharmony_ci		""
483e5c31af7Sopenharmony_ci	end
484e5c31af7Sopenharmony_ci
485e5c31af7Sopenharmony_ci	case uniform_block_duplicate_instance_name_3
486e5c31af7Sopenharmony_ci		version 300 es
487e5c31af7Sopenharmony_ci		expect compile_fail
488e5c31af7Sopenharmony_ci		both ""
489e5c31af7Sopenharmony_ci			#version 300 es
490e5c31af7Sopenharmony_ci			${DECLARATIONS}
491e5c31af7Sopenharmony_ci			uniform Block
492e5c31af7Sopenharmony_ci			{
493e5c31af7Sopenharmony_ci				mediump float block;
494e5c31af7Sopenharmony_ci			};
495e5c31af7Sopenharmony_ci			uniform Block2
496e5c31af7Sopenharmony_ci			{
497e5c31af7Sopenharmony_ci				mediump float var2;
498e5c31af7Sopenharmony_ci			} block;
499e5c31af7Sopenharmony_ci			void main()
500e5c31af7Sopenharmony_ci			{
501e5c31af7Sopenharmony_ci				${OUTPUT}
502e5c31af7Sopenharmony_ci			}
503e5c31af7Sopenharmony_ci		""
504e5c31af7Sopenharmony_ci	end
505e5c31af7Sopenharmony_ci
506e5c31af7Sopenharmony_ci	case uniform_block_array_without_instance_name_1
507e5c31af7Sopenharmony_ci		version 300 es
508e5c31af7Sopenharmony_ci		expect compile_fail
509e5c31af7Sopenharmony_ci		both ""
510e5c31af7Sopenharmony_ci			#version 300 es
511e5c31af7Sopenharmony_ci			${DECLARATIONS}
512e5c31af7Sopenharmony_ci			uniform Block[2]
513e5c31af7Sopenharmony_ci			{
514e5c31af7Sopenharmony_ci				mediump float var;
515e5c31af7Sopenharmony_ci			};
516e5c31af7Sopenharmony_ci			void main()
517e5c31af7Sopenharmony_ci			{
518e5c31af7Sopenharmony_ci				${OUTPUT}
519e5c31af7Sopenharmony_ci			}
520e5c31af7Sopenharmony_ci		""
521e5c31af7Sopenharmony_ci	end
522e5c31af7Sopenharmony_ci
523e5c31af7Sopenharmony_ci	case uniform_block_array_without_instance_name_2
524e5c31af7Sopenharmony_ci		version 300 es
525e5c31af7Sopenharmony_ci		expect compile_fail
526e5c31af7Sopenharmony_ci		both ""
527e5c31af7Sopenharmony_ci			#version 300 es
528e5c31af7Sopenharmony_ci			${DECLARATIONS}
529e5c31af7Sopenharmony_ci			uniform Block
530e5c31af7Sopenharmony_ci			{
531e5c31af7Sopenharmony_ci				mediump float var;
532e5c31af7Sopenharmony_ci			} [2];
533e5c31af7Sopenharmony_ci			void main()
534e5c31af7Sopenharmony_ci			{
535e5c31af7Sopenharmony_ci				${OUTPUT}
536e5c31af7Sopenharmony_ci			}
537e5c31af7Sopenharmony_ci		""
538e5c31af7Sopenharmony_ci	end
539e5c31af7Sopenharmony_ci
540e5c31af7Sopenharmony_ci	case uniform_block_in
541e5c31af7Sopenharmony_ci		version 300 es
542e5c31af7Sopenharmony_ci		expect compile_fail
543e5c31af7Sopenharmony_ci		both ""
544e5c31af7Sopenharmony_ci			#version 300 es
545e5c31af7Sopenharmony_ci			${DECLARATIONS}
546e5c31af7Sopenharmony_ci			uniform Block
547e5c31af7Sopenharmony_ci			{
548e5c31af7Sopenharmony_ci				in mediump float var;
549e5c31af7Sopenharmony_ci			};
550e5c31af7Sopenharmony_ci			void main()
551e5c31af7Sopenharmony_ci			{
552e5c31af7Sopenharmony_ci				${OUTPUT}
553e5c31af7Sopenharmony_ci			}
554e5c31af7Sopenharmony_ci		""
555e5c31af7Sopenharmony_ci	end
556e5c31af7Sopenharmony_ci
557e5c31af7Sopenharmony_ci	case uniform_block_out
558e5c31af7Sopenharmony_ci		version 300 es
559e5c31af7Sopenharmony_ci		expect compile_fail
560e5c31af7Sopenharmony_ci		both ""
561e5c31af7Sopenharmony_ci			#version 300 es
562e5c31af7Sopenharmony_ci			${DECLARATIONS}
563e5c31af7Sopenharmony_ci			uniform Block
564e5c31af7Sopenharmony_ci			{
565e5c31af7Sopenharmony_ci				out mediump float var;
566e5c31af7Sopenharmony_ci			};
567e5c31af7Sopenharmony_ci			void main()
568e5c31af7Sopenharmony_ci			{
569e5c31af7Sopenharmony_ci				${OUTPUT}
570e5c31af7Sopenharmony_ci			}
571e5c31af7Sopenharmony_ci		""
572e5c31af7Sopenharmony_ci	end
573e5c31af7Sopenharmony_ci
574e5c31af7Sopenharmony_ci	case uniform_block_const
575e5c31af7Sopenharmony_ci		version 300 es
576e5c31af7Sopenharmony_ci		expect compile_fail
577e5c31af7Sopenharmony_ci		both ""
578e5c31af7Sopenharmony_ci			#version 300 es
579e5c31af7Sopenharmony_ci			${DECLARATIONS}
580e5c31af7Sopenharmony_ci			uniform Block
581e5c31af7Sopenharmony_ci			{
582e5c31af7Sopenharmony_ci				const mediump float var;
583e5c31af7Sopenharmony_ci			};
584e5c31af7Sopenharmony_ci			void main()
585e5c31af7Sopenharmony_ci			{
586e5c31af7Sopenharmony_ci				${OUTPUT}
587e5c31af7Sopenharmony_ci			}
588e5c31af7Sopenharmony_ci		""
589e5c31af7Sopenharmony_ci	end
590e5c31af7Sopenharmony_ci
591e5c31af7Sopenharmony_ciend # invalid_declarations
592