xref: /aosp_15_r20/external/deqp/data/gles3/shaders/switch.test (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Worker
2*35238bceSAndroid Build Coastguard Workercase empty_condition
3*35238bceSAndroid Build Coastguard Worker    version 300 es
4*35238bceSAndroid Build Coastguard Worker    expect compile_fail
5*35238bceSAndroid Build Coastguard Worker    both ""
6*35238bceSAndroid Build Coastguard Worker        #version 300 es
7*35238bceSAndroid Build Coastguard Worker        precision mediump float;
8*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
9*35238bceSAndroid Build Coastguard Worker
10*35238bceSAndroid Build Coastguard Worker        void main ()
11*35238bceSAndroid Build Coastguard Worker        {
12*35238bceSAndroid Build Coastguard Worker            switch ()
13*35238bceSAndroid Build Coastguard Worker            {
14*35238bceSAndroid Build Coastguard Worker                case 1:
15*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
16*35238bceSAndroid Build Coastguard Worker            }
17*35238bceSAndroid Build Coastguard Worker
18*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
19*35238bceSAndroid Build Coastguard Worker        }
20*35238bceSAndroid Build Coastguard Worker    ""
21*35238bceSAndroid Build Coastguard Workerend
22*35238bceSAndroid Build Coastguard Worker
23*35238bceSAndroid Build Coastguard Workercase condition_float
24*35238bceSAndroid Build Coastguard Worker    version 300 es
25*35238bceSAndroid Build Coastguard Worker    expect compile_fail
26*35238bceSAndroid Build Coastguard Worker    both ""
27*35238bceSAndroid Build Coastguard Worker        #version 300 es
28*35238bceSAndroid Build Coastguard Worker        precision mediump float;
29*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
30*35238bceSAndroid Build Coastguard Worker
31*35238bceSAndroid Build Coastguard Worker        void main ()
32*35238bceSAndroid Build Coastguard Worker        {
33*35238bceSAndroid Build Coastguard Worker            float c = 1.0;
34*35238bceSAndroid Build Coastguard Worker            switch (c)
35*35238bceSAndroid Build Coastguard Worker            {
36*35238bceSAndroid Build Coastguard Worker                case 1:
37*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
38*35238bceSAndroid Build Coastguard Worker            }
39*35238bceSAndroid Build Coastguard Worker
40*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
41*35238bceSAndroid Build Coastguard Worker        }
42*35238bceSAndroid Build Coastguard Worker    ""
43*35238bceSAndroid Build Coastguard Workerend
44*35238bceSAndroid Build Coastguard Worker
45*35238bceSAndroid Build Coastguard Workercase condition_bool
46*35238bceSAndroid Build Coastguard Worker    version 300 es
47*35238bceSAndroid Build Coastguard Worker    expect compile_fail
48*35238bceSAndroid Build Coastguard Worker    both ""
49*35238bceSAndroid Build Coastguard Worker        #version 300 es
50*35238bceSAndroid Build Coastguard Worker        precision mediump float;
51*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
52*35238bceSAndroid Build Coastguard Worker
53*35238bceSAndroid Build Coastguard Worker        void main ()
54*35238bceSAndroid Build Coastguard Worker        {
55*35238bceSAndroid Build Coastguard Worker            bool c = true;
56*35238bceSAndroid Build Coastguard Worker            switch (c)
57*35238bceSAndroid Build Coastguard Worker            {
58*35238bceSAndroid Build Coastguard Worker                case 1:
59*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
60*35238bceSAndroid Build Coastguard Worker            }
61*35238bceSAndroid Build Coastguard Worker
62*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
63*35238bceSAndroid Build Coastguard Worker        }
64*35238bceSAndroid Build Coastguard Worker    ""
65*35238bceSAndroid Build Coastguard Workerend
66*35238bceSAndroid Build Coastguard Worker
67*35238bceSAndroid Build Coastguard Workercase condition_ivec2
68*35238bceSAndroid Build Coastguard Worker    version 300 es
69*35238bceSAndroid Build Coastguard Worker    expect compile_fail
70*35238bceSAndroid Build Coastguard Worker    both ""
71*35238bceSAndroid Build Coastguard Worker        #version 300 es
72*35238bceSAndroid Build Coastguard Worker        precision mediump float;
73*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
74*35238bceSAndroid Build Coastguard Worker
75*35238bceSAndroid Build Coastguard Worker        void main ()
76*35238bceSAndroid Build Coastguard Worker        {
77*35238bceSAndroid Build Coastguard Worker            ivec2 c = ivec2(1, 1);
78*35238bceSAndroid Build Coastguard Worker            switch (c)
79*35238bceSAndroid Build Coastguard Worker            {
80*35238bceSAndroid Build Coastguard Worker                case 1:
81*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
82*35238bceSAndroid Build Coastguard Worker            }
83*35238bceSAndroid Build Coastguard Worker
84*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
85*35238bceSAndroid Build Coastguard Worker        }
86*35238bceSAndroid Build Coastguard Worker    ""
87*35238bceSAndroid Build Coastguard Workerend
88*35238bceSAndroid Build Coastguard Worker
89*35238bceSAndroid Build Coastguard Workercase condition_struct
90*35238bceSAndroid Build Coastguard Worker    version 300 es
91*35238bceSAndroid Build Coastguard Worker    expect compile_fail
92*35238bceSAndroid Build Coastguard Worker    both ""
93*35238bceSAndroid Build Coastguard Worker        #version 300 es
94*35238bceSAndroid Build Coastguard Worker        precision mediump float;
95*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
96*35238bceSAndroid Build Coastguard Worker
97*35238bceSAndroid Build Coastguard Worker        struct S { int m; };
98*35238bceSAndroid Build Coastguard Worker
99*35238bceSAndroid Build Coastguard Worker        void main ()
100*35238bceSAndroid Build Coastguard Worker        {
101*35238bceSAndroid Build Coastguard Worker            S c = S(1);
102*35238bceSAndroid Build Coastguard Worker            switch (c)
103*35238bceSAndroid Build Coastguard Worker            {
104*35238bceSAndroid Build Coastguard Worker                case 1:
105*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
106*35238bceSAndroid Build Coastguard Worker            }
107*35238bceSAndroid Build Coastguard Worker
108*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
109*35238bceSAndroid Build Coastguard Worker        }
110*35238bceSAndroid Build Coastguard Worker    ""
111*35238bceSAndroid Build Coastguard Workerend
112*35238bceSAndroid Build Coastguard Worker
113*35238bceSAndroid Build Coastguard Workercase duplicate_label
114*35238bceSAndroid Build Coastguard Worker    version 300 es
115*35238bceSAndroid Build Coastguard Worker    expect compile_fail
116*35238bceSAndroid Build Coastguard Worker    both ""
117*35238bceSAndroid Build Coastguard Worker        #version 300 es
118*35238bceSAndroid Build Coastguard Worker        precision mediump float;
119*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
120*35238bceSAndroid Build Coastguard Worker
121*35238bceSAndroid Build Coastguard Worker        void main ()
122*35238bceSAndroid Build Coastguard Worker        {
123*35238bceSAndroid Build Coastguard Worker            int c = 1;
124*35238bceSAndroid Build Coastguard Worker            switch (c)
125*35238bceSAndroid Build Coastguard Worker            {
126*35238bceSAndroid Build Coastguard Worker                case 1:
127*35238bceSAndroid Build Coastguard Worker                case 1:
128*35238bceSAndroid Build Coastguard Worker                    break;
129*35238bceSAndroid Build Coastguard Worker            }
130*35238bceSAndroid Build Coastguard Worker
131*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
132*35238bceSAndroid Build Coastguard Worker        }
133*35238bceSAndroid Build Coastguard Worker    ""
134*35238bceSAndroid Build Coastguard Workerend
135*35238bceSAndroid Build Coastguard Worker
136*35238bceSAndroid Build Coastguard Workercase float_label
137*35238bceSAndroid Build Coastguard Worker    version 300 es
138*35238bceSAndroid Build Coastguard Worker    expect compile_fail
139*35238bceSAndroid Build Coastguard Worker    both ""
140*35238bceSAndroid Build Coastguard Worker        #version 300 es
141*35238bceSAndroid Build Coastguard Worker        precision mediump float;
142*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
143*35238bceSAndroid Build Coastguard Worker
144*35238bceSAndroid Build Coastguard Worker        void main ()
145*35238bceSAndroid Build Coastguard Worker        {
146*35238bceSAndroid Build Coastguard Worker            int c = 1;
147*35238bceSAndroid Build Coastguard Worker            switch (c)
148*35238bceSAndroid Build Coastguard Worker            {
149*35238bceSAndroid Build Coastguard Worker                case 1.0:
150*35238bceSAndroid Build Coastguard Worker                    break;
151*35238bceSAndroid Build Coastguard Worker            }
152*35238bceSAndroid Build Coastguard Worker
153*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
154*35238bceSAndroid Build Coastguard Worker        }
155*35238bceSAndroid Build Coastguard Worker    ""
156*35238bceSAndroid Build Coastguard Workerend
157*35238bceSAndroid Build Coastguard Worker
158*35238bceSAndroid Build Coastguard Workercase non_const_int_label
159*35238bceSAndroid Build Coastguard Worker    version 300 es
160*35238bceSAndroid Build Coastguard Worker    expect compile_fail
161*35238bceSAndroid Build Coastguard Worker    both ""
162*35238bceSAndroid Build Coastguard Worker        #version 300 es
163*35238bceSAndroid Build Coastguard Worker        precision mediump float;
164*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
165*35238bceSAndroid Build Coastguard Worker
166*35238bceSAndroid Build Coastguard Worker        void main ()
167*35238bceSAndroid Build Coastguard Worker        {
168*35238bceSAndroid Build Coastguard Worker            int c = 1;
169*35238bceSAndroid Build Coastguard Worker            int l = 2;
170*35238bceSAndroid Build Coastguard Worker            switch (c)
171*35238bceSAndroid Build Coastguard Worker            {
172*35238bceSAndroid Build Coastguard Worker                case l:
173*35238bceSAndroid Build Coastguard Worker                    break;
174*35238bceSAndroid Build Coastguard Worker            }
175*35238bceSAndroid Build Coastguard Worker
176*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
177*35238bceSAndroid Build Coastguard Worker        }
178*35238bceSAndroid Build Coastguard Worker    ""
179*35238bceSAndroid Build Coastguard Workerend
180*35238bceSAndroid Build Coastguard Worker
181*35238bceSAndroid Build Coastguard Workercase statement_before_label
182*35238bceSAndroid Build Coastguard Worker    version 300 es
183*35238bceSAndroid Build Coastguard Worker    expect compile_fail
184*35238bceSAndroid Build Coastguard Worker    both ""
185*35238bceSAndroid Build Coastguard Worker        #version 300 es
186*35238bceSAndroid Build Coastguard Worker        precision mediump float;
187*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
188*35238bceSAndroid Build Coastguard Worker
189*35238bceSAndroid Build Coastguard Worker        void main ()
190*35238bceSAndroid Build Coastguard Worker        {
191*35238bceSAndroid Build Coastguard Worker            switch (1)
192*35238bceSAndroid Build Coastguard Worker            {
193*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
194*35238bceSAndroid Build Coastguard Worker                case 1:
195*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(0.0);
196*35238bceSAndroid Build Coastguard Worker            }
197*35238bceSAndroid Build Coastguard Worker
198*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
199*35238bceSAndroid Build Coastguard Worker        }
200*35238bceSAndroid Build Coastguard Worker    ""
201*35238bceSAndroid Build Coastguard Workerend
202*35238bceSAndroid Build Coastguard Worker
203*35238bceSAndroid Build Coastguard Workercase statement_before_default_label
204*35238bceSAndroid Build Coastguard Worker    version 300 es
205*35238bceSAndroid Build Coastguard Worker    expect compile_fail
206*35238bceSAndroid Build Coastguard Worker    both ""
207*35238bceSAndroid Build Coastguard Worker        #version 300 es
208*35238bceSAndroid Build Coastguard Worker        precision mediump float;
209*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
210*35238bceSAndroid Build Coastguard Worker
211*35238bceSAndroid Build Coastguard Worker        void main ()
212*35238bceSAndroid Build Coastguard Worker        {
213*35238bceSAndroid Build Coastguard Worker            switch (1)
214*35238bceSAndroid Build Coastguard Worker            {
215*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
216*35238bceSAndroid Build Coastguard Worker                default:
217*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(0.0);
218*35238bceSAndroid Build Coastguard Worker            }
219*35238bceSAndroid Build Coastguard Worker
220*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
221*35238bceSAndroid Build Coastguard Worker        }
222*35238bceSAndroid Build Coastguard Worker    ""
223*35238bceSAndroid Build Coastguard Workerend
224*35238bceSAndroid Build Coastguard Worker
225*35238bceSAndroid Build Coastguard Workercase no_statement_after_label
226*35238bceSAndroid Build Coastguard Worker    version 300 es
227*35238bceSAndroid Build Coastguard Worker    expect compile_fail
228*35238bceSAndroid Build Coastguard Worker    both ""
229*35238bceSAndroid Build Coastguard Worker        #version 300 es
230*35238bceSAndroid Build Coastguard Worker        precision mediump float;
231*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
232*35238bceSAndroid Build Coastguard Worker
233*35238bceSAndroid Build Coastguard Worker        void main ()
234*35238bceSAndroid Build Coastguard Worker        {
235*35238bceSAndroid Build Coastguard Worker            switch (1)
236*35238bceSAndroid Build Coastguard Worker            {
237*35238bceSAndroid Build Coastguard Worker                case 0:
238*35238bceSAndroid Build Coastguard Worker                    break;
239*35238bceSAndroid Build Coastguard Worker                case 1:
240*35238bceSAndroid Build Coastguard Worker            }
241*35238bceSAndroid Build Coastguard Worker
242*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
243*35238bceSAndroid Build Coastguard Worker        }
244*35238bceSAndroid Build Coastguard Worker    ""
245*35238bceSAndroid Build Coastguard Workerend
246*35238bceSAndroid Build Coastguard Worker
247*35238bceSAndroid Build Coastguard Workercase no_statement_after_default_label
248*35238bceSAndroid Build Coastguard Worker    version 300 es
249*35238bceSAndroid Build Coastguard Worker    expect compile_fail
250*35238bceSAndroid Build Coastguard Worker    both ""
251*35238bceSAndroid Build Coastguard Worker        #version 300 es
252*35238bceSAndroid Build Coastguard Worker        precision mediump float;
253*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
254*35238bceSAndroid Build Coastguard Worker
255*35238bceSAndroid Build Coastguard Worker        void main ()
256*35238bceSAndroid Build Coastguard Worker        {
257*35238bceSAndroid Build Coastguard Worker            switch (1)
258*35238bceSAndroid Build Coastguard Worker            {
259*35238bceSAndroid Build Coastguard Worker                case 0:
260*35238bceSAndroid Build Coastguard Worker                    break;
261*35238bceSAndroid Build Coastguard Worker                default:
262*35238bceSAndroid Build Coastguard Worker            }
263*35238bceSAndroid Build Coastguard Worker
264*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
265*35238bceSAndroid Build Coastguard Worker        }
266*35238bceSAndroid Build Coastguard Worker    ""
267*35238bceSAndroid Build Coastguard Workerend
268*35238bceSAndroid Build Coastguard Worker
269*35238bceSAndroid Build Coastguard Workercase case_in_if
270*35238bceSAndroid Build Coastguard Worker    version 300 es
271*35238bceSAndroid Build Coastguard Worker    expect compile_fail
272*35238bceSAndroid Build Coastguard Worker    both ""
273*35238bceSAndroid Build Coastguard Worker        #version 300 es
274*35238bceSAndroid Build Coastguard Worker        precision mediump float;
275*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
276*35238bceSAndroid Build Coastguard Worker
277*35238bceSAndroid Build Coastguard Worker        void main ()
278*35238bceSAndroid Build Coastguard Worker        {
279*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
280*35238bceSAndroid Build Coastguard Worker            switch (1)
281*35238bceSAndroid Build Coastguard Worker            {
282*35238bceSAndroid Build Coastguard Worker                case 0:
283*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
284*35238bceSAndroid Build Coastguard Worker                    if (f > 0.0)
285*35238bceSAndroid Build Coastguard Worker                    {
286*35238bceSAndroid Build Coastguard Worker                        case 1:
287*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
288*35238bceSAndroid Build Coastguard Worker                    }
289*35238bceSAndroid Build Coastguard Worker                    break;
290*35238bceSAndroid Build Coastguard Worker                case 2:
291*35238bceSAndroid Build Coastguard Worker                    break;
292*35238bceSAndroid Build Coastguard Worker            }
293*35238bceSAndroid Build Coastguard Worker
294*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
295*35238bceSAndroid Build Coastguard Worker        }
296*35238bceSAndroid Build Coastguard Worker    ""
297*35238bceSAndroid Build Coastguard Workerend
298*35238bceSAndroid Build Coastguard Worker
299*35238bceSAndroid Build Coastguard Workercase default_in_if
300*35238bceSAndroid Build Coastguard Worker    version 300 es
301*35238bceSAndroid Build Coastguard Worker    expect compile_fail
302*35238bceSAndroid Build Coastguard Worker    both ""
303*35238bceSAndroid Build Coastguard Worker        #version 300 es
304*35238bceSAndroid Build Coastguard Worker        precision mediump float;
305*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
306*35238bceSAndroid Build Coastguard Worker
307*35238bceSAndroid Build Coastguard Worker        void main ()
308*35238bceSAndroid Build Coastguard Worker        {
309*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
310*35238bceSAndroid Build Coastguard Worker            switch (1)
311*35238bceSAndroid Build Coastguard Worker            {
312*35238bceSAndroid Build Coastguard Worker                case 0:
313*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
314*35238bceSAndroid Build Coastguard Worker                    if (f > 0.0)
315*35238bceSAndroid Build Coastguard Worker                    {
316*35238bceSAndroid Build Coastguard Worker                        default:
317*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
318*35238bceSAndroid Build Coastguard Worker                    }
319*35238bceSAndroid Build Coastguard Worker                    break;
320*35238bceSAndroid Build Coastguard Worker                case 2:
321*35238bceSAndroid Build Coastguard Worker                    break;
322*35238bceSAndroid Build Coastguard Worker            }
323*35238bceSAndroid Build Coastguard Worker
324*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
325*35238bceSAndroid Build Coastguard Worker        }
326*35238bceSAndroid Build Coastguard Worker    ""
327*35238bceSAndroid Build Coastguard Workerend
328*35238bceSAndroid Build Coastguard Worker
329*35238bceSAndroid Build Coastguard Workercase case_in_for_loop
330*35238bceSAndroid Build Coastguard Worker    version 300 es
331*35238bceSAndroid Build Coastguard Worker    expect compile_fail
332*35238bceSAndroid Build Coastguard Worker    both ""
333*35238bceSAndroid Build Coastguard Worker        #version 300 es
334*35238bceSAndroid Build Coastguard Worker        precision mediump float;
335*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
336*35238bceSAndroid Build Coastguard Worker
337*35238bceSAndroid Build Coastguard Worker        void main ()
338*35238bceSAndroid Build Coastguard Worker        {
339*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
340*35238bceSAndroid Build Coastguard Worker            switch (1)
341*35238bceSAndroid Build Coastguard Worker            {
342*35238bceSAndroid Build Coastguard Worker                case 0:
343*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
344*35238bceSAndroid Build Coastguard Worker                    for (int i = 0; i < 2; i++)
345*35238bceSAndroid Build Coastguard Worker                    {
346*35238bceSAndroid Build Coastguard Worker                        case 1:
347*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
348*35238bceSAndroid Build Coastguard Worker                    }
349*35238bceSAndroid Build Coastguard Worker                    break;
350*35238bceSAndroid Build Coastguard Worker                case 2:
351*35238bceSAndroid Build Coastguard Worker                    break;
352*35238bceSAndroid Build Coastguard Worker            }
353*35238bceSAndroid Build Coastguard Worker
354*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
355*35238bceSAndroid Build Coastguard Worker        }
356*35238bceSAndroid Build Coastguard Worker    ""
357*35238bceSAndroid Build Coastguard Workerend
358*35238bceSAndroid Build Coastguard Worker
359*35238bceSAndroid Build Coastguard Workercase default_in_for_loop
360*35238bceSAndroid Build Coastguard Worker    version 300 es
361*35238bceSAndroid Build Coastguard Worker    expect compile_fail
362*35238bceSAndroid Build Coastguard Worker    both ""
363*35238bceSAndroid Build Coastguard Worker        #version 300 es
364*35238bceSAndroid Build Coastguard Worker        precision mediump float;
365*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
366*35238bceSAndroid Build Coastguard Worker
367*35238bceSAndroid Build Coastguard Worker        void main ()
368*35238bceSAndroid Build Coastguard Worker        {
369*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
370*35238bceSAndroid Build Coastguard Worker            switch (1)
371*35238bceSAndroid Build Coastguard Worker            {
372*35238bceSAndroid Build Coastguard Worker                case 0:
373*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
374*35238bceSAndroid Build Coastguard Worker                    for (int i = 0; i < 2; i++)
375*35238bceSAndroid Build Coastguard Worker                    {
376*35238bceSAndroid Build Coastguard Worker                        default:
377*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
378*35238bceSAndroid Build Coastguard Worker                    }
379*35238bceSAndroid Build Coastguard Worker                    break;
380*35238bceSAndroid Build Coastguard Worker                case 2:
381*35238bceSAndroid Build Coastguard Worker                    break;
382*35238bceSAndroid Build Coastguard Worker            }
383*35238bceSAndroid Build Coastguard Worker
384*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
385*35238bceSAndroid Build Coastguard Worker        }
386*35238bceSAndroid Build Coastguard Worker    ""
387*35238bceSAndroid Build Coastguard Workerend
388*35238bceSAndroid Build Coastguard Worker
389*35238bceSAndroid Build Coastguard Workercase case_in_while_loop
390*35238bceSAndroid Build Coastguard Worker    version 300 es
391*35238bceSAndroid Build Coastguard Worker    expect compile_fail
392*35238bceSAndroid Build Coastguard Worker    both ""
393*35238bceSAndroid Build Coastguard Worker        #version 300 es
394*35238bceSAndroid Build Coastguard Worker        precision mediump float;
395*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
396*35238bceSAndroid Build Coastguard Worker
397*35238bceSAndroid Build Coastguard Worker        void main ()
398*35238bceSAndroid Build Coastguard Worker        {
399*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
400*35238bceSAndroid Build Coastguard Worker            switch (1)
401*35238bceSAndroid Build Coastguard Worker            {
402*35238bceSAndroid Build Coastguard Worker                case 0:
403*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
404*35238bceSAndroid Build Coastguard Worker                    while (f > 0.0)
405*35238bceSAndroid Build Coastguard Worker                    {
406*35238bceSAndroid Build Coastguard Worker                        case 1:
407*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
408*35238bceSAndroid Build Coastguard Worker                    }
409*35238bceSAndroid Build Coastguard Worker                    break;
410*35238bceSAndroid Build Coastguard Worker                case 2:
411*35238bceSAndroid Build Coastguard Worker                    break;
412*35238bceSAndroid Build Coastguard Worker            }
413*35238bceSAndroid Build Coastguard Worker
414*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
415*35238bceSAndroid Build Coastguard Worker        }
416*35238bceSAndroid Build Coastguard Worker    ""
417*35238bceSAndroid Build Coastguard Workerend
418*35238bceSAndroid Build Coastguard Worker
419*35238bceSAndroid Build Coastguard Workercase default_in_while_loop
420*35238bceSAndroid Build Coastguard Worker    version 300 es
421*35238bceSAndroid Build Coastguard Worker    expect compile_fail
422*35238bceSAndroid Build Coastguard Worker    both ""
423*35238bceSAndroid Build Coastguard Worker        #version 300 es
424*35238bceSAndroid Build Coastguard Worker        precision mediump float;
425*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
426*35238bceSAndroid Build Coastguard Worker
427*35238bceSAndroid Build Coastguard Worker        void main ()
428*35238bceSAndroid Build Coastguard Worker        {
429*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
430*35238bceSAndroid Build Coastguard Worker            switch (1)
431*35238bceSAndroid Build Coastguard Worker            {
432*35238bceSAndroid Build Coastguard Worker                case 0:
433*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
434*35238bceSAndroid Build Coastguard Worker                    while (f > 0.0)
435*35238bceSAndroid Build Coastguard Worker                    {
436*35238bceSAndroid Build Coastguard Worker                        default:
437*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
438*35238bceSAndroid Build Coastguard Worker                    }
439*35238bceSAndroid Build Coastguard Worker                    break;
440*35238bceSAndroid Build Coastguard Worker                case 2:
441*35238bceSAndroid Build Coastguard Worker                    break;
442*35238bceSAndroid Build Coastguard Worker            }
443*35238bceSAndroid Build Coastguard Worker
444*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
445*35238bceSAndroid Build Coastguard Worker        }
446*35238bceSAndroid Build Coastguard Worker    ""
447*35238bceSAndroid Build Coastguard Workerend
448*35238bceSAndroid Build Coastguard Worker
449*35238bceSAndroid Build Coastguard Workercase case_in_do_while_loop
450*35238bceSAndroid Build Coastguard Worker    version 300 es
451*35238bceSAndroid Build Coastguard Worker    expect compile_fail
452*35238bceSAndroid Build Coastguard Worker    both ""
453*35238bceSAndroid Build Coastguard Worker        #version 300 es
454*35238bceSAndroid Build Coastguard Worker        precision mediump float;
455*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
456*35238bceSAndroid Build Coastguard Worker
457*35238bceSAndroid Build Coastguard Worker        void main ()
458*35238bceSAndroid Build Coastguard Worker        {
459*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
460*35238bceSAndroid Build Coastguard Worker            switch (1)
461*35238bceSAndroid Build Coastguard Worker            {
462*35238bceSAndroid Build Coastguard Worker                case 0:
463*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
464*35238bceSAndroid Build Coastguard Worker                    do
465*35238bceSAndroid Build Coastguard Worker                    {
466*35238bceSAndroid Build Coastguard Worker                        case 1:
467*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
468*35238bceSAndroid Build Coastguard Worker                    } while (f > 0.0);
469*35238bceSAndroid Build Coastguard Worker                    break;
470*35238bceSAndroid Build Coastguard Worker                case 2:
471*35238bceSAndroid Build Coastguard Worker                    break;
472*35238bceSAndroid Build Coastguard Worker            }
473*35238bceSAndroid Build Coastguard Worker
474*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
475*35238bceSAndroid Build Coastguard Worker        }
476*35238bceSAndroid Build Coastguard Worker    ""
477*35238bceSAndroid Build Coastguard Workerend
478*35238bceSAndroid Build Coastguard Worker
479*35238bceSAndroid Build Coastguard Workercase default_in_do_while_loop
480*35238bceSAndroid Build Coastguard Worker    version 300 es
481*35238bceSAndroid Build Coastguard Worker    expect compile_fail
482*35238bceSAndroid Build Coastguard Worker    both ""
483*35238bceSAndroid Build Coastguard Worker        #version 300 es
484*35238bceSAndroid Build Coastguard Worker        precision mediump float;
485*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
486*35238bceSAndroid Build Coastguard Worker
487*35238bceSAndroid Build Coastguard Worker        void main ()
488*35238bceSAndroid Build Coastguard Worker        {
489*35238bceSAndroid Build Coastguard Worker            float f = 1.0;
490*35238bceSAndroid Build Coastguard Worker            switch (1)
491*35238bceSAndroid Build Coastguard Worker            {
492*35238bceSAndroid Build Coastguard Worker                case 0:
493*35238bceSAndroid Build Coastguard Worker                    f = 0.0;
494*35238bceSAndroid Build Coastguard Worker                    do
495*35238bceSAndroid Build Coastguard Worker                    {
496*35238bceSAndroid Build Coastguard Worker                        default:
497*35238bceSAndroid Build Coastguard Worker                            f *= 2.0;
498*35238bceSAndroid Build Coastguard Worker                    } while (f > 0.0);
499*35238bceSAndroid Build Coastguard Worker                    break;
500*35238bceSAndroid Build Coastguard Worker                case 2:
501*35238bceSAndroid Build Coastguard Worker                    break;
502*35238bceSAndroid Build Coastguard Worker            }
503*35238bceSAndroid Build Coastguard Worker
504*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
505*35238bceSAndroid Build Coastguard Worker        }
506*35238bceSAndroid Build Coastguard Worker    ""
507*35238bceSAndroid Build Coastguard Workerend
508*35238bceSAndroid Build Coastguard Worker
509*35238bceSAndroid Build Coastguard Workercase missing_colon
510*35238bceSAndroid Build Coastguard Worker    version 300 es
511*35238bceSAndroid Build Coastguard Worker    expect compile_fail
512*35238bceSAndroid Build Coastguard Worker    both ""
513*35238bceSAndroid Build Coastguard Worker        #version 300 es
514*35238bceSAndroid Build Coastguard Worker        precision mediump float;
515*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
516*35238bceSAndroid Build Coastguard Worker
517*35238bceSAndroid Build Coastguard Worker        void main ()
518*35238bceSAndroid Build Coastguard Worker        {
519*35238bceSAndroid Build Coastguard Worker            switch (1)
520*35238bceSAndroid Build Coastguard Worker            {
521*35238bceSAndroid Build Coastguard Worker                case 1
522*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
523*35238bceSAndroid Build Coastguard Worker            }
524*35238bceSAndroid Build Coastguard Worker
525*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
526*35238bceSAndroid Build Coastguard Worker        }
527*35238bceSAndroid Build Coastguard Worker    ""
528*35238bceSAndroid Build Coastguard Workerend
529*35238bceSAndroid Build Coastguard Worker
530*35238bceSAndroid Build Coastguard Workercase missing_opening_brace
531*35238bceSAndroid Build Coastguard Worker    version 300 es
532*35238bceSAndroid Build Coastguard Worker    expect compile_fail
533*35238bceSAndroid Build Coastguard Worker    both ""
534*35238bceSAndroid Build Coastguard Worker        #version 300 es
535*35238bceSAndroid Build Coastguard Worker        precision mediump float;
536*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
537*35238bceSAndroid Build Coastguard Worker
538*35238bceSAndroid Build Coastguard Worker        void main ()
539*35238bceSAndroid Build Coastguard Worker        {
540*35238bceSAndroid Build Coastguard Worker            switch (1)
541*35238bceSAndroid Build Coastguard Worker                case 1:
542*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
543*35238bceSAndroid Build Coastguard Worker            }
544*35238bceSAndroid Build Coastguard Worker
545*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
546*35238bceSAndroid Build Coastguard Worker        }
547*35238bceSAndroid Build Coastguard Worker    ""
548*35238bceSAndroid Build Coastguard Workerend
549*35238bceSAndroid Build Coastguard Worker
550*35238bceSAndroid Build Coastguard Workercase missing_closing_brace
551*35238bceSAndroid Build Coastguard Worker    version 300 es
552*35238bceSAndroid Build Coastguard Worker    expect compile_fail
553*35238bceSAndroid Build Coastguard Worker    both ""
554*35238bceSAndroid Build Coastguard Worker        #version 300 es
555*35238bceSAndroid Build Coastguard Worker        precision mediump float;
556*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
557*35238bceSAndroid Build Coastguard Worker
558*35238bceSAndroid Build Coastguard Worker        void main ()
559*35238bceSAndroid Build Coastguard Worker        {
560*35238bceSAndroid Build Coastguard Worker            switch (1)
561*35238bceSAndroid Build Coastguard Worker            {
562*35238bceSAndroid Build Coastguard Worker                case 1:
563*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
564*35238bceSAndroid Build Coastguard Worker
565*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
566*35238bceSAndroid Build Coastguard Worker        }
567*35238bceSAndroid Build Coastguard Worker    ""
568*35238bceSAndroid Build Coastguard Workerend
569*35238bceSAndroid Build Coastguard Worker
570*35238bceSAndroid Build Coastguard Workercase double_case
571*35238bceSAndroid Build Coastguard Worker    version 300 es
572*35238bceSAndroid Build Coastguard Worker    expect compile_fail
573*35238bceSAndroid Build Coastguard Worker    both ""
574*35238bceSAndroid Build Coastguard Worker        #version 300 es
575*35238bceSAndroid Build Coastguard Worker        precision mediump float;
576*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
577*35238bceSAndroid Build Coastguard Worker
578*35238bceSAndroid Build Coastguard Worker        void main ()
579*35238bceSAndroid Build Coastguard Worker        {
580*35238bceSAndroid Build Coastguard Worker            switch (1)
581*35238bceSAndroid Build Coastguard Worker            {
582*35238bceSAndroid Build Coastguard Worker                case case 1:
583*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
584*35238bceSAndroid Build Coastguard Worker            }
585*35238bceSAndroid Build Coastguard Worker
586*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
587*35238bceSAndroid Build Coastguard Worker        }
588*35238bceSAndroid Build Coastguard Worker    ""
589*35238bceSAndroid Build Coastguard Workerend
590*35238bceSAndroid Build Coastguard Worker
591*35238bceSAndroid Build Coastguard Workercase double_default_1
592*35238bceSAndroid Build Coastguard Worker    version 300 es
593*35238bceSAndroid Build Coastguard Worker    expect compile_fail
594*35238bceSAndroid Build Coastguard Worker    both ""
595*35238bceSAndroid Build Coastguard Worker        #version 300 es
596*35238bceSAndroid Build Coastguard Worker        precision mediump float;
597*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
598*35238bceSAndroid Build Coastguard Worker
599*35238bceSAndroid Build Coastguard Worker        void main ()
600*35238bceSAndroid Build Coastguard Worker        {
601*35238bceSAndroid Build Coastguard Worker            switch (1)
602*35238bceSAndroid Build Coastguard Worker            {
603*35238bceSAndroid Build Coastguard Worker                default:
604*35238bceSAndroid Build Coastguard Worker                    break;
605*35238bceSAndroid Build Coastguard Worker                default:
606*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
607*35238bceSAndroid Build Coastguard Worker            }
608*35238bceSAndroid Build Coastguard Worker
609*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
610*35238bceSAndroid Build Coastguard Worker        }
611*35238bceSAndroid Build Coastguard Worker    ""
612*35238bceSAndroid Build Coastguard Workerend
613*35238bceSAndroid Build Coastguard Worker
614*35238bceSAndroid Build Coastguard Workercase double_default_2
615*35238bceSAndroid Build Coastguard Worker    version 300 es
616*35238bceSAndroid Build Coastguard Worker    expect compile_fail
617*35238bceSAndroid Build Coastguard Worker    both ""
618*35238bceSAndroid Build Coastguard Worker        #version 300 es
619*35238bceSAndroid Build Coastguard Worker        precision mediump float;
620*35238bceSAndroid Build Coastguard Worker        ${DECLARATIONS}
621*35238bceSAndroid Build Coastguard Worker
622*35238bceSAndroid Build Coastguard Worker        void main ()
623*35238bceSAndroid Build Coastguard Worker        {
624*35238bceSAndroid Build Coastguard Worker            switch (1)
625*35238bceSAndroid Build Coastguard Worker            {
626*35238bceSAndroid Build Coastguard Worker                default default:
627*35238bceSAndroid Build Coastguard Worker                    ${POSITION_FRAG_COLOR} = vec4(1.0);
628*35238bceSAndroid Build Coastguard Worker            }
629*35238bceSAndroid Build Coastguard Worker
630*35238bceSAndroid Build Coastguard Worker            ${OUTPUT}
631*35238bceSAndroid Build Coastguard Worker        }
632*35238bceSAndroid Build Coastguard Worker    ""
633*35238bceSAndroid Build Coastguard Workerend
634