xref: /aosp_15_r20/external/deqp/data/gles3/shaders/constants.test (revision 35238bce31c2a825756842865a792f8cf7f89930)
1case float_input
2    version 300 es
3    values
4    {
5        input float in0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
6        output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 | -1.123 | -0.75 | 512.0 | -72.13 | -199.91 ];
7    }
8
9    both ""
10        #version 300 es
11        precision highp float;
12        ${DECLARATIONS}
13        void main()
14        {
15            out0 = in0;
16            ${OUTPUT}
17        }
18    ""
19end
20
21case float_uniform
22    version 300 es
23    values
24    {
25        uniform float uni0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
26        output float out0 = [ 1.123 | 0.75 | -512.0 | -72.13 | 199.91 ];
27    }
28
29    both ""
30        #version 300 es
31        precision highp float;
32        ${DECLARATIONS}
33        uniform float uni0;
34        void main()
35        {
36            out0 = uni0;
37            ${OUTPUT}
38        }
39    ""
40end
41
42case float_0
43    version 300 es
44    values { output float out0 = 1.123; }
45    both ""
46        #version 300 es
47        precision highp float;
48        ${DECLARATIONS}
49        void main()
50        {
51            out0 = +1.123;
52            ${OUTPUT}
53        }
54    ""
55end
56
57case float_1
58    version 300 es
59    values { output float out0 = -1.123; }
60    both ""
61        #version 300 es
62        precision highp float;
63        ${DECLARATIONS}
64        void main()
65        {
66            out0 = -1.123;
67            ${OUTPUT}
68        }
69    ""
70end
71
72case float_2
73    version 300 es
74    values { output float out0 = 123.0; }
75    both ""
76        #version 300 es
77        precision highp float;
78        ${DECLARATIONS}
79        void main()
80        {
81            out0 = 123.;
82            ${OUTPUT}
83        }
84    ""
85end
86
87case float_3
88    version 300 es
89    values { output float out0 = 0.123; }
90    both ""
91        #version 300 es
92        precision highp float;
93        ${DECLARATIONS}
94        void main()
95        {
96            out0 = .123;
97            ${OUTPUT}
98        }
99    ""
100end
101
102case float_4
103    version 300 es
104    values { output float out0 = 123.0; }
105    both ""
106        #version 300 es
107        precision highp float;
108        ${DECLARATIONS}
109        void main()
110        {
111            out0 = 1.23e+2;
112            ${OUTPUT}
113        }
114    ""
115end
116
117case float_5
118    version 300 es
119    values { output float out0 = -123.0; }
120    both ""
121        #version 300 es
122        precision highp float;
123        ${DECLARATIONS}
124        void main()
125        {
126            out0 = -1.23E+2;
127            ${OUTPUT}
128        }
129    ""
130end
131
132case float_6
133    version 300 es
134    values { output float out0 = -123.0; }
135    both ""
136        #version 300 es
137        precision highp float;
138        ${DECLARATIONS}
139        void main()
140        {
141            out0 = -1.23e2;
142            ${OUTPUT}
143        }
144    ""
145end
146
147case float_7
148    version 300 es
149    values { output float out0 = 0.123; }
150    both ""
151        #version 300 es
152        precision highp float;
153        ${DECLARATIONS}
154        void main()
155        {
156            out0 = 1.23e-1;
157            ${OUTPUT}
158        }
159    ""
160end
161
162case float_8
163    version 300 es
164    values { output float out0 = 1000.0; }
165    both ""
166        #version 300 es
167        precision highp float;
168        ${DECLARATIONS}
169        void main()
170        {
171            out0 = 1e3;
172            ${OUTPUT}
173        }
174    ""
175end
176
177case float_f_suffix_0
178    version 300 es
179    values { output float out0 = 1.0; }
180    both ""
181        #version 300 es
182        precision mediump float;
183        ${DECLARATIONS}
184        void main ()
185        {
186            ${SETUP}
187            float value = 1.0f;
188            out0 = value;
189            ${OUTPUT}
190        }
191    ""
192end
193
194case float_f_suffix_1
195    version 300 es
196    values { output float out0 = 1.0; }
197    both ""
198        #version 300 es
199        precision mediump float;
200        ${DECLARATIONS}
201        void main ()
202        {
203            ${SETUP}
204            float value = 1.0F;
205            out0 = value;
206            ${OUTPUT}
207        }
208    ""
209end
210
211case int_0
212    version 300 es
213    values { output int out0 = 123; }
214    both ""
215        #version 300 es
216        precision highp float;
217        ${DECLARATIONS}
218        void main()
219        {
220            out0 = 123;
221            ${OUTPUT}
222        }
223    ""
224end
225
226case int_1
227    version 300 es
228    values { output int out0 = -321; }
229    both ""
230        #version 300 es
231        precision highp float;
232        ${DECLARATIONS}
233        void main()
234        {
235            out0 = -321;
236            ${OUTPUT}
237        }
238    ""
239end
240
241case int_2
242    version 300 es
243    values { output int out0 = 123; }
244    both ""
245        #version 300 es
246        precision highp float;
247        ${DECLARATIONS}
248        void main()
249        {
250            out0 = 0x7B;
251            ${OUTPUT}
252        }
253    ""
254end
255
256case int_3
257    version 300 es
258    values { output int out0 = 123; }
259    both ""
260        #version 300 es
261        precision highp float;
262        ${DECLARATIONS}
263        void main()
264        {
265            out0 = 0X7b;
266            ${OUTPUT}
267        }
268    ""
269end
270
271case int_4
272    version 300 es
273    values { output int out0 = 123; }
274    both ""
275        #version 300 es
276        precision highp float;
277        ${DECLARATIONS}
278        void main()
279        {
280            out0 = 0173;
281            ${OUTPUT}
282        }
283    ""
284end
285
286case bool_0
287    version 300 es
288    values { output bool out0 = true; }
289    both ""
290        #version 300 es
291        precision highp float;
292        ${DECLARATIONS}
293        void main()
294        {
295            out0 = true;
296            ${OUTPUT}
297        }
298    ""
299end
300
301case bool_1
302    version 300 es
303    values { output bool out0 = false; }
304    both ""
305        #version 300 es
306        precision highp float;
307        ${DECLARATIONS}
308        void main()
309        {
310            out0 = false;
311            ${OUTPUT}
312        }
313    ""
314end
315
316case const_float_global
317     version 300 es
318     values { output float out0 = 1000.0; }
319
320     both ""
321            #version 300 es
322            precision mediump float;
323            ${DECLARATIONS}
324            const float theConstant = 1000.0;
325            void main()
326            {
327                out0 = theConstant;
328                ${OUTPUT}
329            }
330     ""
331end
332
333case const_float_main
334     version 300 es
335     values { output float out0 = -1000.0; }
336
337     both ""
338            #version 300 es
339            precision mediump float;
340            ${DECLARATIONS}
341            void main()
342            {
343                    const float theConstant = -1000.0;
344                out0 = theConstant;
345                ${OUTPUT}
346            }
347     ""
348end
349
350case const_float_function
351     version 300 es
352     values { output float out0 = -0.012; }
353
354     both ""
355            #version 300 es
356            precision mediump float;
357            ${DECLARATIONS}
358            float func()
359            {
360                    const float theConstant = -0.012;
361                return theConstant;
362            }
363            void main()
364            {
365                out0 = func();
366                ${OUTPUT}
367            }
368     ""
369end
370
371case const_float_scope
372     version 300 es
373     values { output float out0 = 1.0; }
374
375     both ""
376            #version 300 es
377            precision mediump float;
378            ${DECLARATIONS}
379            void main()
380            {
381                {
382                     const float theConstant = 1.0;
383                     out0 = theConstant;
384                }
385                ${OUTPUT}
386            }
387     ""
388end
389
390case const_float_scope_shawdowing_1
391     version 300 es
392     values { output float out0 = 1.0; }
393
394     both ""
395            #version 300 es
396            precision mediump float;
397            ${DECLARATIONS}
398            void main()
399            {
400                const float theConstant = 100.0;
401                {
402                     const float theConstant = 1.0;
403                     out0 = theConstant;
404                }
405                ${OUTPUT}
406            }
407     ""
408end
409
410case const_float_scope_shawdowing_2
411     version 300 es
412     values { output float out0 = 1.0; }
413
414     both ""
415            #version 300 es
416            precision mediump float;
417            ${DECLARATIONS}
418            const float theConstant = 100.0;
419            void main()
420            {
421                {
422                     const float theConstant = 1.0;
423                     out0 = theConstant;
424                }
425                ${OUTPUT}
426            }
427     ""
428end
429
430case const_float_scope_shawdowing_3
431     version 300 es
432     values { output float out0 = 1.0; }
433
434     both ""
435            #version 300 es
436            precision mediump float;
437            ${DECLARATIONS}
438            const float theConstant = 100.0;
439            void main()
440            {
441                const float theConstant = -100.0;
442                {
443                     const float theConstant = 1.0;
444                     out0 = theConstant;
445                }
446                ${OUTPUT}
447            }
448     ""
449end
450
451case const_float_scope_shawdowing_4
452     version 300 es
453     values { output float out0 = 2.0; }
454
455     both ""
456            #version 300 es
457            precision mediump float;
458            ${DECLARATIONS}
459            const float theConstant = 100.0;
460            float func()
461            {
462                const float theConstant = 2.0;
463                return theConstant;
464            }
465            void main()
466            {
467                const float theConstant = -100.0;
468                {
469                     const float theConstant = 1.0;
470                     out0 = func();
471                }
472                ${OUTPUT}
473            }
474     ""
475end
476
477case const_float_operations_with_const
478     version 300 es
479     values { output float out0 = 21.0; }
480
481     both ""
482            #version 300 es
483            precision mediump float;
484            ${DECLARATIONS}
485            const float theGlobalConstant = 10.0;
486            float func()
487            {
488                const float theConstant = 2.0;
489                return theConstant;
490            }
491            void main()
492            {
493                const float theConstant = -100.0;
494                {
495                     const float theConstant = 1.0;
496                     out0 = func() * theGlobalConstant + theConstant;
497                }
498                ${OUTPUT}
499            }
500     ""
501end
502
503case const_float_assignment_1
504     version 300 es
505     values { output float out0 = 10.0; }
506
507     both ""
508            #version 300 es
509            precision mediump float;
510            ${DECLARATIONS}
511            void main()
512            {
513                const float theConstant1 = 10.0;
514                const float theConstant2 = theConstant1;
515                out0 = theConstant2;
516                ${OUTPUT}
517            }
518     ""
519end
520
521case const_float_assignment_2
522     version 300 es
523     values { output float out0 = 10.0; }
524
525     both ""
526            #version 300 es
527            precision mediump float;
528            ${DECLARATIONS}
529            void main()
530            {
531                const float theConstant1 = 10.0;
532                {
533                    const float theConstant2 = theConstant1;
534                    out0 = theConstant2;
535                }
536                ${OUTPUT}
537            }
538     ""
539end
540
541case const_float_assignment_3
542     version 300 es
543     values { output float out0 = 10.0; }
544
545     both ""
546            #version 300 es
547            precision mediump float;
548            ${DECLARATIONS}
549            const float theConstant1 = 10.0;
550            void main()
551            {
552                const float theConstant2 = theConstant1;
553                out0 = theConstant2;
554                ${OUTPUT}
555            }
556     ""
557end
558
559case const_float_assignment_4
560     version 300 es
561     values { output float out0 = 10.0; }
562
563     both ""
564            #version 300 es
565            precision mediump float;
566            ${DECLARATIONS}
567            const float theConstant1 = 10.0;
568            float func()
569            {
570                const float theConstant2 = theConstant1;
571                return theConstant2;
572            }
573            void main()
574            {
575                out0 = func();
576                ${OUTPUT}
577            }
578     ""
579end
580
581case const_float_assign_uniform
582     version 300 es
583     expect compile_fail
584     values { output float out0 = 10.0; }
585     both ""
586            #version 300 es
587            precision mediump float;
588            ${DECLARATIONS}
589            uniform float theUniform;
590            void main()
591            {
592                const float theConstant = theUniform;
593                out0 = theConstant;
594                ${OUTPUT}
595            }
596     ""
597end
598
599case const_float_assign_varying
600     version 300 es
601     expect compile_fail
602     values { output float out0 = 10.0; }
603     vertex ""
604            #version 300 es
605            ${VERTEX_DECLARATIONS}
606            out float theVarying;
607            void main()
608            {
609                theVarying = 1.0;
610                gl_Position = vec(1.0);
611            }
612     ""
613     fragment ""
614            #version 300 es
615            precision mediump float;
616            ${FRAGMENT_DECLARATIONS}
617            in float theVarying;
618            void main()
619            {
620                const float theConstant = theVarying;
621                out0 = theConstant;
622                ${FRAGMENT_OUTPUT}
623            }
624     ""
625end
626
627case const_float_function_gotcha
628     version 300 es
629     desc "Function constant parameters are not really constants, so using them as constant expressions should fail."
630     expect compile_fail
631     values { output float out0 = 20.0; }
632     both ""
633            #version 300 es
634            precision mediump float;
635            ${DECLARATIONS}
636            float func(const float gotcha)
637            {
638                const float theConstant2 = gotcha;
639                return theConstant2*2.0;
640            }
641            void main()
642            {
643                    const float theConstant = 10.0;
644                out0 = func(theConstant);
645                ${OUTPUT}
646            }
647     ""
648end
649
650case const_float_from_int
651     version 300 es
652     values { output float out0 = 10.0; }
653
654     both ""
655            #version 300 es
656            precision mediump float;
657            ${DECLARATIONS}
658            const float theConstant = float(10);
659            void main()
660            {
661                out0 = theConstant;
662                ${OUTPUT}
663            }
664     ""
665end
666
667case const_float_from_vec2
668     version 300 es
669     values { output float out0 = 10.0; }
670
671     both ""
672            #version 300 es
673            precision mediump float;
674            ${DECLARATIONS}
675            const float theConstant = vec2(1.0, 10.0).y;
676            void main()
677            {
678                out0 = theConstant;
679                ${OUTPUT}
680            }
681     ""
682end
683
684case const_float_from_vec3
685     version 300 es
686     values { output float out0 = 10.0; }
687
688     both ""
689            #version 300 es
690            precision mediump float;
691            ${DECLARATIONS}
692            const float theConstant = vec3(1.0, 10.0, 20.0).y;
693            void main()
694            {
695                out0 = theConstant;
696                ${OUTPUT}
697            }
698     ""
699end
700
701case const_float_from_vec4
702     version 300 es
703     values { output float out0 = 10.0; }
704
705     both ""
706            #version 300 es
707            precision mediump float;
708            ${DECLARATIONS}
709            const float theConstant = vec4(1.0, 10.0, 20.0, -10.0).y;
710            void main()
711            {
712                out0 = theConstant;
713                ${OUTPUT}
714            }
715     ""
716end
717
718case const_float_assign_variable_1
719     version 300 es
720     expect compile_fail
721     values { output float out0 = 20.0; }
722     both ""
723            #version 300 es
724            precision mediump float;
725            ${DECLARATIONS}
726            void main()
727            {
728                float theVariable = 20.0;
729                const float theConstant = theVariable;
730                out0 = theConstant;
731                ${OUTPUT}
732            }
733     ""
734end
735
736case const_float_assign_variable_2
737     version 300 es
738     expect compile_fail
739     values { output float out0 = 50.0; }
740     both ""
741            #version 300 es
742            precision mediump float;
743            ${DECLARATIONS}
744            void main()
745            {
746                float theVariable = 20.0;
747                theVariable += 30.0;
748                const float theConstant = theVariable;
749                out0 = theConstant;
750                ${OUTPUT}
751            }
752     ""
753end
754
755case const_float_assign_user_func
756     version 300 es
757     expect compile_fail
758     values { output float out0 = 50.0; }
759     both ""
760            #version 300 es
761            precision mediump float;
762            ${DECLARATIONS}
763            float func()
764            {
765                return 50.0;
766            }
767            void main()
768            {
769                const float theConstant = func();
770                out0 = theConstant;
771                ${OUTPUT}
772            }
773     ""
774end
775
776case const_mat_multiply
777    version 300 es
778    values { output vec2 out0 = vec2(4.0, 4.0); }
779    both ""
780        #version 300 es
781        precision mediump float;
782        ${DECLARATIONS}
783
784        const mat4x2 matA = mat4x2(2.0, 4.0, 8.0, 16.0, 32.0, 64.0, 128.0, 256.0);
785        const mat4x2 matB = mat4x2(1.0/2.0, 1.0/4.0, 1.0/8.0, 1.0/16.0, 1.0/32.0, 1.0/64.0, 1.0/128.0, 1.0/256.0);
786
787        void main()
788        {
789            mat4x2 result = matrixCompMult(matA, matB);
790            out0 = result * vec4(1.0, 1.0, 1.0, 1.0);
791            ${OUTPUT}
792        }
793    ""
794end
795
796case int_decimal
797    version 300 es
798    values { output int out0 = 7; }
799    both ""
800        #version 300 es
801        ${DECLARATIONS}
802        void main ()
803        {
804            ${SETUP}
805            int value = 7;
806            out0 = value;
807            ${OUTPUT}
808        }
809    ""
810end
811
812case int_octal
813    version 300 es
814    values { output int out0 = 15; }
815    both ""
816        #version 300 es
817        ${DECLARATIONS}
818        void main ()
819        {
820            ${SETUP}
821            int value = 017;
822            out0 = value;
823            ${OUTPUT}
824        }
825    ""
826end
827
828case int_hexadecimal_0
829    version 300 es
830    values { output int out0 = 47; }
831    both ""
832        #version 300 es
833        ${DECLARATIONS}
834        void main ()
835        {
836            ${SETUP}
837            int value = 0x2f;
838            out0 = value;
839            ${OUTPUT}
840        }
841    ""
842end
843
844case int_hexadecimal_1
845    version 300 es
846    values { output int out0 = 47; }
847    both ""
848        #version 300 es
849        ${DECLARATIONS}
850        void main ()
851        {
852            ${SETUP}
853            int value = 0X2f;
854            out0 = value;
855            ${OUTPUT}
856        }
857    ""
858end
859
860case uint_decimal_0
861    version 300 es
862    values { output uint out0 = 7; }
863    both ""
864        #version 300 es
865        ${DECLARATIONS}
866        void main ()
867        {
868            ${SETUP}
869            uint value = 7u;
870            out0 = value;
871            ${OUTPUT}
872        }
873    ""
874end
875
876case uint_decimal_1
877    version 300 es
878    values { output uint out0 = 7; }
879    both ""
880        #version 300 es
881        ${DECLARATIONS}
882        void main ()
883        {
884            ${SETUP}
885            uint value = 7U;
886            out0 = value;
887            ${OUTPUT}
888        }
889    ""
890end
891
892case uint_decimal_2
893    version 300 es
894    values { output uint out0 = 0; }
895    both ""
896        #version 300 es
897        ${DECLARATIONS}
898        void main ()
899        {
900            ${SETUP}
901            uint value = 0u;
902            out0 = value;
903            ${OUTPUT}
904        }
905    ""
906end
907
908case uint_decimal_3
909    version 300 es
910    values { output uint out0 = 0; }
911    both ""
912        #version 300 es
913        ${DECLARATIONS}
914        void main ()
915        {
916            ${SETUP}
917            uint value = 0U;
918            out0 = value;
919            ${OUTPUT}
920        }
921    ""
922end
923
924case uint_octal_0
925    version 300 es
926    values { output uint out0 = 15; }
927    both ""
928        #version 300 es
929        ${DECLARATIONS}
930        void main ()
931        {
932            ${SETUP}
933            uint value = 017u;
934            out0 = value;
935            ${OUTPUT}
936        }
937    ""
938end
939
940case uint_octal_1
941    version 300 es
942    values { output uint out0 = 15; }
943    both ""
944        #version 300 es
945        ${DECLARATIONS}
946        void main ()
947        {
948            ${SETUP}
949            uint value = 017U;
950            out0 = value;
951            ${OUTPUT}
952        }
953    ""
954end
955
956case uint_hexadecimal_0
957    version 300 es
958    values { output uint out0 = 47; }
959    both ""
960        #version 300 es
961        ${DECLARATIONS}
962        void main ()
963        {
964            ${SETUP}
965            uint value = 0x2fU;
966            out0 = value;
967            ${OUTPUT}
968        }
969    ""
970end
971
972case uint_hexadecimal_1
973    version 300 es
974    values { output uint out0 = 47; }
975    both ""
976        #version 300 es
977        ${DECLARATIONS}
978        void main ()
979        {
980            ${SETUP}
981            uint value = 0X2fu;
982            out0 = value;
983            ${OUTPUT}
984        }
985    ""
986end
987
988case int_from_uint
989    expect compile_fail
990    version 300 es
991    both ""
992        #version 300 es
993        ${DECLARATIONS}
994        void main ()
995        {
996            int value = 7u;
997            ${POSITION_FRAG_COLOR} = vec4(0.0);
998        }
999    ""
1000end
1001
1002case int_from_uint_2
1003    expect compile_fail
1004    version 300 es
1005    both ""
1006        #version 300 es
1007        ${DECLARATIONS}
1008        void main ()
1009        {
1010            int value = 0u;
1011            ${POSITION_FRAG_COLOR} = vec4(0.0);
1012        }
1013    ""
1014end
1015
1016case uint_from_int
1017    expect compile_fail
1018    version 300 es
1019    both ""
1020        #version 300 es
1021        ${DECLARATIONS}
1022        void main ()
1023        {
1024            uint value = 7;
1025            ${POSITION_FRAG_COLOR} = vec4(0.0);
1026        }
1027    ""
1028end
1029
1030case uint_from_int_2
1031    expect compile_fail
1032    version 300 es
1033    both ""
1034        #version 300 es
1035        ${DECLARATIONS}
1036        void main ()
1037        {
1038            uint value = 0;
1039            ${POSITION_FRAG_COLOR} = vec4(0.0);
1040        }
1041    ""
1042end
1043
1044case int_from_float
1045    expect compile_fail
1046    version 300 es
1047    both ""
1048        #version 300 es
1049        ${DECLARATIONS}
1050        void main ()
1051        {
1052            int value = 7.0;
1053            ${POSITION_FRAG_COLOR} = vec4(0.0);
1054        }
1055    ""
1056end
1057
1058case uint_from_float
1059    expect compile_fail
1060    version 300 es
1061    both ""
1062        #version 300 es
1063        ${DECLARATIONS}
1064        void main ()
1065        {
1066            uint value = 7.0;
1067            ${POSITION_FRAG_COLOR} = vec4(0.0);
1068        }
1069    ""
1070end
1071
1072case bool_from_int
1073    expect compile_fail
1074    version 300 es
1075    both ""
1076        #version 300 es
1077        ${DECLARATIONS}
1078        void main ()
1079        {
1080            bool value = 1;
1081            ${POSITION_FRAG_COLOR} = vec4(0.0);
1082        }
1083    ""
1084end
1085
1086case bool_from_uint
1087    expect compile_fail
1088    version 300 es
1089    both ""
1090        #version 300 es
1091        ${DECLARATIONS}
1092        void main ()
1093        {
1094            bool value = 1u;
1095            ${POSITION_FRAG_COLOR} = vec4(0.0);
1096        }
1097    ""
1098end
1099
1100case bool_from_float
1101    expect compile_fail
1102    version 300 es
1103    both ""
1104        #version 300 es
1105        ${DECLARATIONS}
1106        void main ()
1107        {
1108            bool value = 1.0;
1109            ${POSITION_FRAG_COLOR} = vec4(0.0);
1110        }
1111    ""
1112end
1113
1114case float_int_f_suffix_0
1115    expect compile_fail
1116    version 300 es
1117    both ""
1118        #version 300 es
1119        precision mediump float;
1120        ${DECLARATIONS}
1121        void main ()
1122        {
1123            ${SETUP}
1124            float value = 1f;
1125            ${POSITION_FRAG_COLOR} = vec4(0.0);
1126        }
1127    ""
1128end
1129
1130case float_int_f_suffix_1
1131    expect compile_fail
1132    version 300 es
1133    both ""
1134        #version 300 es
1135        precision mediump float;
1136        ${DECLARATIONS}
1137        void main ()
1138        {
1139            ${SETUP}
1140            float value = 1F;
1141            ${POSITION_FRAG_COLOR} = vec4(0.0);
1142        }
1143    ""
1144end
1145
1146case int_l_suffix
1147    expect compile_fail
1148    version 300 es
1149    both ""
1150        #version 300 es
1151        ${DECLARATIONS}
1152        void main ()
1153        {
1154            int value = 1l;
1155            ${POSITION_FRAG_COLOR} = vec4(0.0);
1156        }
1157    ""
1158end
1159
1160case uint_ul_suffix
1161    expect compile_fail
1162    version 300 es
1163    both ""
1164        #version 300 es
1165        ${DECLARATIONS}
1166        void main ()
1167        {
1168            uint value = 1ul;
1169            ${POSITION_FRAG_COLOR} = vec4(0.0);
1170        }
1171    ""
1172end
1173
1174case invalid_octal_0
1175    expect compile_fail
1176    version 300 es
1177    both ""
1178        #version 300 es
1179        ${DECLARATIONS}
1180        void main ()
1181        {
1182            int value = 018;
1183            ${POSITION_FRAG_COLOR} = vec4(0.0);
1184        }
1185    ""
1186end
1187
1188case invalid_octal_1
1189    expect compile_fail
1190    version 300 es
1191    both ""
1192        #version 300 es
1193        ${DECLARATIONS}
1194        void main ()
1195        {
1196            uint value = 09U;
1197            ${POSITION_FRAG_COLOR} = vec4(0.0);
1198        }
1199    ""
1200end
1201
1202case invalid_hexadecimal_0
1203    expect compile_fail
1204    version 300 es
1205    both ""
1206        #version 300 es
1207        ${DECLARATIONS}
1208        void main ()
1209        {
1210            int value = 0x2g7;
1211            ${POSITION_FRAG_COLOR} = vec4(0.0);
1212        }
1213    ""
1214end
1215
1216case invalid_hexadecimal_1
1217    expect compile_fail
1218    version 300 es
1219    both ""
1220        #version 300 es
1221        ${DECLARATIONS}
1222        void main ()
1223        {
1224            uint value = 0X1h7u;
1225            ${POSITION_FRAG_COLOR} = vec4(0.0);
1226        }
1227    ""
1228end
1229