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