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