Home | History | Annotate | Download | only in shaders
      1 
      2 case 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 	""
     21 end
     22 
     23 case 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 	""
     43 end
     44 
     45 case 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 	""
     65 end
     66 
     67 case 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 	""
     87 end
     88 
     89 case 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 	""
    111 end
    112 
    113 case 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 	""
    134 end
    135 
    136 case 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 	""
    156 end
    157 
    158 case 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 	""
    179 end
    180 
    181 case 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 	""
    201 end
    202 
    203 case 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 	""
    223 end
    224 
    225 case 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 	""
    245 end
    246 
    247 case 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 	""
    267 end
    268 
    269 case 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 	""
    297 end
    298 
    299 case 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 	""
    327 end
    328 
    329 case 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 	""
    357 end
    358 
    359 case 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 	""
    387 end
    388 
    389 case 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 	""
    417 end
    418 
    419 case 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 	""
    447 end
    448 
    449 case 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 	""
    477 end
    478 
    479 case 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 	""
    507 end
    508 
    509 case 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 	""
    528 end
    529 
    530 case 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 	""
    548 end
    549 
    550 case 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 	""
    568 end
    569 
    570 case 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 	""
    589 end
    590 
    591 case 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 	""
    612 end
    613 
    614 case 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 	""
    633 end
    634