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