1*35238bceSAndroid Build Coastguard Workergroup basic "Basic Tests" 2*35238bceSAndroid Build Coastguard Worker 3*35238bceSAndroid Build Coastguard Worker case correct_phases 4*35238bceSAndroid Build Coastguard Worker version 300 es 5*35238bceSAndroid Build Coastguard Worker expect compile_fail 6*35238bceSAndroid Build Coastguard Worker both "" 7*35238bceSAndroid Build Coastguard Worker #version 300 es 8*35238bceSAndroid Build Coastguard Worker #define e +1 9*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 10*35238bceSAndroid Build Coastguard Worker void main() 11*35238bceSAndroid Build Coastguard Worker { 12*35238bceSAndroid Build Coastguard Worker mediump int n = 1e; 13*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 14*35238bceSAndroid Build Coastguard Worker } 15*35238bceSAndroid Build Coastguard Worker "" 16*35238bceSAndroid Build Coastguard Worker end 17*35238bceSAndroid Build Coastguard Worker 18*35238bceSAndroid Build Coastguard Worker case invalid_identifier 19*35238bceSAndroid Build Coastguard Worker version 300 es 20*35238bceSAndroid Build Coastguard Worker expect compile_fail 21*35238bceSAndroid Build Coastguard Worker both "" 22*35238bceSAndroid Build Coastguard Worker #version 300 es 23*35238bceSAndroid Build Coastguard Worker #define e +1 24*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 25*35238bceSAndroid Build Coastguard Worker void main() 26*35238bceSAndroid Build Coastguard Worker { 27*35238bceSAndroid Build Coastguard Worker mediump int 1xyz = 1; 28*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 29*35238bceSAndroid Build Coastguard Worker } 30*35238bceSAndroid Build Coastguard Worker "" 31*35238bceSAndroid Build Coastguard Worker end 32*35238bceSAndroid Build Coastguard Worker 33*35238bceSAndroid Build Coastguard Worker case null_directive 34*35238bceSAndroid Build Coastguard Worker version 300 es 35*35238bceSAndroid Build Coastguard Worker values { output float out0 = 0.0; } 36*35238bceSAndroid Build Coastguard Worker both "" 37*35238bceSAndroid Build Coastguard Worker #version 300 es 38*35238bceSAndroid Build Coastguard Worker precision mediump float; 39*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 40*35238bceSAndroid Build Coastguard Worker 41*35238bceSAndroid Build Coastguard Worker # 42*35238bceSAndroid Build Coastguard Worker # // comment 43*35238bceSAndroid Build Coastguard Worker /*sfd*/ # /* */ 44*35238bceSAndroid Build Coastguard Worker 45*35238bceSAndroid Build Coastguard Worker void main() 46*35238bceSAndroid Build Coastguard Worker { 47*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 48*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 49*35238bceSAndroid Build Coastguard Worker } 50*35238bceSAndroid Build Coastguard Worker "" 51*35238bceSAndroid Build Coastguard Worker end 52*35238bceSAndroid Build Coastguard Worker 53*35238bceSAndroid Build Coastguard Worker case invalid_directive 54*35238bceSAndroid Build Coastguard Worker version 300 es 55*35238bceSAndroid Build Coastguard Worker expect compile_fail 56*35238bceSAndroid Build Coastguard Worker both "" 57*35238bceSAndroid Build Coastguard Worker #version 300 es 58*35238bceSAndroid Build Coastguard Worker #defin AAA 59*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 60*35238bceSAndroid Build Coastguard Worker 61*35238bceSAndroid Build Coastguard Worker void main() 62*35238bceSAndroid Build Coastguard Worker { 63*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 64*35238bceSAndroid Build Coastguard Worker } 65*35238bceSAndroid Build Coastguard Worker "" 66*35238bceSAndroid Build Coastguard Worker end 67*35238bceSAndroid Build Coastguard Worker 68*35238bceSAndroid Build Coastguard Worker case missing_identifier 69*35238bceSAndroid Build Coastguard Worker version 300 es 70*35238bceSAndroid Build Coastguard Worker expect compile_fail 71*35238bceSAndroid Build Coastguard Worker both "" 72*35238bceSAndroid Build Coastguard Worker #version 300 es 73*35238bceSAndroid Build Coastguard Worker #define 74*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 75*35238bceSAndroid Build Coastguard Worker 76*35238bceSAndroid Build Coastguard Worker void main() 77*35238bceSAndroid Build Coastguard Worker { 78*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 79*35238bceSAndroid Build Coastguard Worker } 80*35238bceSAndroid Build Coastguard Worker "" 81*35238bceSAndroid Build Coastguard Worker end 82*35238bceSAndroid Build Coastguard Worker 83*35238bceSAndroid Build Coastguard Worker case empty_object 84*35238bceSAndroid Build Coastguard Worker version 300 es 85*35238bceSAndroid Build Coastguard Worker values { output float out0 = -1.0; } 86*35238bceSAndroid Build Coastguard Worker both "" 87*35238bceSAndroid Build Coastguard Worker #version 300 es 88*35238bceSAndroid Build Coastguard Worker precision mediump float; 89*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 90*35238bceSAndroid Build Coastguard Worker 91*35238bceSAndroid Build Coastguard Worker # define VALUE 92*35238bceSAndroid Build Coastguard Worker 93*35238bceSAndroid Build Coastguard Worker void main() 94*35238bceSAndroid Build Coastguard Worker { 95*35238bceSAndroid Build Coastguard Worker out0 = VALUE - 1.0; 96*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 97*35238bceSAndroid Build Coastguard Worker } 98*35238bceSAndroid Build Coastguard Worker "" 99*35238bceSAndroid Build Coastguard Worker end 100*35238bceSAndroid Build Coastguard Worker 101*35238bceSAndroid Build Coastguard Worker case empty_function 102*35238bceSAndroid Build Coastguard Worker version 300 es 103*35238bceSAndroid Build Coastguard Worker values { output float out0 = -1.0; } 104*35238bceSAndroid Build Coastguard Worker both "" 105*35238bceSAndroid Build Coastguard Worker #version 300 es 106*35238bceSAndroid Build Coastguard Worker precision mediump float; 107*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 108*35238bceSAndroid Build Coastguard Worker 109*35238bceSAndroid Build Coastguard Worker # define VALUE(a) 110*35238bceSAndroid Build Coastguard Worker 111*35238bceSAndroid Build Coastguard Worker void main() 112*35238bceSAndroid Build Coastguard Worker { 113*35238bceSAndroid Build Coastguard Worker out0 = VALUE(2.0) - 1.0; 114*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 115*35238bceSAndroid Build Coastguard Worker } 116*35238bceSAndroid Build Coastguard Worker "" 117*35238bceSAndroid Build Coastguard Worker end 118*35238bceSAndroid Build Coastguard Worker 119*35238bceSAndroid Build Coastguard Worker case empty_directive 120*35238bceSAndroid Build Coastguard Worker version 300 es 121*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 122*35238bceSAndroid Build Coastguard Worker both "" 123*35238bceSAndroid Build Coastguard Worker #version 300 es 124*35238bceSAndroid Build Coastguard Worker precision mediump float; 125*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 126*35238bceSAndroid Build Coastguard Worker 127*35238bceSAndroid Build Coastguard Worker # 128*35238bceSAndroid Build Coastguard Worker 129*35238bceSAndroid Build Coastguard Worker void main() 130*35238bceSAndroid Build Coastguard Worker { 131*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 132*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 133*35238bceSAndroid Build Coastguard Worker } 134*35238bceSAndroid Build Coastguard Worker "" 135*35238bceSAndroid Build Coastguard Worker end 136*35238bceSAndroid Build Coastguard Worker 137*35238bceSAndroid Build Coastguard Worker case identifier_with_double_underscore 138*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 139*35238bceSAndroid Build Coastguard Worker version 300 es 140*35238bceSAndroid Build Coastguard Worker both "" 141*35238bceSAndroid Build Coastguard Worker #version 300 es 142*35238bceSAndroid Build Coastguard Worker precision mediump float; 143*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 144*35238bceSAndroid Build Coastguard Worker # define __VALUE__ 1 145*35238bceSAndroid Build Coastguard Worker 146*35238bceSAndroid Build Coastguard Worker void main() 147*35238bceSAndroid Build Coastguard Worker { 148*35238bceSAndroid Build Coastguard Worker // __VALUE__ not used since it might be set by an "underlying software layer" 149*35238bceSAndroid Build Coastguard Worker out0 = float(1.0); 150*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 151*35238bceSAndroid Build Coastguard Worker } 152*35238bceSAndroid Build Coastguard Worker "" 153*35238bceSAndroid Build Coastguard Worker end 154*35238bceSAndroid Build Coastguard Workerend # basic 155*35238bceSAndroid Build Coastguard Worker 156*35238bceSAndroid Build Coastguard Workergroup definitions "Symbol Definition Tests" 157*35238bceSAndroid Build Coastguard Worker 158*35238bceSAndroid Build Coastguard Worker case define_value_and_function 159*35238bceSAndroid Build Coastguard Worker version 300 es 160*35238bceSAndroid Build Coastguard Worker values { output float out0 = 6.0; } 161*35238bceSAndroid Build Coastguard Worker 162*35238bceSAndroid Build Coastguard Worker both "" 163*35238bceSAndroid Build Coastguard Worker #version 300 es 164*35238bceSAndroid Build Coastguard Worker precision mediump float; 165*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS:single-line} 166*35238bceSAndroid Build Coastguard Worker # define VALUE (1.5 + 2.5) 167*35238bceSAndroid Build Coastguard Worker # define FUNCTION(__LINE__, b) __LINE__+b 168*35238bceSAndroid Build Coastguard Worker 169*35238bceSAndroid Build Coastguard Worker void main() 170*35238bceSAndroid Build Coastguard Worker { 171*35238bceSAndroid Build Coastguard Worker out0 = FUNCTION(VALUE, ((0.2) + 1.8) ); 172*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 173*35238bceSAndroid Build Coastguard Worker } 174*35238bceSAndroid Build Coastguard Worker "" 175*35238bceSAndroid Build Coastguard Worker end 176*35238bceSAndroid Build Coastguard Worker 177*35238bceSAndroid Build Coastguard Worker case undefine_object_invalid_syntax 178*35238bceSAndroid Build Coastguard Worker version 300 es 179*35238bceSAndroid Build Coastguard Worker expect compile_fail 180*35238bceSAndroid Build Coastguard Worker both "" 181*35238bceSAndroid Build Coastguard Worker #version 300 es 182*35238bceSAndroid Build Coastguard Worker precision mediump float; 183*35238bceSAndroid Build Coastguard Worker #define VAL 2.0 184*35238bceSAndroid Build Coastguard Worker #undef VAL sdflkjfds 185*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 186*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 187*35238bceSAndroid Build Coastguard Worker 188*35238bceSAndroid Build Coastguard Worker void main() 189*35238bceSAndroid Build Coastguard Worker { 190*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VAL); 191*35238bceSAndroid Build Coastguard Worker } 192*35238bceSAndroid Build Coastguard Worker "" 193*35238bceSAndroid Build Coastguard Worker end 194*35238bceSAndroid Build Coastguard Worker 195*35238bceSAndroid Build Coastguard Worker case undefine_invalid_object_1 196*35238bceSAndroid Build Coastguard Worker version 300 es 197*35238bceSAndroid Build Coastguard Worker expect compile_fail 198*35238bceSAndroid Build Coastguard Worker both "" 199*35238bceSAndroid Build Coastguard Worker #version 300 es 200*35238bceSAndroid Build Coastguard Worker precision mediump float; 201*35238bceSAndroid Build Coastguard Worker #undef __LINE__ 202*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 203*35238bceSAndroid Build Coastguard Worker 204*35238bceSAndroid Build Coastguard Worker void main() 205*35238bceSAndroid Build Coastguard Worker { 206*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(__LINE__); 207*35238bceSAndroid Build Coastguard Worker } 208*35238bceSAndroid Build Coastguard Worker "" 209*35238bceSAndroid Build Coastguard Worker end 210*35238bceSAndroid Build Coastguard Worker 211*35238bceSAndroid Build Coastguard Worker case undefine_invalid_object_2 212*35238bceSAndroid Build Coastguard Worker version 300 es 213*35238bceSAndroid Build Coastguard Worker expect compile_fail 214*35238bceSAndroid Build Coastguard Worker both "" 215*35238bceSAndroid Build Coastguard Worker #version 300 es 216*35238bceSAndroid Build Coastguard Worker precision mediump float; 217*35238bceSAndroid Build Coastguard Worker #undef __FILE__ 218*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 219*35238bceSAndroid Build Coastguard Worker 220*35238bceSAndroid Build Coastguard Worker void main() 221*35238bceSAndroid Build Coastguard Worker { 222*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(__FILE__); 223*35238bceSAndroid Build Coastguard Worker } 224*35238bceSAndroid Build Coastguard Worker "" 225*35238bceSAndroid Build Coastguard Worker end 226*35238bceSAndroid Build Coastguard Worker 227*35238bceSAndroid Build Coastguard Worker case undefine_invalid_object_3 228*35238bceSAndroid Build Coastguard Worker version 300 es 229*35238bceSAndroid Build Coastguard Worker expect compile_fail 230*35238bceSAndroid Build Coastguard Worker both "" 231*35238bceSAndroid Build Coastguard Worker #version 300 es 232*35238bceSAndroid Build Coastguard Worker precision mediump float; 233*35238bceSAndroid Build Coastguard Worker #undef __VERSION__ 234*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 235*35238bceSAndroid Build Coastguard Worker 236*35238bceSAndroid Build Coastguard Worker void main() 237*35238bceSAndroid Build Coastguard Worker { 238*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(__VERSION__); 239*35238bceSAndroid Build Coastguard Worker } 240*35238bceSAndroid Build Coastguard Worker "" 241*35238bceSAndroid Build Coastguard Worker end 242*35238bceSAndroid Build Coastguard Worker 243*35238bceSAndroid Build Coastguard Worker case undefine_invalid_object_4 244*35238bceSAndroid Build Coastguard Worker version 300 es 245*35238bceSAndroid Build Coastguard Worker expect compile_fail 246*35238bceSAndroid Build Coastguard Worker both "" 247*35238bceSAndroid Build Coastguard Worker #version 300 es 248*35238bceSAndroid Build Coastguard Worker precision mediump float; 249*35238bceSAndroid Build Coastguard Worker #undef GL_ES 250*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 251*35238bceSAndroid Build Coastguard Worker 252*35238bceSAndroid Build Coastguard Worker void main() 253*35238bceSAndroid Build Coastguard Worker { 254*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(GL_ES); 255*35238bceSAndroid Build Coastguard Worker } 256*35238bceSAndroid Build Coastguard Worker "" 257*35238bceSAndroid Build Coastguard Worker end 258*35238bceSAndroid Build Coastguard Worker 259*35238bceSAndroid Build Coastguard Worker case undefine_function 260*35238bceSAndroid Build Coastguard Worker version 300 es 261*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 262*35238bceSAndroid Build Coastguard Worker both "" 263*35238bceSAndroid Build Coastguard Worker #version 300 es 264*35238bceSAndroid Build Coastguard Worker precision mediump float; 265*35238bceSAndroid Build Coastguard Worker #define FUNCTION(a,b) a+b 266*35238bceSAndroid Build Coastguard Worker #undef FUNCTION 267*35238bceSAndroid Build Coastguard Worker #define FUNCTION(a,b) a-b 268*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 269*35238bceSAndroid Build Coastguard Worker 270*35238bceSAndroid Build Coastguard Worker void main() 271*35238bceSAndroid Build Coastguard Worker { 272*35238bceSAndroid Build Coastguard Worker out0 = FUNCTION(3.0, 2.0); 273*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 274*35238bceSAndroid Build Coastguard Worker } 275*35238bceSAndroid Build Coastguard Worker "" 276*35238bceSAndroid Build Coastguard Worker end 277*35238bceSAndroid Build Coastguard Worker 278*35238bceSAndroid Build Coastguard Workerend # definitions 279*35238bceSAndroid Build Coastguard Worker 280*35238bceSAndroid Build Coastguard Workergroup invalid_definitions "Invalid Definition Tests" 281*35238bceSAndroid Build Coastguard Worker 282*35238bceSAndroid Build Coastguard Worker case define_non_identifier 283*35238bceSAndroid Build Coastguard Worker version 300 es 284*35238bceSAndroid Build Coastguard Worker expect compile_fail 285*35238bceSAndroid Build Coastguard Worker both "" 286*35238bceSAndroid Build Coastguard Worker #version 300 es 287*35238bceSAndroid Build Coastguard Worker precision mediump float; 288*35238bceSAndroid Build Coastguard Worker #define 123 321 289*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 290*35238bceSAndroid Build Coastguard Worker 291*35238bceSAndroid Build Coastguard Worker void main() 292*35238bceSAndroid Build Coastguard Worker { 293*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 294*35238bceSAndroid Build Coastguard Worker } 295*35238bceSAndroid Build Coastguard Worker "" 296*35238bceSAndroid Build Coastguard Worker end 297*35238bceSAndroid Build Coastguard Worker 298*35238bceSAndroid Build Coastguard Worker case undef_non_identifier_1 299*35238bceSAndroid Build Coastguard Worker version 300 es 300*35238bceSAndroid Build Coastguard Worker expect compile_fail 301*35238bceSAndroid Build Coastguard Worker both "" 302*35238bceSAndroid Build Coastguard Worker #version 300 es 303*35238bceSAndroid Build Coastguard Worker precision mediump float; 304*35238bceSAndroid Build Coastguard Worker #undef 123 305*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 306*35238bceSAndroid Build Coastguard Worker 307*35238bceSAndroid Build Coastguard Worker void main() 308*35238bceSAndroid Build Coastguard Worker { 309*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 310*35238bceSAndroid Build Coastguard Worker } 311*35238bceSAndroid Build Coastguard Worker "" 312*35238bceSAndroid Build Coastguard Worker end 313*35238bceSAndroid Build Coastguard Worker 314*35238bceSAndroid Build Coastguard Worker case undef_non_identifier_2 315*35238bceSAndroid Build Coastguard Worker version 300 es 316*35238bceSAndroid Build Coastguard Worker expect compile_fail 317*35238bceSAndroid Build Coastguard Worker both "" 318*35238bceSAndroid Build Coastguard Worker #version 300 es 319*35238bceSAndroid Build Coastguard Worker precision mediump float; 320*35238bceSAndroid Build Coastguard Worker #undef foo.bar 321*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 322*35238bceSAndroid Build Coastguard Worker 323*35238bceSAndroid Build Coastguard Worker void main() 324*35238bceSAndroid Build Coastguard Worker { 325*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 326*35238bceSAndroid Build Coastguard Worker } 327*35238bceSAndroid Build Coastguard Worker "" 328*35238bceSAndroid Build Coastguard Worker end 329*35238bceSAndroid Build Coastguard Worker 330*35238bceSAndroid Build Coastguard Worker 331*35238bceSAndroid Build Coastguard Workerend # invalid_definitions 332*35238bceSAndroid Build Coastguard Worker 333*35238bceSAndroid Build Coastguard Workergroup object_redefinitions "Object Redefinition Tests" 334*35238bceSAndroid Build Coastguard Worker 335*35238bceSAndroid Build Coastguard Worker case invalid_object_ident 336*35238bceSAndroid Build Coastguard Worker version 300 es 337*35238bceSAndroid Build Coastguard Worker expect compile_fail 338*35238bceSAndroid Build Coastguard Worker both "" 339*35238bceSAndroid Build Coastguard Worker #version 300 es 340*35238bceSAndroid Build Coastguard Worker precision mediump float; 341*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 342*35238bceSAndroid Build Coastguard Worker # define AAA 2.0 343*35238bceSAndroid Build Coastguard Worker # define AAAA 2.1 344*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1.0) 345*35238bceSAndroid Build Coastguard Worker # define VALUE (AAAA - 1.0) 346*35238bceSAndroid Build Coastguard Worker 347*35238bceSAndroid Build Coastguard Worker void main() 348*35238bceSAndroid Build Coastguard Worker { 349*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VALUE); 350*35238bceSAndroid Build Coastguard Worker } 351*35238bceSAndroid Build Coastguard Worker "" 352*35238bceSAndroid Build Coastguard Worker end 353*35238bceSAndroid Build Coastguard Worker 354*35238bceSAndroid Build Coastguard Worker case invalid_object_whitespace 355*35238bceSAndroid Build Coastguard Worker version 300 es 356*35238bceSAndroid Build Coastguard Worker expect compile_fail 357*35238bceSAndroid Build Coastguard Worker both "" 358*35238bceSAndroid Build Coastguard Worker #version 300 es 359*35238bceSAndroid Build Coastguard Worker precision mediump float; 360*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 361*35238bceSAndroid Build Coastguard Worker # define AAA 2.0 362*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1.0) 363*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA- 1.0) 364*35238bceSAndroid Build Coastguard Worker 365*35238bceSAndroid Build Coastguard Worker void main() 366*35238bceSAndroid Build Coastguard Worker { 367*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VALUE); 368*35238bceSAndroid Build Coastguard Worker } 369*35238bceSAndroid Build Coastguard Worker "" 370*35238bceSAndroid Build Coastguard Worker end 371*35238bceSAndroid Build Coastguard Worker 372*35238bceSAndroid Build Coastguard Worker case invalid_object_op 373*35238bceSAndroid Build Coastguard Worker version 300 es 374*35238bceSAndroid Build Coastguard Worker expect compile_fail 375*35238bceSAndroid Build Coastguard Worker both "" 376*35238bceSAndroid Build Coastguard Worker #version 300 es 377*35238bceSAndroid Build Coastguard Worker precision mediump float; 378*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 379*35238bceSAndroid Build Coastguard Worker # define AAA 2.0 380*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1.0) 381*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA + 1.0) 382*35238bceSAndroid Build Coastguard Worker 383*35238bceSAndroid Build Coastguard Worker void main() 384*35238bceSAndroid Build Coastguard Worker { 385*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VALUE); 386*35238bceSAndroid Build Coastguard Worker } 387*35238bceSAndroid Build Coastguard Worker "" 388*35238bceSAndroid Build Coastguard Worker end 389*35238bceSAndroid Build Coastguard Worker 390*35238bceSAndroid Build Coastguard Worker case invalid_object_floatval_1 391*35238bceSAndroid Build Coastguard Worker version 300 es 392*35238bceSAndroid Build Coastguard Worker expect compile_fail 393*35238bceSAndroid Build Coastguard Worker both "" 394*35238bceSAndroid Build Coastguard Worker #version 300 es 395*35238bceSAndroid Build Coastguard Worker precision mediump float; 396*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 397*35238bceSAndroid Build Coastguard Worker # define AAA 2.0 398*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1.0) 399*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1.1) 400*35238bceSAndroid Build Coastguard Worker 401*35238bceSAndroid Build Coastguard Worker void main() 402*35238bceSAndroid Build Coastguard Worker { 403*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VALUE); 404*35238bceSAndroid Build Coastguard Worker } 405*35238bceSAndroid Build Coastguard Worker "" 406*35238bceSAndroid Build Coastguard Worker end 407*35238bceSAndroid Build Coastguard Worker 408*35238bceSAndroid Build Coastguard Worker case invalid_object_floatval_2 409*35238bceSAndroid Build Coastguard Worker version 300 es 410*35238bceSAndroid Build Coastguard Worker expect compile_fail 411*35238bceSAndroid Build Coastguard Worker both "" 412*35238bceSAndroid Build Coastguard Worker #version 300 es 413*35238bceSAndroid Build Coastguard Worker precision mediump float; 414*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 415*35238bceSAndroid Build Coastguard Worker # define AAA 2.0 416*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1.0) 417*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1.0e-1) 418*35238bceSAndroid Build Coastguard Worker 419*35238bceSAndroid Build Coastguard Worker void main() 420*35238bceSAndroid Build Coastguard Worker { 421*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VALUE); 422*35238bceSAndroid Build Coastguard Worker } 423*35238bceSAndroid Build Coastguard Worker "" 424*35238bceSAndroid Build Coastguard Worker end 425*35238bceSAndroid Build Coastguard Worker 426*35238bceSAndroid Build Coastguard Worker case invalid_object_intval_1 427*35238bceSAndroid Build Coastguard Worker version 300 es 428*35238bceSAndroid Build Coastguard Worker expect compile_fail 429*35238bceSAndroid Build Coastguard Worker both "" 430*35238bceSAndroid Build Coastguard Worker #version 300 es 431*35238bceSAndroid Build Coastguard Worker precision mediump float; 432*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 433*35238bceSAndroid Build Coastguard Worker # define AAA 2 434*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1) 435*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 2) 436*35238bceSAndroid Build Coastguard Worker 437*35238bceSAndroid Build Coastguard Worker void main() 438*35238bceSAndroid Build Coastguard Worker { 439*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VALUE); 440*35238bceSAndroid Build Coastguard Worker } 441*35238bceSAndroid Build Coastguard Worker "" 442*35238bceSAndroid Build Coastguard Worker end 443*35238bceSAndroid Build Coastguard Worker 444*35238bceSAndroid Build Coastguard Worker case invalid_object_intval_2 445*35238bceSAndroid Build Coastguard Worker version 300 es 446*35238bceSAndroid Build Coastguard Worker expect compile_fail 447*35238bceSAndroid Build Coastguard Worker both "" 448*35238bceSAndroid Build Coastguard Worker #version 300 es 449*35238bceSAndroid Build Coastguard Worker precision mediump float; 450*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 451*35238bceSAndroid Build Coastguard Worker # define AAA 2 452*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 1) 453*35238bceSAndroid Build Coastguard Worker # define VALUE (AAA - 0x1) 454*35238bceSAndroid Build Coastguard Worker 455*35238bceSAndroid Build Coastguard Worker void main() 456*35238bceSAndroid Build Coastguard Worker { 457*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(VALUE); 458*35238bceSAndroid Build Coastguard Worker } 459*35238bceSAndroid Build Coastguard Worker "" 460*35238bceSAndroid Build Coastguard Worker end 461*35238bceSAndroid Build Coastguard Worker 462*35238bceSAndroid Build Coastguard Worker case redefine_object_1 463*35238bceSAndroid Build Coastguard Worker version 300 es 464*35238bceSAndroid Build Coastguard Worker values { output float out0 = 6.0; } 465*35238bceSAndroid Build Coastguard Worker 466*35238bceSAndroid Build Coastguard Worker both "" 467*35238bceSAndroid Build Coastguard Worker #version 300 es 468*35238bceSAndroid Build Coastguard Worker precision mediump float; 469*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 470*35238bceSAndroid Build Coastguard Worker # define VAL1 1.0 471*35238bceSAndroid Build Coastguard Worker #define VAL2 2.0 472*35238bceSAndroid Build Coastguard Worker 473*35238bceSAndroid Build Coastguard Worker #define RES2 (RES1 * VAL2) 474*35238bceSAndroid Build Coastguard Worker #define RES1 (VAL2 / VAL1) 475*35238bceSAndroid Build Coastguard Worker #define RES2 (RES1 * VAL2) 476*35238bceSAndroid Build Coastguard Worker #define VALUE (RES2 + RES1) 477*35238bceSAndroid Build Coastguard Worker 478*35238bceSAndroid Build Coastguard Worker void main() 479*35238bceSAndroid Build Coastguard Worker { 480*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 481*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 482*35238bceSAndroid Build Coastguard Worker } 483*35238bceSAndroid Build Coastguard Worker "" 484*35238bceSAndroid Build Coastguard Worker end 485*35238bceSAndroid Build Coastguard Worker 486*35238bceSAndroid Build Coastguard Worker case redefine_object_ifdef 487*35238bceSAndroid Build Coastguard Worker version 300 es 488*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 489*35238bceSAndroid Build Coastguard Worker 490*35238bceSAndroid Build Coastguard Worker both "" 491*35238bceSAndroid Build Coastguard Worker #version 300 es 492*35238bceSAndroid Build Coastguard Worker precision mediump float; 493*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 494*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 495*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 496*35238bceSAndroid Build Coastguard Worker 497*35238bceSAndroid Build Coastguard Worker #ifdef ADEFINE 498*35238bceSAndroid Build Coastguard Worker #define VALUE 1.0 499*35238bceSAndroid Build Coastguard Worker #else 500*35238bceSAndroid Build Coastguard Worker #define VALUE 0.0 501*35238bceSAndroid Build Coastguard Worker #endif 502*35238bceSAndroid Build Coastguard Worker 503*35238bceSAndroid Build Coastguard Worker void main() 504*35238bceSAndroid Build Coastguard Worker { 505*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 506*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 507*35238bceSAndroid Build Coastguard Worker } 508*35238bceSAndroid Build Coastguard Worker "" 509*35238bceSAndroid Build Coastguard Worker end 510*35238bceSAndroid Build Coastguard Worker 511*35238bceSAndroid Build Coastguard Worker case redefine_object_undef_ifdef 512*35238bceSAndroid Build Coastguard Worker version 300 es 513*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 514*35238bceSAndroid Build Coastguard Worker 515*35238bceSAndroid Build Coastguard Worker both "" 516*35238bceSAndroid Build Coastguard Worker #version 300 es 517*35238bceSAndroid Build Coastguard Worker precision mediump float; 518*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 519*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 520*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 521*35238bceSAndroid Build Coastguard Worker #undef ADEFINE 522*35238bceSAndroid Build Coastguard Worker 523*35238bceSAndroid Build Coastguard Worker #ifdef ADEFINE 524*35238bceSAndroid Build Coastguard Worker #define VALUE 0.0 525*35238bceSAndroid Build Coastguard Worker #else 526*35238bceSAndroid Build Coastguard Worker #define VALUE 1.0 527*35238bceSAndroid Build Coastguard Worker #endif 528*35238bceSAndroid Build Coastguard Worker 529*35238bceSAndroid Build Coastguard Worker void main() 530*35238bceSAndroid Build Coastguard Worker { 531*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 532*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 533*35238bceSAndroid Build Coastguard Worker } 534*35238bceSAndroid Build Coastguard Worker "" 535*35238bceSAndroid Build Coastguard Worker end 536*35238bceSAndroid Build Coastguard Worker 537*35238bceSAndroid Build Coastguard Worker case redefine_object_ifndef 538*35238bceSAndroid Build Coastguard Worker version 300 es 539*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 540*35238bceSAndroid Build Coastguard Worker 541*35238bceSAndroid Build Coastguard Worker both "" 542*35238bceSAndroid Build Coastguard Worker #version 300 es 543*35238bceSAndroid Build Coastguard Worker precision mediump float; 544*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 545*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 546*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 547*35238bceSAndroid Build Coastguard Worker 548*35238bceSAndroid Build Coastguard Worker #ifndef ADEFINE 549*35238bceSAndroid Build Coastguard Worker #define VALUE 0.0 550*35238bceSAndroid Build Coastguard Worker #else 551*35238bceSAndroid Build Coastguard Worker #define VALUE 1.0 552*35238bceSAndroid Build Coastguard Worker #endif 553*35238bceSAndroid Build Coastguard Worker 554*35238bceSAndroid Build Coastguard Worker void main() 555*35238bceSAndroid Build Coastguard Worker { 556*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 557*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 558*35238bceSAndroid Build Coastguard Worker } 559*35238bceSAndroid Build Coastguard Worker "" 560*35238bceSAndroid Build Coastguard Worker end 561*35238bceSAndroid Build Coastguard Worker 562*35238bceSAndroid Build Coastguard Worker case redefine_object_defined_1 563*35238bceSAndroid Build Coastguard Worker version 300 es 564*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 565*35238bceSAndroid Build Coastguard Worker 566*35238bceSAndroid Build Coastguard Worker both "" 567*35238bceSAndroid Build Coastguard Worker #version 300 es 568*35238bceSAndroid Build Coastguard Worker precision mediump float; 569*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 570*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 571*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 572*35238bceSAndroid Build Coastguard Worker 573*35238bceSAndroid Build Coastguard Worker #if defined(ADEFINE) 574*35238bceSAndroid Build Coastguard Worker #define VALUE 1.0 575*35238bceSAndroid Build Coastguard Worker #else 576*35238bceSAndroid Build Coastguard Worker #define VALUE 0.0 577*35238bceSAndroid Build Coastguard Worker #endif 578*35238bceSAndroid Build Coastguard Worker 579*35238bceSAndroid Build Coastguard Worker void main() 580*35238bceSAndroid Build Coastguard Worker { 581*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 582*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 583*35238bceSAndroid Build Coastguard Worker } 584*35238bceSAndroid Build Coastguard Worker "" 585*35238bceSAndroid Build Coastguard Worker end 586*35238bceSAndroid Build Coastguard Worker 587*35238bceSAndroid Build Coastguard Worker case redefine_object_defined_2 588*35238bceSAndroid Build Coastguard Worker version 300 es 589*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 590*35238bceSAndroid Build Coastguard Worker 591*35238bceSAndroid Build Coastguard Worker both "" 592*35238bceSAndroid Build Coastguard Worker #version 300 es 593*35238bceSAndroid Build Coastguard Worker precision mediump float; 594*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 595*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 596*35238bceSAndroid Build Coastguard Worker #define ADEFINE 1 597*35238bceSAndroid Build Coastguard Worker 598*35238bceSAndroid Build Coastguard Worker #if defined ADEFINE 599*35238bceSAndroid Build Coastguard Worker #define VALUE 1.0 600*35238bceSAndroid Build Coastguard Worker #else 601*35238bceSAndroid Build Coastguard Worker #define VALUE 0.0 602*35238bceSAndroid Build Coastguard Worker #endif 603*35238bceSAndroid Build Coastguard Worker 604*35238bceSAndroid Build Coastguard Worker void main() 605*35238bceSAndroid Build Coastguard Worker { 606*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 607*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 608*35238bceSAndroid Build Coastguard Worker } 609*35238bceSAndroid Build Coastguard Worker "" 610*35238bceSAndroid Build Coastguard Worker end 611*35238bceSAndroid Build Coastguard Worker 612*35238bceSAndroid Build Coastguard Worker case redefine_object_comment 613*35238bceSAndroid Build Coastguard Worker version 300 es 614*35238bceSAndroid Build Coastguard Worker values { output float out0 = 6.0; } 615*35238bceSAndroid Build Coastguard Worker 616*35238bceSAndroid Build Coastguard Worker both "" 617*35238bceSAndroid Build Coastguard Worker #version 300 es 618*35238bceSAndroid Build Coastguard Worker precision mediump float; 619*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 620*35238bceSAndroid Build Coastguard Worker # define VAL1 1.0 621*35238bceSAndroid Build Coastguard Worker #define VAL2 2.0 622*35238bceSAndroid Build Coastguard Worker 623*35238bceSAndroid Build Coastguard Worker #define RES2 /* fdsjklfdsjkl dsfjkhfdsjkh fdsjklhfdsjkh */ (RES1 * VAL2) 624*35238bceSAndroid Build Coastguard Worker #define RES1 (VAL2 / VAL1) 625*35238bceSAndroid Build Coastguard Worker #define RES2 /* ewrlkjhsadf */ (RES1 * VAL2) 626*35238bceSAndroid Build Coastguard Worker #define VALUE (RES2 + RES1) 627*35238bceSAndroid Build Coastguard Worker 628*35238bceSAndroid Build Coastguard Worker void main() 629*35238bceSAndroid Build Coastguard Worker { 630*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 631*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 632*35238bceSAndroid Build Coastguard Worker } 633*35238bceSAndroid Build Coastguard Worker "" 634*35238bceSAndroid Build Coastguard Worker end 635*35238bceSAndroid Build Coastguard Worker 636*35238bceSAndroid Build Coastguard Worker case redefine_object_multiline_comment 637*35238bceSAndroid Build Coastguard Worker version 300 es 638*35238bceSAndroid Build Coastguard Worker values { output float out0 = 6.0; } 639*35238bceSAndroid Build Coastguard Worker 640*35238bceSAndroid Build Coastguard Worker both "" 641*35238bceSAndroid Build Coastguard Worker #version 300 es 642*35238bceSAndroid Build Coastguard Worker precision mediump float; 643*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 644*35238bceSAndroid Build Coastguard Worker # define VAL1 1.0 645*35238bceSAndroid Build Coastguard Worker #define VAL2 2.0 646*35238bceSAndroid Build Coastguard Worker 647*35238bceSAndroid Build Coastguard Worker #define RES2 /* fdsjklfdsjkl 648*35238bceSAndroid Build Coastguard Worker dsfjkhfdsjkh 649*35238bceSAndroid Build Coastguard Worker fdsjklhfdsjkh */ (RES1 * VAL2) 650*35238bceSAndroid Build Coastguard Worker #define RES1 (VAL2 / VAL1) 651*35238bceSAndroid Build Coastguard Worker #define RES2 /* ewrlkjhsadf */ (RES1 * VAL2) 652*35238bceSAndroid Build Coastguard Worker #define VALUE (RES2 + RES1) 653*35238bceSAndroid Build Coastguard Worker 654*35238bceSAndroid Build Coastguard Worker void main() 655*35238bceSAndroid Build Coastguard Worker { 656*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 657*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 658*35238bceSAndroid Build Coastguard Worker } 659*35238bceSAndroid Build Coastguard Worker "" 660*35238bceSAndroid Build Coastguard Worker end 661*35238bceSAndroid Build Coastguard Worker 662*35238bceSAndroid Build Coastguard Workerend # object_redefinitions 663*35238bceSAndroid Build Coastguard Worker 664*35238bceSAndroid Build Coastguard Workergroup invalid_redefinitions "Invalid Redefinitions Tests" 665*35238bceSAndroid Build Coastguard Worker 666*35238bceSAndroid Build Coastguard Worker case invalid_identifier_2 667*35238bceSAndroid Build Coastguard Worker version 300 es 668*35238bceSAndroid Build Coastguard Worker expect compile_fail 669*35238bceSAndroid Build Coastguard Worker both "" 670*35238bceSAndroid Build Coastguard Worker #version 300 es 671*35238bceSAndroid Build Coastguard Worker precision mediump float; 672*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 673*35238bceSAndroid Build Coastguard Worker # define GL_VALUE 1.0 674*35238bceSAndroid Build Coastguard Worker 675*35238bceSAndroid Build Coastguard Worker void main() 676*35238bceSAndroid Build Coastguard Worker { 677*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(GL_VALUE); 678*35238bceSAndroid Build Coastguard Worker } 679*35238bceSAndroid Build Coastguard Worker "" 680*35238bceSAndroid Build Coastguard Worker end 681*35238bceSAndroid Build Coastguard Worker 682*35238bceSAndroid Build Coastguard Workerend # invalid_redefinitions 683*35238bceSAndroid Build Coastguard Worker 684*35238bceSAndroid Build Coastguard Workergroup comments "Comment Tests" 685*35238bceSAndroid Build Coastguard Worker 686*35238bceSAndroid Build Coastguard Worker case multiline_comment_define 687*35238bceSAndroid Build Coastguard Worker version 300 es 688*35238bceSAndroid Build Coastguard Worker values { output float out0 = 4.2; } 689*35238bceSAndroid Build Coastguard Worker both "" 690*35238bceSAndroid Build Coastguard Worker #version 300 es 691*35238bceSAndroid Build Coastguard Worker precision mediump float; 692*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 693*35238bceSAndroid Build Coastguard Worker #define VALUE /* current 694*35238bceSAndroid Build Coastguard Worker value */ 4.2 695*35238bceSAndroid Build Coastguard Worker 696*35238bceSAndroid Build Coastguard Worker void main() 697*35238bceSAndroid Build Coastguard Worker { 698*35238bceSAndroid Build Coastguard Worker out0 = VALUE; 699*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 700*35238bceSAndroid Build Coastguard Worker } 701*35238bceSAndroid Build Coastguard Worker "" 702*35238bceSAndroid Build Coastguard Worker end 703*35238bceSAndroid Build Coastguard Worker 704*35238bceSAndroid Build Coastguard Worker case nested_comment 705*35238bceSAndroid Build Coastguard Worker version 300 es 706*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 707*35238bceSAndroid Build Coastguard Worker both "" 708*35238bceSAndroid Build Coastguard Worker #version 300 es 709*35238bceSAndroid Build Coastguard Worker precision mediump float; 710*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 711*35238bceSAndroid Build Coastguard Worker void main() 712*35238bceSAndroid Build Coastguard Worker { 713*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 714*35238bceSAndroid Build Coastguard Worker /* /* */ 715*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 716*35238bceSAndroid Build Coastguard Worker // */ 717*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 718*35238bceSAndroid Build Coastguard Worker } 719*35238bceSAndroid Build Coastguard Worker "" 720*35238bceSAndroid Build Coastguard Worker end 721*35238bceSAndroid Build Coastguard Worker 722*35238bceSAndroid Build Coastguard Worker case comment_trick_1 723*35238bceSAndroid Build Coastguard Worker version 300 es 724*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 725*35238bceSAndroid Build Coastguard Worker both "" 726*35238bceSAndroid Build Coastguard Worker #version 300 es 727*35238bceSAndroid Build Coastguard Worker precision mediump float; 728*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 729*35238bceSAndroid Build Coastguard Worker void main() 730*35238bceSAndroid Build Coastguard Worker { 731*35238bceSAndroid Build Coastguard Worker /*/ 732*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 733*35238bceSAndroid Build Coastguard Worker /*/ 734*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 735*35238bceSAndroid Build Coastguard Worker /**/ 736*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 737*35238bceSAndroid Build Coastguard Worker } 738*35238bceSAndroid Build Coastguard Worker "" 739*35238bceSAndroid Build Coastguard Worker end 740*35238bceSAndroid Build Coastguard Worker 741*35238bceSAndroid Build Coastguard Worker case comment_trick_2 742*35238bceSAndroid Build Coastguard Worker version 300 es 743*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 744*35238bceSAndroid Build Coastguard Worker both "" 745*35238bceSAndroid Build Coastguard Worker #version 300 es 746*35238bceSAndroid Build Coastguard Worker precision mediump float; 747*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 748*35238bceSAndroid Build Coastguard Worker void main() 749*35238bceSAndroid Build Coastguard Worker { 750*35238bceSAndroid Build Coastguard Worker /**/ 751*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 752*35238bceSAndroid Build Coastguard Worker /*/ 753*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 754*35238bceSAndroid Build Coastguard Worker /**/ 755*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 756*35238bceSAndroid Build Coastguard Worker } 757*35238bceSAndroid Build Coastguard Worker "" 758*35238bceSAndroid Build Coastguard Worker end 759*35238bceSAndroid Build Coastguard Worker 760*35238bceSAndroid Build Coastguard Worker case invalid_comment 761*35238bceSAndroid Build Coastguard Worker version 300 es 762*35238bceSAndroid Build Coastguard Worker expect compile_fail 763*35238bceSAndroid Build Coastguard Worker both "" 764*35238bceSAndroid Build Coastguard Worker #version 300 es 765*35238bceSAndroid Build Coastguard Worker precision mediump float; 766*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 767*35238bceSAndroid Build Coastguard Worker void main() 768*35238bceSAndroid Build Coastguard Worker { 769*35238bceSAndroid Build Coastguard Worker /* /* */ */ 770*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = 1.0; 771*35238bceSAndroid Build Coastguard Worker } 772*35238bceSAndroid Build Coastguard Worker "" 773*35238bceSAndroid Build Coastguard Worker end 774*35238bceSAndroid Build Coastguard Worker 775*35238bceSAndroid Build Coastguard Worker case unterminated_comment_1 776*35238bceSAndroid Build Coastguard Worker version 300 es 777*35238bceSAndroid Build Coastguard Worker expect compile_fail 778*35238bceSAndroid Build Coastguard Worker both "" 779*35238bceSAndroid Build Coastguard Worker #version 300 es 780*35238bceSAndroid Build Coastguard Worker precision mediump float; 781*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 782*35238bceSAndroid Build Coastguard Worker void main() 783*35238bceSAndroid Build Coastguard Worker { 784*35238bceSAndroid Build Coastguard Worker /* 785*35238bceSAndroid Build Coastguard Worker } 786*35238bceSAndroid Build Coastguard Worker "" 787*35238bceSAndroid Build Coastguard Worker end 788*35238bceSAndroid Build Coastguard Worker 789*35238bceSAndroid Build Coastguard Worker case unterminated_comment_2 790*35238bceSAndroid Build Coastguard Worker version 300 es 791*35238bceSAndroid Build Coastguard Worker expect compile_fail 792*35238bceSAndroid Build Coastguard Worker both "" 793*35238bceSAndroid Build Coastguard Worker #version 300 es 794*35238bceSAndroid Build Coastguard Worker /* 795*35238bceSAndroid Build Coastguard Worker precision mediump float; 796*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 797*35238bceSAndroid Build Coastguard Worker void main() 798*35238bceSAndroid Build Coastguard Worker { 799*35238bceSAndroid Build Coastguard Worker } 800*35238bceSAndroid Build Coastguard Worker "" 801*35238bceSAndroid Build Coastguard Worker end 802*35238bceSAndroid Build Coastguard Worker 803*35238bceSAndroid Build Coastguard Worker case backslash_in_a_comment_1 804*35238bceSAndroid Build Coastguard Worker version 300 es 805*35238bceSAndroid Build Coastguard Worker expect build_successful 806*35238bceSAndroid Build Coastguard Worker both "" 807*35238bceSAndroid Build Coastguard Worker #version 300 es 808*35238bceSAndroid Build Coastguard Worker // \\note these are some declarations 809*35238bceSAndroid Build Coastguard Worker precision mediump float; 810*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 811*35238bceSAndroid Build Coastguard Worker // \\note this is the main function 812*35238bceSAndroid Build Coastguard Worker void main() 813*35238bceSAndroid Build Coastguard Worker { 814*35238bceSAndroid Build Coastguard Worker // \\note this is a function body 815*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 816*35238bceSAndroid Build Coastguard Worker } 817*35238bceSAndroid Build Coastguard Worker "" 818*35238bceSAndroid Build Coastguard Worker end 819*35238bceSAndroid Build Coastguard Worker 820*35238bceSAndroid Build Coastguard Worker case backslash_in_a_comment_2 821*35238bceSAndroid Build Coastguard Worker version 300 es 822*35238bceSAndroid Build Coastguard Worker expect build_successful 823*35238bceSAndroid Build Coastguard Worker both "" 824*35238bceSAndroid Build Coastguard Worker #version 300 es 825*35238bceSAndroid Build Coastguard Worker /* \\note these are some declarations */ 826*35238bceSAndroid Build Coastguard Worker precision mediump float; 827*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 828*35238bceSAndroid Build Coastguard Worker /* \\note this is the main function */ 829*35238bceSAndroid Build Coastguard Worker void main() 830*35238bceSAndroid Build Coastguard Worker { 831*35238bceSAndroid Build Coastguard Worker /* \\note this is a function body */ 832*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 833*35238bceSAndroid Build Coastguard Worker } 834*35238bceSAndroid Build Coastguard Worker "" 835*35238bceSAndroid Build Coastguard Worker end 836*35238bceSAndroid Build Coastguard Workerend # comments 837*35238bceSAndroid Build Coastguard Worker 838*35238bceSAndroid Build Coastguard Workergroup line_continuation "Line Continuation Tests" 839*35238bceSAndroid Build Coastguard Worker 840*35238bceSAndroid Build Coastguard Worker case comment 841*35238bceSAndroid Build Coastguard Worker version 300 es 842*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 843*35238bceSAndroid Build Coastguard Worker both "" 844*35238bceSAndroid Build Coastguard Worker #version 300 es 845*35238bceSAndroid Build Coastguard Worker precision mediump float; 846*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 847*35238bceSAndroid Build Coastguard Worker 848*35238bceSAndroid Build Coastguard Worker void main () 849*35238bceSAndroid Build Coastguard Worker { 850*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 851*35238bceSAndroid Build Coastguard Worker // comment \\ 852*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 853*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 854*35238bceSAndroid Build Coastguard Worker } 855*35238bceSAndroid Build Coastguard Worker "" 856*35238bceSAndroid Build Coastguard Worker end 857*35238bceSAndroid Build Coastguard Worker 858*35238bceSAndroid Build Coastguard Worker case define 859*35238bceSAndroid Build Coastguard Worker version 300 es 860*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 861*35238bceSAndroid Build Coastguard Worker both "" 862*35238bceSAndroid Build Coastguard Worker #version 300 es 863*35238bceSAndroid Build Coastguard Worker precision mediump float; 864*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 865*35238bceSAndroid Build Coastguard Worker #define A(X) \\ 866*35238bceSAndroid Build Coastguard Worker (-1.0*(X)) 867*35238bceSAndroid Build Coastguard Worker 868*35238bceSAndroid Build Coastguard Worker void main () 869*35238bceSAndroid Build Coastguard Worker { 870*35238bceSAndroid Build Coastguard Worker out0 = A(-1.0); 871*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 872*35238bceSAndroid Build Coastguard Worker } 873*35238bceSAndroid Build Coastguard Worker "" 874*35238bceSAndroid Build Coastguard Worker end 875*35238bceSAndroid Build Coastguard Worker 876*35238bceSAndroid Build Coastguard Worker case preprocessing_token 877*35238bceSAndroid Build Coastguard Worker version 300 es 878*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 879*35238bceSAndroid Build Coastguard Worker both "" 880*35238bceSAndroid Build Coastguard Worker #version 300 es 881*35238bceSAndroid Build Coastguard Worker precision mediump float; 882*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 883*35238bceSAndroid Build Coastguard Worker #def\\ 884*35238bceSAndroid Build Coastguard Worker ine A(X) (-1.0*(X)) 885*35238bceSAndroid Build Coastguard Worker 886*35238bceSAndroid Build Coastguard Worker void main () 887*35238bceSAndroid Build Coastguard Worker { 888*35238bceSAndroid Build Coastguard Worker out0 = A(-1.0); 889*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 890*35238bceSAndroid Build Coastguard Worker } 891*35238bceSAndroid Build Coastguard Worker "" 892*35238bceSAndroid Build Coastguard Worker end 893*35238bceSAndroid Build Coastguard Worker 894*35238bceSAndroid Build Coastguard Worker case token 895*35238bceSAndroid Build Coastguard Worker version 300 es 896*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 897*35238bceSAndroid Build Coastguard Worker both "" 898*35238bceSAndroid Build Coastguard Worker #version 300 es 899*35238bceSAndroid Build Coastguard Worker precision mediump float; 900*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 901*35238bceSAndroid Build Coastguard Worker 902*35238bceSAndroid Build Coastguard Worker void main () 903*35238bceSAndroid Build Coastguard Worker { 904*35238bceSAndroid Build Coastguard Worker float f\\ 905*35238bceSAndroid Build Coastguard Worker oo = 1.0; 906*35238bceSAndroid Build Coastguard Worker out0 = foo; 907*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 908*35238bceSAndroid Build Coastguard Worker } 909*35238bceSAndroid Build Coastguard Worker "" 910*35238bceSAndroid Build Coastguard Worker end 911*35238bceSAndroid Build Coastguard Worker 912*35238bceSAndroid Build Coastguard Worker case middle_of_line 913*35238bceSAndroid Build Coastguard Worker version 300 es 914*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 915*35238bceSAndroid Build Coastguard Worker both "" 916*35238bceSAndroid Build Coastguard Worker #version 300 es 917*35238bceSAndroid Build Coastguard Worker precision mediump float; 918*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 919*35238bceSAndroid Build Coastguard Worker #define A a \\ b 920*35238bceSAndroid Build Coastguard Worker #define B 1.0 921*35238bceSAndroid Build Coastguard Worker 922*35238bceSAndroid Build Coastguard Worker void main () 923*35238bceSAndroid Build Coastguard Worker { 924*35238bceSAndroid Build Coastguard Worker out0 = B; 925*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 926*35238bceSAndroid Build Coastguard Worker } 927*35238bceSAndroid Build Coastguard Worker "" 928*35238bceSAndroid Build Coastguard Worker end 929*35238bceSAndroid Build Coastguard Worker 930*35238bceSAndroid Build Coastguard Workerend # line_continuation 931*35238bceSAndroid Build Coastguard Worker 932*35238bceSAndroid Build Coastguard Workergroup function_definitions "Function Definitions Tests" 933*35238bceSAndroid Build Coastguard Worker 934*35238bceSAndroid Build Coastguard Worker case same_object_and_function_param 935*35238bceSAndroid Build Coastguard Worker version 300 es 936*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 937*35238bceSAndroid Build Coastguard Worker 938*35238bceSAndroid Build Coastguard Worker both "" 939*35238bceSAndroid Build Coastguard Worker #version 300 es 940*35238bceSAndroid Build Coastguard Worker precision mediump float; 941*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 942*35238bceSAndroid Build Coastguard Worker #define VALUE 1.0 943*35238bceSAndroid Build Coastguard Worker #define FUNCTION(VALUE, B) (VALUE-B) 944*35238bceSAndroid Build Coastguard Worker 945*35238bceSAndroid Build Coastguard Worker void main() 946*35238bceSAndroid Build Coastguard Worker { 947*35238bceSAndroid Build Coastguard Worker out0 = FUNCTION(3.0, 2.0); 948*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 949*35238bceSAndroid Build Coastguard Worker } 950*35238bceSAndroid Build Coastguard Worker "" 951*35238bceSAndroid Build Coastguard Worker end 952*35238bceSAndroid Build Coastguard Worker 953*35238bceSAndroid Build Coastguard Worker case complex_func 954*35238bceSAndroid Build Coastguard Worker version 300 es 955*35238bceSAndroid Build Coastguard Worker values { output float out0 = 518.5; } 956*35238bceSAndroid Build Coastguard Worker both "" 957*35238bceSAndroid Build Coastguard Worker #version 300 es 958*35238bceSAndroid Build Coastguard Worker precision mediump float; 959*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 960*35238bceSAndroid Build Coastguard Worker #define AAA(a,b) a*(BBB(a,b)) 961*35238bceSAndroid Build Coastguard Worker #define BBB(a,b) a-b 962*35238bceSAndroid Build Coastguard Worker 963*35238bceSAndroid Build Coastguard Worker void main() 964*35238bceSAndroid Build Coastguard Worker { 965*35238bceSAndroid Build Coastguard Worker out0 = BBB(AAA(8.0/4.0, 2.0)*BBB(2.0*2.0,0.75*2.0), AAA(40.0,10.0*BBB(5.0,3.0))); 966*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 967*35238bceSAndroid Build Coastguard Worker } 968*35238bceSAndroid Build Coastguard Worker "" 969*35238bceSAndroid Build Coastguard Worker end 970*35238bceSAndroid Build Coastguard Worker 971*35238bceSAndroid Build Coastguard Worker case function_definition_with_comments 972*35238bceSAndroid Build Coastguard Worker version 300 es 973*35238bceSAndroid Build Coastguard Worker values { output float out0 = 3.0; } 974*35238bceSAndroid Build Coastguard Worker both "" 975*35238bceSAndroid Build Coastguard Worker #version 300 es 976*35238bceSAndroid Build Coastguard Worker precision mediump float; 977*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 978*35238bceSAndroid Build Coastguard Worker /* sdfljk */ #/* sdfljk */define /* sdfljk */ FUNC( /* jklsfd*/a /*sfdjklh*/, /*sdfklj */b /*sdfklj*/) a+b 979*35238bceSAndroid Build Coastguard Worker 980*35238bceSAndroid Build Coastguard Worker void main() 981*35238bceSAndroid Build Coastguard Worker { 982*35238bceSAndroid Build Coastguard Worker out0 = FUNC(1.0, 2.0); 983*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 984*35238bceSAndroid Build Coastguard Worker } 985*35238bceSAndroid Build Coastguard Worker "" 986*35238bceSAndroid Build Coastguard Worker end 987*35238bceSAndroid Build Coastguard Worker 988*35238bceSAndroid Build Coastguard Workerend # function_definitions 989*35238bceSAndroid Build Coastguard Worker 990*35238bceSAndroid Build Coastguard Workergroup recursion "Recursions Tests" 991*35238bceSAndroid Build Coastguard Worker 992*35238bceSAndroid Build Coastguard Worker case recursion_1 993*35238bceSAndroid Build Coastguard Worker version 300 es 994*35238bceSAndroid Build Coastguard Worker expect compile_fail 995*35238bceSAndroid Build Coastguard Worker both "" 996*35238bceSAndroid Build Coastguard Worker #version 300 es 997*35238bceSAndroid Build Coastguard Worker precision mediump float; 998*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 999*35238bceSAndroid Build Coastguard Worker # define AAA AAA 1000*35238bceSAndroid Build Coastguard Worker 1001*35238bceSAndroid Build Coastguard Worker void main() 1002*35238bceSAndroid Build Coastguard Worker { 1003*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(AAA); 1004*35238bceSAndroid Build Coastguard Worker } 1005*35238bceSAndroid Build Coastguard Worker "" 1006*35238bceSAndroid Build Coastguard Worker end 1007*35238bceSAndroid Build Coastguard Worker 1008*35238bceSAndroid Build Coastguard Worker case recursion_2 1009*35238bceSAndroid Build Coastguard Worker version 300 es 1010*35238bceSAndroid Build Coastguard Worker expect compile_fail 1011*35238bceSAndroid Build Coastguard Worker both "" 1012*35238bceSAndroid Build Coastguard Worker #version 300 es 1013*35238bceSAndroid Build Coastguard Worker precision mediump float; 1014*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1015*35238bceSAndroid Build Coastguard Worker # define AAA BBB 1016*35238bceSAndroid Build Coastguard Worker #define BBB AAA 1017*35238bceSAndroid Build Coastguard Worker 1018*35238bceSAndroid Build Coastguard Worker void main() 1019*35238bceSAndroid Build Coastguard Worker { 1020*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(AAA); 1021*35238bceSAndroid Build Coastguard Worker } 1022*35238bceSAndroid Build Coastguard Worker "" 1023*35238bceSAndroid Build Coastguard Worker end 1024*35238bceSAndroid Build Coastguard Worker 1025*35238bceSAndroid Build Coastguard Worker case recursion_3 1026*35238bceSAndroid Build Coastguard Worker version 300 es 1027*35238bceSAndroid Build Coastguard Worker expect compile_fail 1028*35238bceSAndroid Build Coastguard Worker both "" 1029*35238bceSAndroid Build Coastguard Worker #version 300 es 1030*35238bceSAndroid Build Coastguard Worker precision mediump float; 1031*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1032*35238bceSAndroid Build Coastguard Worker # define AAA (1.0+BBB) 1033*35238bceSAndroid Build Coastguard Worker #define BBB (2.0+AAA) 1034*35238bceSAndroid Build Coastguard Worker 1035*35238bceSAndroid Build Coastguard Worker void main() 1036*35238bceSAndroid Build Coastguard Worker { 1037*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(AAA); 1038*35238bceSAndroid Build Coastguard Worker } 1039*35238bceSAndroid Build Coastguard Worker "" 1040*35238bceSAndroid Build Coastguard Worker end 1041*35238bceSAndroid Build Coastguard Worker 1042*35238bceSAndroid Build Coastguard Worker case recursion_4 1043*35238bceSAndroid Build Coastguard Worker version 300 es 1044*35238bceSAndroid Build Coastguard Worker expect compile_fail 1045*35238bceSAndroid Build Coastguard Worker both "" 1046*35238bceSAndroid Build Coastguard Worker #version 300 es 1047*35238bceSAndroid Build Coastguard Worker precision mediump float; 1048*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1049*35238bceSAndroid Build Coastguard Worker # define AAA(a) AAA(a) 1050*35238bceSAndroid Build Coastguard Worker 1051*35238bceSAndroid Build Coastguard Worker void main() 1052*35238bceSAndroid Build Coastguard Worker { 1053*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(AAA(1.0)); 1054*35238bceSAndroid Build Coastguard Worker } 1055*35238bceSAndroid Build Coastguard Worker "" 1056*35238bceSAndroid Build Coastguard Worker end 1057*35238bceSAndroid Build Coastguard Worker 1058*35238bceSAndroid Build Coastguard Worker case recursion_5 1059*35238bceSAndroid Build Coastguard Worker version 300 es 1060*35238bceSAndroid Build Coastguard Worker expect compile_fail 1061*35238bceSAndroid Build Coastguard Worker both "" 1062*35238bceSAndroid Build Coastguard Worker #version 300 es 1063*35238bceSAndroid Build Coastguard Worker precision mediump float; 1064*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1065*35238bceSAndroid Build Coastguard Worker # define AAA(a, b) AAA(b, a) 1066*35238bceSAndroid Build Coastguard Worker 1067*35238bceSAndroid Build Coastguard Worker void main() 1068*35238bceSAndroid Build Coastguard Worker { 1069*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(AAA(1.0, 2.0)); 1070*35238bceSAndroid Build Coastguard Worker } 1071*35238bceSAndroid Build Coastguard Worker "" 1072*35238bceSAndroid Build Coastguard Worker end 1073*35238bceSAndroid Build Coastguard Worker 1074*35238bceSAndroid Build Coastguard Workerend # recursion 1075*35238bceSAndroid Build Coastguard Worker 1076*35238bceSAndroid Build Coastguard Workergroup function_redefinitions "Function Redefinition Tests" 1077*35238bceSAndroid Build Coastguard Worker 1078*35238bceSAndroid Build Coastguard Worker case function_redefinition_1 1079*35238bceSAndroid Build Coastguard Worker version 300 es 1080*35238bceSAndroid Build Coastguard Worker values { output float out0 = 3.0; } 1081*35238bceSAndroid Build Coastguard Worker both "" 1082*35238bceSAndroid Build Coastguard Worker #version 300 es 1083*35238bceSAndroid Build Coastguard Worker precision mediump float; 1084*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1085*35238bceSAndroid Build Coastguard Worker # define FUNC( a, b) a+b 1086*35238bceSAndroid Build Coastguard Worker 1087*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1088*35238bceSAndroid Build Coastguard Worker void main() 1089*35238bceSAndroid Build Coastguard Worker { 1090*35238bceSAndroid Build Coastguard Worker out0 = FUNC(1.0, 2.0); 1091*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1092*35238bceSAndroid Build Coastguard Worker } 1093*35238bceSAndroid Build Coastguard Worker "" 1094*35238bceSAndroid Build Coastguard Worker end 1095*35238bceSAndroid Build Coastguard Worker 1096*35238bceSAndroid Build Coastguard Worker case function_redefinition_2 1097*35238bceSAndroid Build Coastguard Worker version 300 es 1098*35238bceSAndroid Build Coastguard Worker values { output float out0 = 3.0; } 1099*35238bceSAndroid Build Coastguard Worker both "" 1100*35238bceSAndroid Build Coastguard Worker #version 300 es 1101*35238bceSAndroid Build Coastguard Worker precision mediump float; 1102*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) (a +b) 1103*35238bceSAndroid Build Coastguard Worker # define FUNC( a, b )(a +b) 1104*35238bceSAndroid Build Coastguard Worker 1105*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1106*35238bceSAndroid Build Coastguard Worker void main() 1107*35238bceSAndroid Build Coastguard Worker { 1108*35238bceSAndroid Build Coastguard Worker out0 = FUNC(1.0, 2.0); 1109*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1110*35238bceSAndroid Build Coastguard Worker } 1111*35238bceSAndroid Build Coastguard Worker "" 1112*35238bceSAndroid Build Coastguard Worker end 1113*35238bceSAndroid Build Coastguard Worker 1114*35238bceSAndroid Build Coastguard Worker case function_redefinition_3 1115*35238bceSAndroid Build Coastguard Worker version 300 es 1116*35238bceSAndroid Build Coastguard Worker values { output float out0 = 3.0; } 1117*35238bceSAndroid Build Coastguard Worker both "" 1118*35238bceSAndroid Build Coastguard Worker #version 300 es 1119*35238bceSAndroid Build Coastguard Worker precision mediump float; 1120*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) (a +b) 1121*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b)(a /* comment 1122*35238bceSAndroid Build Coastguard Worker */ +b) 1123*35238bceSAndroid Build Coastguard Worker 1124*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1125*35238bceSAndroid Build Coastguard Worker void main() 1126*35238bceSAndroid Build Coastguard Worker { 1127*35238bceSAndroid Build Coastguard Worker out0 = FUNC(1.0, 2.0); 1128*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1129*35238bceSAndroid Build Coastguard Worker } 1130*35238bceSAndroid Build Coastguard Worker "" 1131*35238bceSAndroid Build Coastguard Worker end 1132*35238bceSAndroid Build Coastguard Worker 1133*35238bceSAndroid Build Coastguard Worker case invalid_function_redefinition_param_1 1134*35238bceSAndroid Build Coastguard Worker version 300 es 1135*35238bceSAndroid Build Coastguard Worker expect compile_fail 1136*35238bceSAndroid Build Coastguard Worker both "" 1137*35238bceSAndroid Build Coastguard Worker #version 300 es 1138*35238bceSAndroid Build Coastguard Worker precision mediump float; 1139*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1140*35238bceSAndroid Build Coastguard Worker # define FUNC(A,b) A+b 1141*35238bceSAndroid Build Coastguard Worker 1142*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1143*35238bceSAndroid Build Coastguard Worker void main() 1144*35238bceSAndroid Build Coastguard Worker { 1145*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0)); 1146*35238bceSAndroid Build Coastguard Worker } 1147*35238bceSAndroid Build Coastguard Worker "" 1148*35238bceSAndroid Build Coastguard Worker end 1149*35238bceSAndroid Build Coastguard Worker 1150*35238bceSAndroid Build Coastguard Worker case invalid_function_redefinition_param_2 1151*35238bceSAndroid Build Coastguard Worker version 300 es 1152*35238bceSAndroid Build Coastguard Worker expect compile_fail 1153*35238bceSAndroid Build Coastguard Worker both "" 1154*35238bceSAndroid Build Coastguard Worker #version 300 es 1155*35238bceSAndroid Build Coastguard Worker precision mediump float; 1156*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1157*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b,c) a+b+c 1158*35238bceSAndroid Build Coastguard Worker 1159*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1160*35238bceSAndroid Build Coastguard Worker void main() 1161*35238bceSAndroid Build Coastguard Worker { 1162*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0, 3.0)); 1163*35238bceSAndroid Build Coastguard Worker } 1164*35238bceSAndroid Build Coastguard Worker "" 1165*35238bceSAndroid Build Coastguard Worker end 1166*35238bceSAndroid Build Coastguard Worker 1167*35238bceSAndroid Build Coastguard Worker case invalid_function_redefinition_param_3 1168*35238bceSAndroid Build Coastguard Worker version 300 es 1169*35238bceSAndroid Build Coastguard Worker expect compile_fail 1170*35238bceSAndroid Build Coastguard Worker both "" 1171*35238bceSAndroid Build Coastguard Worker #version 300 es 1172*35238bceSAndroid Build Coastguard Worker precision mediump float; 1173*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1174*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) b+a 1175*35238bceSAndroid Build Coastguard Worker 1176*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1177*35238bceSAndroid Build Coastguard Worker void main() 1178*35238bceSAndroid Build Coastguard Worker { 1179*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0)); 1180*35238bceSAndroid Build Coastguard Worker } 1181*35238bceSAndroid Build Coastguard Worker "" 1182*35238bceSAndroid Build Coastguard Worker end 1183*35238bceSAndroid Build Coastguard Worker 1184*35238bceSAndroid Build Coastguard Workerend # functions_redefinitions 1185*35238bceSAndroid Build Coastguard Worker 1186*35238bceSAndroid Build Coastguard Workergroup invalid_function_definitions "Invalid Function Definition Tests" 1187*35238bceSAndroid Build Coastguard Worker 1188*35238bceSAndroid Build Coastguard Worker case arguments_1 1189*35238bceSAndroid Build Coastguard Worker version 300 es 1190*35238bceSAndroid Build Coastguard Worker expect compile_fail 1191*35238bceSAndroid Build Coastguard Worker both "" 1192*35238bceSAndroid Build Coastguard Worker #version 300 es 1193*35238bceSAndroid Build Coastguard Worker precision mediump float; 1194*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1195*35238bceSAndroid Build Coastguard Worker 1196*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1197*35238bceSAndroid Build Coastguard Worker void main() 1198*35238bceSAndroid Build Coastguard Worker { 1199*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC); 1200*35238bceSAndroid Build Coastguard Worker } 1201*35238bceSAndroid Build Coastguard Worker "" 1202*35238bceSAndroid Build Coastguard Worker end 1203*35238bceSAndroid Build Coastguard Worker 1204*35238bceSAndroid Build Coastguard Worker case arguments_2 1205*35238bceSAndroid Build Coastguard Worker version 300 es 1206*35238bceSAndroid Build Coastguard Worker expect compile_fail 1207*35238bceSAndroid Build Coastguard Worker both "" 1208*35238bceSAndroid Build Coastguard Worker #version 300 es 1209*35238bceSAndroid Build Coastguard Worker precision mediump float; 1210*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1211*35238bceSAndroid Build Coastguard Worker 1212*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1213*35238bceSAndroid Build Coastguard Worker void main() 1214*35238bceSAndroid Build Coastguard Worker { 1215*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC()); 1216*35238bceSAndroid Build Coastguard Worker } 1217*35238bceSAndroid Build Coastguard Worker "" 1218*35238bceSAndroid Build Coastguard Worker end 1219*35238bceSAndroid Build Coastguard Worker 1220*35238bceSAndroid Build Coastguard Worker case arguments_3 1221*35238bceSAndroid Build Coastguard Worker version 300 es 1222*35238bceSAndroid Build Coastguard Worker expect compile_fail 1223*35238bceSAndroid Build Coastguard Worker both "" 1224*35238bceSAndroid Build Coastguard Worker #version 300 es 1225*35238bceSAndroid Build Coastguard Worker precision mediump float; 1226*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1227*35238bceSAndroid Build Coastguard Worker 1228*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1229*35238bceSAndroid Build Coastguard Worker void main() 1230*35238bceSAndroid Build Coastguard Worker { 1231*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(((); 1232*35238bceSAndroid Build Coastguard Worker } 1233*35238bceSAndroid Build Coastguard Worker "" 1234*35238bceSAndroid Build Coastguard Worker end 1235*35238bceSAndroid Build Coastguard Worker 1236*35238bceSAndroid Build Coastguard Worker case arguments_4 1237*35238bceSAndroid Build Coastguard Worker version 300 es 1238*35238bceSAndroid Build Coastguard Worker expect compile_fail 1239*35238bceSAndroid Build Coastguard Worker both "" 1240*35238bceSAndroid Build Coastguard Worker #version 300 es 1241*35238bceSAndroid Build Coastguard Worker precision mediump float; 1242*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1243*35238bceSAndroid Build Coastguard Worker 1244*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1245*35238bceSAndroid Build Coastguard Worker void main() 1246*35238bceSAndroid Build Coastguard Worker { 1247*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC)); 1248*35238bceSAndroid Build Coastguard Worker } 1249*35238bceSAndroid Build Coastguard Worker "" 1250*35238bceSAndroid Build Coastguard Worker end 1251*35238bceSAndroid Build Coastguard Worker 1252*35238bceSAndroid Build Coastguard Worker case arguments_5 1253*35238bceSAndroid Build Coastguard Worker version 300 es 1254*35238bceSAndroid Build Coastguard Worker expect compile_fail 1255*35238bceSAndroid Build Coastguard Worker both "" 1256*35238bceSAndroid Build Coastguard Worker #version 300 es 1257*35238bceSAndroid Build Coastguard Worker precision mediump float; 1258*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1259*35238bceSAndroid Build Coastguard Worker 1260*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1261*35238bceSAndroid Build Coastguard Worker void main() 1262*35238bceSAndroid Build Coastguard Worker { 1263*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0)); 1264*35238bceSAndroid Build Coastguard Worker } 1265*35238bceSAndroid Build Coastguard Worker "" 1266*35238bceSAndroid Build Coastguard Worker end 1267*35238bceSAndroid Build Coastguard Worker 1268*35238bceSAndroid Build Coastguard Worker case arguments_6 1269*35238bceSAndroid Build Coastguard Worker version 300 es 1270*35238bceSAndroid Build Coastguard Worker expect compile_fail 1271*35238bceSAndroid Build Coastguard Worker both "" 1272*35238bceSAndroid Build Coastguard Worker #version 300 es 1273*35238bceSAndroid Build Coastguard Worker precision mediump float; 1274*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1275*35238bceSAndroid Build Coastguard Worker 1276*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1277*35238bceSAndroid Build Coastguard Worker void main() 1278*35238bceSAndroid Build Coastguard Worker { 1279*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0); 1280*35238bceSAndroid Build Coastguard Worker } 1281*35238bceSAndroid Build Coastguard Worker "" 1282*35238bceSAndroid Build Coastguard Worker end 1283*35238bceSAndroid Build Coastguard Worker 1284*35238bceSAndroid Build Coastguard Worker case arguments_7 1285*35238bceSAndroid Build Coastguard Worker version 300 es 1286*35238bceSAndroid Build Coastguard Worker expect compile_fail 1287*35238bceSAndroid Build Coastguard Worker both "" 1288*35238bceSAndroid Build Coastguard Worker #version 300 es 1289*35238bceSAndroid Build Coastguard Worker precision mediump float; 1290*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1291*35238bceSAndroid Build Coastguard Worker 1292*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1293*35238bceSAndroid Build Coastguard Worker void main() 1294*35238bceSAndroid Build Coastguard Worker { 1295*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,)); 1296*35238bceSAndroid Build Coastguard Worker } 1297*35238bceSAndroid Build Coastguard Worker "" 1298*35238bceSAndroid Build Coastguard Worker end 1299*35238bceSAndroid Build Coastguard Worker 1300*35238bceSAndroid Build Coastguard Worker case arguments_8 1301*35238bceSAndroid Build Coastguard Worker version 300 es 1302*35238bceSAndroid Build Coastguard Worker expect compile_fail 1303*35238bceSAndroid Build Coastguard Worker both "" 1304*35238bceSAndroid Build Coastguard Worker #version 300 es 1305*35238bceSAndroid Build Coastguard Worker precision mediump float; 1306*35238bceSAndroid Build Coastguard Worker # define FUNC(a,b) a+b 1307*35238bceSAndroid Build Coastguard Worker 1308*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1309*35238bceSAndroid Build Coastguard Worker void main() 1310*35238bceSAndroid Build Coastguard Worker { 1311*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0, 2.0, 3.0)); 1312*35238bceSAndroid Build Coastguard Worker } 1313*35238bceSAndroid Build Coastguard Worker "" 1314*35238bceSAndroid Build Coastguard Worker end 1315*35238bceSAndroid Build Coastguard Worker 1316*35238bceSAndroid Build Coastguard Worker case unique_param_name 1317*35238bceSAndroid Build Coastguard Worker version 300 es 1318*35238bceSAndroid Build Coastguard Worker expect compile_fail 1319*35238bceSAndroid Build Coastguard Worker both "" 1320*35238bceSAndroid Build Coastguard Worker #version 300 es 1321*35238bceSAndroid Build Coastguard Worker precision mediump float; 1322*35238bceSAndroid Build Coastguard Worker # define FUNC(a,a) a+a 1323*35238bceSAndroid Build Coastguard Worker 1324*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1325*35238bceSAndroid Build Coastguard Worker void main() 1326*35238bceSAndroid Build Coastguard Worker { 1327*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 1328*35238bceSAndroid Build Coastguard Worker } 1329*35238bceSAndroid Build Coastguard Worker "" 1330*35238bceSAndroid Build Coastguard Worker end 1331*35238bceSAndroid Build Coastguard Worker 1332*35238bceSAndroid Build Coastguard Worker case argument_list_1 1333*35238bceSAndroid Build Coastguard Worker version 300 es 1334*35238bceSAndroid Build Coastguard Worker expect compile_fail 1335*35238bceSAndroid Build Coastguard Worker both "" 1336*35238bceSAndroid Build Coastguard Worker #version 300 es 1337*35238bceSAndroid Build Coastguard Worker precision mediump float; 1338*35238bceSAndroid Build Coastguard Worker # define FUNC(a b) a+b 1339*35238bceSAndroid Build Coastguard Worker 1340*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1341*35238bceSAndroid Build Coastguard Worker void main() 1342*35238bceSAndroid Build Coastguard Worker { 1343*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 1344*35238bceSAndroid Build Coastguard Worker } 1345*35238bceSAndroid Build Coastguard Worker "" 1346*35238bceSAndroid Build Coastguard Worker end 1347*35238bceSAndroid Build Coastguard Worker 1348*35238bceSAndroid Build Coastguard Worker case argument_list_2 1349*35238bceSAndroid Build Coastguard Worker version 300 es 1350*35238bceSAndroid Build Coastguard Worker expect compile_fail 1351*35238bceSAndroid Build Coastguard Worker both "" 1352*35238bceSAndroid Build Coastguard Worker #version 300 es 1353*35238bceSAndroid Build Coastguard Worker precision mediump float; 1354*35238bceSAndroid Build Coastguard Worker # define FUNC(a + b) a+b 1355*35238bceSAndroid Build Coastguard Worker 1356*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1357*35238bceSAndroid Build Coastguard Worker void main() 1358*35238bceSAndroid Build Coastguard Worker { 1359*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 1360*35238bceSAndroid Build Coastguard Worker } 1361*35238bceSAndroid Build Coastguard Worker "" 1362*35238bceSAndroid Build Coastguard Worker end 1363*35238bceSAndroid Build Coastguard Worker 1364*35238bceSAndroid Build Coastguard Worker case argument_list_3 1365*35238bceSAndroid Build Coastguard Worker version 300 es 1366*35238bceSAndroid Build Coastguard Worker expect compile_fail 1367*35238bceSAndroid Build Coastguard Worker both "" 1368*35238bceSAndroid Build Coastguard Worker #version 300 es 1369*35238bceSAndroid Build Coastguard Worker precision mediump float; 1370*35238bceSAndroid Build Coastguard Worker # define FUNC(,a,b) a+b 1371*35238bceSAndroid Build Coastguard Worker 1372*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1373*35238bceSAndroid Build Coastguard Worker void main() 1374*35238bceSAndroid Build Coastguard Worker { 1375*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 1376*35238bceSAndroid Build Coastguard Worker } 1377*35238bceSAndroid Build Coastguard Worker "" 1378*35238bceSAndroid Build Coastguard Worker end 1379*35238bceSAndroid Build Coastguard Worker 1380*35238bceSAndroid Build Coastguard Worker case no_closing_parenthesis_1 1381*35238bceSAndroid Build Coastguard Worker version 300 es 1382*35238bceSAndroid Build Coastguard Worker expect compile_fail 1383*35238bceSAndroid Build Coastguard Worker both "" 1384*35238bceSAndroid Build Coastguard Worker #version 300 es 1385*35238bceSAndroid Build Coastguard Worker precision mediump float; 1386*35238bceSAndroid Build Coastguard Worker # define FUNC( 1387*35238bceSAndroid Build Coastguard Worker 1388*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1389*35238bceSAndroid Build Coastguard Worker void main() 1390*35238bceSAndroid Build Coastguard Worker { 1391*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 1392*35238bceSAndroid Build Coastguard Worker } 1393*35238bceSAndroid Build Coastguard Worker "" 1394*35238bceSAndroid Build Coastguard Worker end 1395*35238bceSAndroid Build Coastguard Worker 1396*35238bceSAndroid Build Coastguard Worker case no_closing_parenthesis_2 1397*35238bceSAndroid Build Coastguard Worker version 300 es 1398*35238bceSAndroid Build Coastguard Worker expect compile_fail 1399*35238bceSAndroid Build Coastguard Worker both "" 1400*35238bceSAndroid Build Coastguard Worker #version 300 es 1401*35238bceSAndroid Build Coastguard Worker precision mediump float; 1402*35238bceSAndroid Build Coastguard Worker # define FUNC(A a+b 1403*35238bceSAndroid Build Coastguard Worker 1404*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1405*35238bceSAndroid Build Coastguard Worker void main() 1406*35238bceSAndroid Build Coastguard Worker { 1407*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 1408*35238bceSAndroid Build Coastguard Worker } 1409*35238bceSAndroid Build Coastguard Worker "" 1410*35238bceSAndroid Build Coastguard Worker end 1411*35238bceSAndroid Build Coastguard Worker 1412*35238bceSAndroid Build Coastguard Worker case no_closing_parenthesis_3 1413*35238bceSAndroid Build Coastguard Worker version 300 es 1414*35238bceSAndroid Build Coastguard Worker expect compile_fail 1415*35238bceSAndroid Build Coastguard Worker both "" 1416*35238bceSAndroid Build Coastguard Worker #version 300 es 1417*35238bceSAndroid Build Coastguard Worker precision mediump float; 1418*35238bceSAndroid Build Coastguard Worker # define FUNC(A,B,C a+b 1419*35238bceSAndroid Build Coastguard Worker 1420*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1421*35238bceSAndroid Build Coastguard Worker void main() 1422*35238bceSAndroid Build Coastguard Worker { 1423*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0)); 1424*35238bceSAndroid Build Coastguard Worker } 1425*35238bceSAndroid Build Coastguard Worker "" 1426*35238bceSAndroid Build Coastguard Worker end 1427*35238bceSAndroid Build Coastguard Worker 1428*35238bceSAndroid Build Coastguard Worker case no_closing_parenthesis_4 1429*35238bceSAndroid Build Coastguard Worker version 300 es 1430*35238bceSAndroid Build Coastguard Worker expect compile_fail 1431*35238bceSAndroid Build Coastguard Worker both "" 1432*35238bceSAndroid Build Coastguard Worker #version 300 es 1433*35238bceSAndroid Build Coastguard Worker precision mediump float; 1434*35238bceSAndroid Build Coastguard Worker # define FUNC( 1435*35238bceSAndroid Build Coastguard Worker "" 1436*35238bceSAndroid Build Coastguard Worker end 1437*35238bceSAndroid Build Coastguard Worker 1438*35238bceSAndroid Build Coastguard Workerend # invalid_function_definitions 1439*35238bceSAndroid Build Coastguard Worker 1440*35238bceSAndroid Build Coastguard Workergroup semantic "Semantic Tests" 1441*35238bceSAndroid Build Coastguard Worker 1442*35238bceSAndroid Build Coastguard Worker case ops_as_arguments 1443*35238bceSAndroid Build Coastguard Worker version 300 es 1444*35238bceSAndroid Build Coastguard Worker values { output float out0 = 20.0; } 1445*35238bceSAndroid Build Coastguard Worker both "" 1446*35238bceSAndroid Build Coastguard Worker #version 300 es 1447*35238bceSAndroid Build Coastguard Worker precision mediump float; 1448*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1449*35238bceSAndroid Build Coastguard Worker #define FOO(a, b) (1 a 9) b 2 1450*35238bceSAndroid Build Coastguard Worker 1451*35238bceSAndroid Build Coastguard Worker void main() 1452*35238bceSAndroid Build Coastguard Worker { 1453*35238bceSAndroid Build Coastguard Worker out0 = float(FOO(+, *)); 1454*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1455*35238bceSAndroid Build Coastguard Worker } 1456*35238bceSAndroid Build Coastguard Worker "" 1457*35238bceSAndroid Build Coastguard Worker end 1458*35238bceSAndroid Build Coastguard Worker 1459*35238bceSAndroid Build Coastguard Worker case correct_order 1460*35238bceSAndroid Build Coastguard Worker version 300 es 1461*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1462*35238bceSAndroid Build Coastguard Worker both "" 1463*35238bceSAndroid Build Coastguard Worker #version 300 es 1464*35238bceSAndroid Build Coastguard Worker precision mediump float; 1465*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1466*35238bceSAndroid Build Coastguard Worker #define FUNC(A) A 1467*35238bceSAndroid Build Coastguard Worker #define A 2.0 1468*35238bceSAndroid Build Coastguard Worker 1469*35238bceSAndroid Build Coastguard Worker void main() 1470*35238bceSAndroid Build Coastguard Worker { 1471*35238bceSAndroid Build Coastguard Worker out0 = FUNC(A - 1.0); 1472*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1473*35238bceSAndroid Build Coastguard Worker } 1474*35238bceSAndroid Build Coastguard Worker "" 1475*35238bceSAndroid Build Coastguard Worker end 1476*35238bceSAndroid Build Coastguard Worker 1477*35238bceSAndroid Build Coastguard Workerend # semantic 1478*35238bceSAndroid Build Coastguard Worker 1479*35238bceSAndroid Build Coastguard Workergroup predefined_macros "Predefined Macros Tests" 1480*35238bceSAndroid Build Coastguard Worker 1481*35238bceSAndroid Build Coastguard Worker case version 1482*35238bceSAndroid Build Coastguard Worker version 300 es 1483*35238bceSAndroid Build Coastguard Worker values { output float out0 = 300.0; } 1484*35238bceSAndroid Build Coastguard Worker both "" 1485*35238bceSAndroid Build Coastguard Worker #version 300 es 1486*35238bceSAndroid Build Coastguard Worker precision mediump float; 1487*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1488*35238bceSAndroid Build Coastguard Worker void main() 1489*35238bceSAndroid Build Coastguard Worker { 1490*35238bceSAndroid Build Coastguard Worker #define AAA __VERSION__ 1491*35238bceSAndroid Build Coastguard Worker out0 = float(AAA); 1492*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1493*35238bceSAndroid Build Coastguard Worker } 1494*35238bceSAndroid Build Coastguard Worker "" 1495*35238bceSAndroid Build Coastguard Worker end 1496*35238bceSAndroid Build Coastguard Worker 1497*35238bceSAndroid Build Coastguard Worker case gl_es_1 1498*35238bceSAndroid Build Coastguard Worker version 300 es 1499*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1500*35238bceSAndroid Build Coastguard Worker both "" 1501*35238bceSAndroid Build Coastguard Worker #version 300 es 1502*35238bceSAndroid Build Coastguard Worker precision mediump float; 1503*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1504*35238bceSAndroid Build Coastguard Worker 1505*35238bceSAndroid Build Coastguard Worker void main() 1506*35238bceSAndroid Build Coastguard Worker { 1507*35238bceSAndroid Build Coastguard Worker out0 = float(GL_ES); 1508*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1509*35238bceSAndroid Build Coastguard Worker } 1510*35238bceSAndroid Build Coastguard Worker "" 1511*35238bceSAndroid Build Coastguard Worker end 1512*35238bceSAndroid Build Coastguard Worker 1513*35238bceSAndroid Build Coastguard Worker case gl_es_2 1514*35238bceSAndroid Build Coastguard Worker version 300 es 1515*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1516*35238bceSAndroid Build Coastguard Worker both "" 1517*35238bceSAndroid Build Coastguard Worker #version 300 es 1518*35238bceSAndroid Build Coastguard Worker precision mediump float; 1519*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1520*35238bceSAndroid Build Coastguard Worker #define AAA(A) A 1521*35238bceSAndroid Build Coastguard Worker 1522*35238bceSAndroid Build Coastguard Worker void main() 1523*35238bceSAndroid Build Coastguard Worker { 1524*35238bceSAndroid Build Coastguard Worker out0 = float(AAA(GL_ES)); 1525*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1526*35238bceSAndroid Build Coastguard Worker } 1527*35238bceSAndroid Build Coastguard Worker "" 1528*35238bceSAndroid Build Coastguard Worker end 1529*35238bceSAndroid Build Coastguard Worker 1530*35238bceSAndroid Build Coastguard Worker case line_1 1531*35238bceSAndroid Build Coastguard Worker version 300 es 1532*35238bceSAndroid Build Coastguard Worker values { output float out0 = 2.0; } 1533*35238bceSAndroid Build Coastguard Worker both "" 1534*35238bceSAndroid Build Coastguard Worker #version 300 es 1535*35238bceSAndroid Build Coastguard Worker const mediump int line = __LINE__; 1536*35238bceSAndroid Build Coastguard Worker precision mediump float; 1537*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1538*35238bceSAndroid Build Coastguard Worker void main() 1539*35238bceSAndroid Build Coastguard Worker { 1540*35238bceSAndroid Build Coastguard Worker out0 = float(line); 1541*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1542*35238bceSAndroid Build Coastguard Worker } 1543*35238bceSAndroid Build Coastguard Worker "" 1544*35238bceSAndroid Build Coastguard Worker end 1545*35238bceSAndroid Build Coastguard Worker 1546*35238bceSAndroid Build Coastguard Worker case line_2 1547*35238bceSAndroid Build Coastguard Worker version 300 es 1548*35238bceSAndroid Build Coastguard Worker # Note: Arguments are macro replaced in the first stage. 1549*35238bceSAndroid Build Coastguard Worker # Macro replacement list is expanded in the last stage. 1550*35238bceSAndroid Build Coastguard Worker values { output vec4 out0 = vec4(12.0, 12.0, 10.0, 11.0); } 1551*35238bceSAndroid Build Coastguard Worker 1552*35238bceSAndroid Build Coastguard Worker both "" 1553*35238bceSAndroid Build Coastguard Worker #version 300 es 1554*35238bceSAndroid Build Coastguard Worker precision mediump float; 1555*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS:single-line} 1556*35238bceSAndroid Build Coastguard Worker #define BBB __LINE__, /* 1557*35238bceSAndroid Build Coastguard Worker */ __LINE__ 1558*35238bceSAndroid Build Coastguard Worker #define AAA(a,b) BBB, a, b 1559*35238bceSAndroid Build Coastguard Worker 1560*35238bceSAndroid Build Coastguard Worker void main() 1561*35238bceSAndroid Build Coastguard Worker { 1562*35238bceSAndroid Build Coastguard Worker out0 = vec4(AAA(__LINE__, 1563*35238bceSAndroid Build Coastguard Worker __LINE__ 1564*35238bceSAndroid Build Coastguard Worker )); 1565*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1566*35238bceSAndroid Build Coastguard Worker } 1567*35238bceSAndroid Build Coastguard Worker "" 1568*35238bceSAndroid Build Coastguard Worker end 1569*35238bceSAndroid Build Coastguard Worker 1570*35238bceSAndroid Build Coastguard Worker case file 1571*35238bceSAndroid Build Coastguard Worker version 300 es 1572*35238bceSAndroid Build Coastguard Worker values { output float out0 = 0.0; } 1573*35238bceSAndroid Build Coastguard Worker both "" 1574*35238bceSAndroid Build Coastguard Worker #version 300 es 1575*35238bceSAndroid Build Coastguard Worker precision mediump float; 1576*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1577*35238bceSAndroid Build Coastguard Worker void main() 1578*35238bceSAndroid Build Coastguard Worker { 1579*35238bceSAndroid Build Coastguard Worker out0 = float(__FILE__); 1580*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1581*35238bceSAndroid Build Coastguard Worker } 1582*35238bceSAndroid Build Coastguard Worker "" 1583*35238bceSAndroid Build Coastguard Worker end 1584*35238bceSAndroid Build Coastguard Worker 1585*35238bceSAndroid Build Coastguard Worker case if_gl_es 1586*35238bceSAndroid Build Coastguard Worker version 300 es 1587*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1588*35238bceSAndroid Build Coastguard Worker both "" 1589*35238bceSAndroid Build Coastguard Worker #version 300 es 1590*35238bceSAndroid Build Coastguard Worker precision mediump float; 1591*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1592*35238bceSAndroid Build Coastguard Worker void main() 1593*35238bceSAndroid Build Coastguard Worker { 1594*35238bceSAndroid Build Coastguard Worker #if GL_ES 1595*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1596*35238bceSAndroid Build Coastguard Worker #else 1597*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 1598*35238bceSAndroid Build Coastguard Worker #endif 1599*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1600*35238bceSAndroid Build Coastguard Worker } 1601*35238bceSAndroid Build Coastguard Worker "" 1602*35238bceSAndroid Build Coastguard Worker end 1603*35238bceSAndroid Build Coastguard Worker 1604*35238bceSAndroid Build Coastguard Worker case if_version 1605*35238bceSAndroid Build Coastguard Worker version 300 es 1606*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1607*35238bceSAndroid Build Coastguard Worker both "" 1608*35238bceSAndroid Build Coastguard Worker #version 300 es 1609*35238bceSAndroid Build Coastguard Worker precision mediump float; 1610*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1611*35238bceSAndroid Build Coastguard Worker void main() 1612*35238bceSAndroid Build Coastguard Worker { 1613*35238bceSAndroid Build Coastguard Worker #if __VERSION__ == 300 1614*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1615*35238bceSAndroid Build Coastguard Worker #else 1616*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 1617*35238bceSAndroid Build Coastguard Worker #endif 1618*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1619*35238bceSAndroid Build Coastguard Worker } 1620*35238bceSAndroid Build Coastguard Worker "" 1621*35238bceSAndroid Build Coastguard Worker end 1622*35238bceSAndroid Build Coastguard Worker 1623*35238bceSAndroid Build Coastguard Workerend # predefined_macros 1624*35238bceSAndroid Build Coastguard Worker 1625*35238bceSAndroid Build Coastguard Workergroup conditional_inclusion "Conditional Inclusion Tests" 1626*35238bceSAndroid Build Coastguard Worker 1627*35238bceSAndroid Build Coastguard Worker case basic_1 1628*35238bceSAndroid Build Coastguard Worker version 300 es 1629*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1630*35238bceSAndroid Build Coastguard Worker both "" 1631*35238bceSAndroid Build Coastguard Worker #version 300 es 1632*35238bceSAndroid Build Coastguard Worker precision mediump float; 1633*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1634*35238bceSAndroid Build Coastguard Worker void main() 1635*35238bceSAndroid Build Coastguard Worker { 1636*35238bceSAndroid Build Coastguard Worker #define AAA asdf 1637*35238bceSAndroid Build Coastguard Worker 1638*35238bceSAndroid Build Coastguard Worker #if defined AAA && !defined(BBB) 1639*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1640*35238bceSAndroid Build Coastguard Worker #else 1641*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 1642*35238bceSAndroid Build Coastguard Worker #endif 1643*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1644*35238bceSAndroid Build Coastguard Worker } 1645*35238bceSAndroid Build Coastguard Worker "" 1646*35238bceSAndroid Build Coastguard Worker end 1647*35238bceSAndroid Build Coastguard Worker 1648*35238bceSAndroid Build Coastguard Worker case basic_2 1649*35238bceSAndroid Build Coastguard Worker version 300 es 1650*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1651*35238bceSAndroid Build Coastguard Worker both "" 1652*35238bceSAndroid Build Coastguard Worker #version 300 es 1653*35238bceSAndroid Build Coastguard Worker precision mediump float; 1654*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1655*35238bceSAndroid Build Coastguard Worker void main() 1656*35238bceSAndroid Build Coastguard Worker { 1657*35238bceSAndroid Build Coastguard Worker #define AAA defined(BBB) 1658*35238bceSAndroid Build Coastguard Worker 1659*35238bceSAndroid Build Coastguard Worker #if !AAA 1660*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1661*35238bceSAndroid Build Coastguard Worker #else 1662*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 1663*35238bceSAndroid Build Coastguard Worker #endif 1664*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1665*35238bceSAndroid Build Coastguard Worker } 1666*35238bceSAndroid Build Coastguard Worker "" 1667*35238bceSAndroid Build Coastguard Worker end 1668*35238bceSAndroid Build Coastguard Worker 1669*35238bceSAndroid Build Coastguard Worker case defined_macro_defined_test 1670*35238bceSAndroid Build Coastguard Worker version 300 es 1671*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1672*35238bceSAndroid Build Coastguard Worker both "" 1673*35238bceSAndroid Build Coastguard Worker #version 300 es 1674*35238bceSAndroid Build Coastguard Worker precision mediump float; 1675*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1676*35238bceSAndroid Build Coastguard Worker void main() 1677*35238bceSAndroid Build Coastguard Worker { 1678*35238bceSAndroid Build Coastguard Worker #define AAA defined 1679*35238bceSAndroid Build Coastguard Worker 1680*35238bceSAndroid Build Coastguard Worker #if AAA AAA 1681*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1682*35238bceSAndroid Build Coastguard Worker #else 1683*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 1684*35238bceSAndroid Build Coastguard Worker #endif 1685*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1686*35238bceSAndroid Build Coastguard Worker } 1687*35238bceSAndroid Build Coastguard Worker "" 1688*35238bceSAndroid Build Coastguard Worker end 1689*35238bceSAndroid Build Coastguard Worker 1690*35238bceSAndroid Build Coastguard Worker case defined_macro_undef 1691*35238bceSAndroid Build Coastguard Worker version 300 es 1692*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1693*35238bceSAndroid Build Coastguard Worker both "" 1694*35238bceSAndroid Build Coastguard Worker #version 300 es 1695*35238bceSAndroid Build Coastguard Worker precision mediump float; 1696*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1697*35238bceSAndroid Build Coastguard Worker void main() 1698*35238bceSAndroid Build Coastguard Worker { 1699*35238bceSAndroid Build Coastguard Worker #define BBB 1 1700*35238bceSAndroid Build Coastguard Worker #define AAA defined(BBB) 1701*35238bceSAndroid Build Coastguard Worker #undef BBB 1702*35238bceSAndroid Build Coastguard Worker 1703*35238bceSAndroid Build Coastguard Worker #if !AAA 1704*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1705*35238bceSAndroid Build Coastguard Worker #else 1706*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 1707*35238bceSAndroid Build Coastguard Worker #endif 1708*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1709*35238bceSAndroid Build Coastguard Worker } 1710*35238bceSAndroid Build Coastguard Worker "" 1711*35238bceSAndroid Build Coastguard Worker end 1712*35238bceSAndroid Build Coastguard Worker 1713*35238bceSAndroid Build Coastguard Worker case define_defined 1714*35238bceSAndroid Build Coastguard Worker version 300 es 1715*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1716*35238bceSAndroid Build Coastguard Worker both "" 1717*35238bceSAndroid Build Coastguard Worker #version 300 es 1718*35238bceSAndroid Build Coastguard Worker precision mediump float; 1719*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1720*35238bceSAndroid Build Coastguard Worker void main() 1721*35238bceSAndroid Build Coastguard Worker { 1722*35238bceSAndroid Build Coastguard Worker #define CCC 1 1723*35238bceSAndroid Build Coastguard Worker #define defined BBB 1724*35238bceSAndroid Build Coastguard Worker #define AAA defined 1725*35238bceSAndroid Build Coastguard Worker 1726*35238bceSAndroid Build Coastguard Worker #if AAA CCC 1727*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1728*35238bceSAndroid Build Coastguard Worker #else 1729*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 1730*35238bceSAndroid Build Coastguard Worker #endif 1731*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1732*35238bceSAndroid Build Coastguard Worker } 1733*35238bceSAndroid Build Coastguard Worker "" 1734*35238bceSAndroid Build Coastguard Worker end 1735*35238bceSAndroid Build Coastguard Worker 1736*35238bceSAndroid Build Coastguard Worker case define_defined_outside_if 1737*35238bceSAndroid Build Coastguard Worker version 300 es 1738*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1739*35238bceSAndroid Build Coastguard Worker both "" 1740*35238bceSAndroid Build Coastguard Worker #version 300 es 1741*35238bceSAndroid Build Coastguard Worker precision mediump float; 1742*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1743*35238bceSAndroid Build Coastguard Worker void main() 1744*35238bceSAndroid Build Coastguard Worker { 1745*35238bceSAndroid Build Coastguard Worker #define CCC - 0.5 1746*35238bceSAndroid Build Coastguard Worker #define defined 0.5 1747*35238bceSAndroid Build Coastguard Worker #define AAA defined 1748*35238bceSAndroid Build Coastguard Worker out0 = 1.0 - (AAA CCC); 1749*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1750*35238bceSAndroid Build Coastguard Worker } 1751*35238bceSAndroid Build Coastguard Worker "" 1752*35238bceSAndroid Build Coastguard Worker end 1753*35238bceSAndroid Build Coastguard Worker 1754*35238bceSAndroid Build Coastguard Worker case defined_invalid_before_all_macros_replaced 1755*35238bceSAndroid Build Coastguard Worker version 300 es 1756*35238bceSAndroid Build Coastguard Worker expect compile_fail 1757*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1758*35238bceSAndroid Build Coastguard Worker both "" 1759*35238bceSAndroid Build Coastguard Worker #version 300 es 1760*35238bceSAndroid Build Coastguard Worker precision mediump float; 1761*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1762*35238bceSAndroid Build Coastguard Worker void main() 1763*35238bceSAndroid Build Coastguard Worker { 1764*35238bceSAndroid Build Coastguard Worker #define FOO 1 1765*35238bceSAndroid Build Coastguard Worker #define OPEN defined( 1766*35238bceSAndroid Build Coastguard Worker #define CLOSE FOO) 1767*35238bceSAndroid Build Coastguard Worker 1768*35238bceSAndroid Build Coastguard Worker #if OPEN CLOSE 1769*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1770*35238bceSAndroid Build Coastguard Worker #else 1771*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 1772*35238bceSAndroid Build Coastguard Worker #endif 1773*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1774*35238bceSAndroid Build Coastguard Worker } 1775*35238bceSAndroid Build Coastguard Worker "" 1776*35238bceSAndroid Build Coastguard Worker end 1777*35238bceSAndroid Build Coastguard Worker 1778*35238bceSAndroid Build Coastguard Worker case basic_3 1779*35238bceSAndroid Build Coastguard Worker version 300 es 1780*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1781*35238bceSAndroid Build Coastguard Worker both "" 1782*35238bceSAndroid Build Coastguard Worker #version 300 es 1783*35238bceSAndroid Build Coastguard Worker precision mediump float; 1784*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1785*35238bceSAndroid Build Coastguard Worker void main() 1786*35238bceSAndroid Build Coastguard Worker { 1787*35238bceSAndroid Build Coastguard Worker #if 0 1788*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 1789*35238bceSAndroid Build Coastguard Worker #elif 0 1790*35238bceSAndroid Build Coastguard Worker out0 = -2.0; 1791*35238bceSAndroid Build Coastguard Worker #elif 1 1792*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1793*35238bceSAndroid Build Coastguard Worker #else 1794*35238bceSAndroid Build Coastguard Worker out0 = -3.0; 1795*35238bceSAndroid Build Coastguard Worker #endif 1796*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1797*35238bceSAndroid Build Coastguard Worker } 1798*35238bceSAndroid Build Coastguard Worker "" 1799*35238bceSAndroid Build Coastguard Worker end 1800*35238bceSAndroid Build Coastguard Worker 1801*35238bceSAndroid Build Coastguard Worker case basic_4 1802*35238bceSAndroid Build Coastguard Worker version 300 es 1803*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1804*35238bceSAndroid Build Coastguard Worker both "" 1805*35238bceSAndroid Build Coastguard Worker #version 300 es 1806*35238bceSAndroid Build Coastguard Worker precision mediump float; 1807*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1808*35238bceSAndroid Build Coastguard Worker void main() 1809*35238bceSAndroid Build Coastguard Worker { 1810*35238bceSAndroid Build Coastguard Worker #if 0 1811*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 1812*35238bceSAndroid Build Coastguard Worker #elif 0 1813*35238bceSAndroid Build Coastguard Worker out0 = -2.0; 1814*35238bceSAndroid Build Coastguard Worker #else 1815*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1816*35238bceSAndroid Build Coastguard Worker #endif 1817*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1818*35238bceSAndroid Build Coastguard Worker } 1819*35238bceSAndroid Build Coastguard Worker "" 1820*35238bceSAndroid Build Coastguard Worker end 1821*35238bceSAndroid Build Coastguard Worker 1822*35238bceSAndroid Build Coastguard Worker case basic_5 1823*35238bceSAndroid Build Coastguard Worker version 300 es 1824*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1825*35238bceSAndroid Build Coastguard Worker both "" 1826*35238bceSAndroid Build Coastguard Worker #version 300 es 1827*35238bceSAndroid Build Coastguard Worker precision mediump float; 1828*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1829*35238bceSAndroid Build Coastguard Worker void main() 1830*35238bceSAndroid Build Coastguard Worker { 1831*35238bceSAndroid Build Coastguard Worker #if 1 1832*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1833*35238bceSAndroid Build Coastguard Worker #elif 0 1834*35238bceSAndroid Build Coastguard Worker out0 = -2.0; 1835*35238bceSAndroid Build Coastguard Worker #else 1836*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 1837*35238bceSAndroid Build Coastguard Worker #endif 1838*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1839*35238bceSAndroid Build Coastguard Worker } 1840*35238bceSAndroid Build Coastguard Worker "" 1841*35238bceSAndroid Build Coastguard Worker end 1842*35238bceSAndroid Build Coastguard Worker 1843*35238bceSAndroid Build Coastguard Worker case unary_ops_1 1844*35238bceSAndroid Build Coastguard Worker version 300 es 1845*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1846*35238bceSAndroid Build Coastguard Worker both "" 1847*35238bceSAndroid Build Coastguard Worker #version 300 es 1848*35238bceSAndroid Build Coastguard Worker precision mediump float; 1849*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1850*35238bceSAndroid Build Coastguard Worker void main() 1851*35238bceSAndroid Build Coastguard Worker { 1852*35238bceSAndroid Build Coastguard Worker #if !((~2 >> 1) & 1) 1853*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1854*35238bceSAndroid Build Coastguard Worker #else 1855*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 1856*35238bceSAndroid Build Coastguard Worker #endif 1857*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1858*35238bceSAndroid Build Coastguard Worker } 1859*35238bceSAndroid Build Coastguard Worker "" 1860*35238bceSAndroid Build Coastguard Worker end 1861*35238bceSAndroid Build Coastguard Worker 1862*35238bceSAndroid Build Coastguard Worker case unary_ops_2 1863*35238bceSAndroid Build Coastguard Worker version 300 es 1864*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 1865*35238bceSAndroid Build Coastguard Worker both "" 1866*35238bceSAndroid Build Coastguard Worker #version 300 es 1867*35238bceSAndroid Build Coastguard Worker precision mediump float; 1868*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1869*35238bceSAndroid Build Coastguard Worker void main() 1870*35238bceSAndroid Build Coastguard Worker { 1871*35238bceSAndroid Build Coastguard Worker #if !((~(- - - - - 1 + + + + + +1) >> 1) & 1) 1872*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 1873*35238bceSAndroid Build Coastguard Worker #else 1874*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 1875*35238bceSAndroid Build Coastguard Worker #endif 1876*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 1877*35238bceSAndroid Build Coastguard Worker } 1878*35238bceSAndroid Build Coastguard Worker "" 1879*35238bceSAndroid Build Coastguard Worker end 1880*35238bceSAndroid Build Coastguard Worker 1881*35238bceSAndroid Build Coastguard Workerend # conditional_inclusion 1882*35238bceSAndroid Build Coastguard Worker 1883*35238bceSAndroid Build Coastguard Workergroup invalid_ops "Invalid Operations Tests" 1884*35238bceSAndroid Build Coastguard Worker 1885*35238bceSAndroid Build Coastguard Worker case invalid_op_1 1886*35238bceSAndroid Build Coastguard Worker version 300 es 1887*35238bceSAndroid Build Coastguard Worker expect compile_fail 1888*35238bceSAndroid Build Coastguard Worker both "" 1889*35238bceSAndroid Build Coastguard Worker #version 300 es 1890*35238bceSAndroid Build Coastguard Worker precision mediump float; 1891*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1892*35238bceSAndroid Build Coastguard Worker void main() 1893*35238bceSAndroid Build Coastguard Worker { 1894*35238bceSAndroid Build Coastguard Worker #if !((~(+ ++1 - - - -1) >> 1) & 1) 1895*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 1896*35238bceSAndroid Build Coastguard Worker #else 1897*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1898*35238bceSAndroid Build Coastguard Worker #endif 1899*35238bceSAndroid Build Coastguard Worker } 1900*35238bceSAndroid Build Coastguard Worker "" 1901*35238bceSAndroid Build Coastguard Worker end 1902*35238bceSAndroid Build Coastguard Worker 1903*35238bceSAndroid Build Coastguard Worker case invalid_op_2 1904*35238bceSAndroid Build Coastguard Worker version 300 es 1905*35238bceSAndroid Build Coastguard Worker expect compile_fail 1906*35238bceSAndroid Build Coastguard Worker both "" 1907*35238bceSAndroid Build Coastguard Worker #version 300 es 1908*35238bceSAndroid Build Coastguard Worker precision mediump float; 1909*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1910*35238bceSAndroid Build Coastguard Worker void main() 1911*35238bceSAndroid Build Coastguard Worker { 1912*35238bceSAndroid Build Coastguard Worker #if !((~(+ + +1 - -- -1) >> 1) & 1) 1913*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 1914*35238bceSAndroid Build Coastguard Worker #else 1915*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1916*35238bceSAndroid Build Coastguard Worker #endif 1917*35238bceSAndroid Build Coastguard Worker } 1918*35238bceSAndroid Build Coastguard Worker "" 1919*35238bceSAndroid Build Coastguard Worker end 1920*35238bceSAndroid Build Coastguard Worker 1921*35238bceSAndroid Build Coastguard Worker case invalid_defined_expected_identifier_1 1922*35238bceSAndroid Build Coastguard Worker version 300 es 1923*35238bceSAndroid Build Coastguard Worker expect compile_fail 1924*35238bceSAndroid Build Coastguard Worker both "" 1925*35238bceSAndroid Build Coastguard Worker #version 300 es 1926*35238bceSAndroid Build Coastguard Worker precision mediump float; 1927*35238bceSAndroid Build Coastguard Worker #define AAA 1 1928*35238bceSAndroid Build Coastguard Worker 1929*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1930*35238bceSAndroid Build Coastguard Worker void main() 1931*35238bceSAndroid Build Coastguard Worker { 1932*35238bceSAndroid Build Coastguard Worker #if defined 1933*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1934*35238bceSAndroid Build Coastguard Worker #endif 1935*35238bceSAndroid Build Coastguard Worker } 1936*35238bceSAndroid Build Coastguard Worker "" 1937*35238bceSAndroid Build Coastguard Worker end 1938*35238bceSAndroid Build Coastguard Worker 1939*35238bceSAndroid Build Coastguard Worker case invalid_defined_expected_identifier_2 1940*35238bceSAndroid Build Coastguard Worker version 300 es 1941*35238bceSAndroid Build Coastguard Worker expect compile_fail 1942*35238bceSAndroid Build Coastguard Worker both "" 1943*35238bceSAndroid Build Coastguard Worker #version 300 es 1944*35238bceSAndroid Build Coastguard Worker precision mediump float; 1945*35238bceSAndroid Build Coastguard Worker #define AAA 1 1946*35238bceSAndroid Build Coastguard Worker 1947*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1948*35238bceSAndroid Build Coastguard Worker void main() 1949*35238bceSAndroid Build Coastguard Worker { 1950*35238bceSAndroid Build Coastguard Worker #if defined() 1951*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1952*35238bceSAndroid Build Coastguard Worker #endif 1953*35238bceSAndroid Build Coastguard Worker } 1954*35238bceSAndroid Build Coastguard Worker "" 1955*35238bceSAndroid Build Coastguard Worker end 1956*35238bceSAndroid Build Coastguard Worker 1957*35238bceSAndroid Build Coastguard Worker case invalid_defined_expected_identifier_3 1958*35238bceSAndroid Build Coastguard Worker version 300 es 1959*35238bceSAndroid Build Coastguard Worker expect compile_fail 1960*35238bceSAndroid Build Coastguard Worker both "" 1961*35238bceSAndroid Build Coastguard Worker #version 300 es 1962*35238bceSAndroid Build Coastguard Worker precision mediump float; 1963*35238bceSAndroid Build Coastguard Worker #define AAA 1 1964*35238bceSAndroid Build Coastguard Worker 1965*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1966*35238bceSAndroid Build Coastguard Worker void main() 1967*35238bceSAndroid Build Coastguard Worker { 1968*35238bceSAndroid Build Coastguard Worker #if defined( 1969*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1970*35238bceSAndroid Build Coastguard Worker #endif 1971*35238bceSAndroid Build Coastguard Worker } 1972*35238bceSAndroid Build Coastguard Worker "" 1973*35238bceSAndroid Build Coastguard Worker end 1974*35238bceSAndroid Build Coastguard Worker 1975*35238bceSAndroid Build Coastguard Worker case invalid_defined_expected_identifier_4 1976*35238bceSAndroid Build Coastguard Worker version 300 es 1977*35238bceSAndroid Build Coastguard Worker expect compile_fail 1978*35238bceSAndroid Build Coastguard Worker both "" 1979*35238bceSAndroid Build Coastguard Worker #version 300 es 1980*35238bceSAndroid Build Coastguard Worker precision mediump float; 1981*35238bceSAndroid Build Coastguard Worker #define AAA 1 1982*35238bceSAndroid Build Coastguard Worker 1983*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 1984*35238bceSAndroid Build Coastguard Worker void main() 1985*35238bceSAndroid Build Coastguard Worker { 1986*35238bceSAndroid Build Coastguard Worker #if defined) 1987*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 1988*35238bceSAndroid Build Coastguard Worker #endif 1989*35238bceSAndroid Build Coastguard Worker } 1990*35238bceSAndroid Build Coastguard Worker "" 1991*35238bceSAndroid Build Coastguard Worker end 1992*35238bceSAndroid Build Coastguard Worker 1993*35238bceSAndroid Build Coastguard Worker case invalid_defined_expected_identifier_5 1994*35238bceSAndroid Build Coastguard Worker version 300 es 1995*35238bceSAndroid Build Coastguard Worker expect compile_fail 1996*35238bceSAndroid Build Coastguard Worker both "" 1997*35238bceSAndroid Build Coastguard Worker #version 300 es 1998*35238bceSAndroid Build Coastguard Worker precision mediump float; 1999*35238bceSAndroid Build Coastguard Worker #define AAA 1 2000*35238bceSAndroid Build Coastguard Worker 2001*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2002*35238bceSAndroid Build Coastguard Worker void main() 2003*35238bceSAndroid Build Coastguard Worker { 2004*35238bceSAndroid Build Coastguard Worker #if defined((AAA)) 2005*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(FUNC(1.0,2.0); 2006*35238bceSAndroid Build Coastguard Worker #endif 2007*35238bceSAndroid Build Coastguard Worker } 2008*35238bceSAndroid Build Coastguard Worker "" 2009*35238bceSAndroid Build Coastguard Worker end 2010*35238bceSAndroid Build Coastguard Worker 2011*35238bceSAndroid Build Coastguard Worker case invalid_defined_expected_rparen 2012*35238bceSAndroid Build Coastguard Worker version 300 es 2013*35238bceSAndroid Build Coastguard Worker expect compile_fail 2014*35238bceSAndroid Build Coastguard Worker both "" 2015*35238bceSAndroid Build Coastguard Worker #version 300 es 2016*35238bceSAndroid Build Coastguard Worker precision mediump float; 2017*35238bceSAndroid Build Coastguard Worker #define AAA 1 2018*35238bceSAndroid Build Coastguard Worker 2019*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2020*35238bceSAndroid Build Coastguard Worker void main() 2021*35238bceSAndroid Build Coastguard Worker { 2022*35238bceSAndroid Build Coastguard Worker #if defined(AAA 2023*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2024*35238bceSAndroid Build Coastguard Worker #endif 2025*35238bceSAndroid Build Coastguard Worker } 2026*35238bceSAndroid Build Coastguard Worker "" 2027*35238bceSAndroid Build Coastguard Worker end 2028*35238bceSAndroid Build Coastguard Worker 2029*35238bceSAndroid Build Coastguard Worker case defined_define 2030*35238bceSAndroid Build Coastguard Worker version 300 es 2031*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2032*35238bceSAndroid Build Coastguard Worker both "" 2033*35238bceSAndroid Build Coastguard Worker #version 300 es 2034*35238bceSAndroid Build Coastguard Worker precision mediump float; 2035*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2036*35238bceSAndroid Build Coastguard Worker #define define 1 2037*35238bceSAndroid Build Coastguard Worker #define AAA 1.0 2038*35238bceSAndroid Build Coastguard Worker 2039*35238bceSAndroid Build Coastguard Worker void main() 2040*35238bceSAndroid Build Coastguard Worker { 2041*35238bceSAndroid Build Coastguard Worker out0 = AAA; 2042*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2043*35238bceSAndroid Build Coastguard Worker } 2044*35238bceSAndroid Build Coastguard Worker "" 2045*35238bceSAndroid Build Coastguard Worker end 2046*35238bceSAndroid Build Coastguard Worker 2047*35238bceSAndroid Build Coastguard Workerend # invalid_ops 2048*35238bceSAndroid Build Coastguard Worker 2049*35238bceSAndroid Build Coastguard Workergroup undefined_identifiers "Undefined Identifiers Tests" 2050*35238bceSAndroid Build Coastguard Worker 2051*35238bceSAndroid Build Coastguard Worker case valid_undefined_identifier_1 2052*35238bceSAndroid Build Coastguard Worker version 300 es 2053*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2054*35238bceSAndroid Build Coastguard Worker both "" 2055*35238bceSAndroid Build Coastguard Worker #version 300 es 2056*35238bceSAndroid Build Coastguard Worker precision mediump float; 2057*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2058*35238bceSAndroid Build Coastguard Worker void main() 2059*35238bceSAndroid Build Coastguard Worker { 2060*35238bceSAndroid Build Coastguard Worker #if 1 || AAA 2061*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2062*35238bceSAndroid Build Coastguard Worker #else 2063*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2064*35238bceSAndroid Build Coastguard Worker #endif 2065*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2066*35238bceSAndroid Build Coastguard Worker } 2067*35238bceSAndroid Build Coastguard Worker "" 2068*35238bceSAndroid Build Coastguard Worker end 2069*35238bceSAndroid Build Coastguard Worker 2070*35238bceSAndroid Build Coastguard Worker case valid_undefined_identifier_2 2071*35238bceSAndroid Build Coastguard Worker version 300 es 2072*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2073*35238bceSAndroid Build Coastguard Worker both "" 2074*35238bceSAndroid Build Coastguard Worker #version 300 es 2075*35238bceSAndroid Build Coastguard Worker precision mediump float; 2076*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2077*35238bceSAndroid Build Coastguard Worker void main() 2078*35238bceSAndroid Build Coastguard Worker { 2079*35238bceSAndroid Build Coastguard Worker #if 0 && AAA 2080*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2081*35238bceSAndroid Build Coastguard Worker #else 2082*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2083*35238bceSAndroid Build Coastguard Worker #endif 2084*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2085*35238bceSAndroid Build Coastguard Worker } 2086*35238bceSAndroid Build Coastguard Worker "" 2087*35238bceSAndroid Build Coastguard Worker end 2088*35238bceSAndroid Build Coastguard Worker 2089*35238bceSAndroid Build Coastguard Worker case undefined_identifier_1 2090*35238bceSAndroid Build Coastguard Worker version 300 es 2091*35238bceSAndroid Build Coastguard Worker expect compile_fail 2092*35238bceSAndroid Build Coastguard Worker both "" 2093*35238bceSAndroid Build Coastguard Worker #version 300 es 2094*35238bceSAndroid Build Coastguard Worker precision mediump float; 2095*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2096*35238bceSAndroid Build Coastguard Worker void main() 2097*35238bceSAndroid Build Coastguard Worker { 2098*35238bceSAndroid Build Coastguard Worker #if 1 - CCC + (-AAA || BBB) 2099*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2100*35238bceSAndroid Build Coastguard Worker #else 2101*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2102*35238bceSAndroid Build Coastguard Worker #endif 2103*35238bceSAndroid Build Coastguard Worker } 2104*35238bceSAndroid Build Coastguard Worker "" 2105*35238bceSAndroid Build Coastguard Worker end 2106*35238bceSAndroid Build Coastguard Worker 2107*35238bceSAndroid Build Coastguard Worker case undefined_identifier_2 2108*35238bceSAndroid Build Coastguard Worker version 300 es 2109*35238bceSAndroid Build Coastguard Worker expect compile_fail 2110*35238bceSAndroid Build Coastguard Worker both "" 2111*35238bceSAndroid Build Coastguard Worker #version 300 es 2112*35238bceSAndroid Build Coastguard Worker precision mediump float; 2113*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2114*35238bceSAndroid Build Coastguard Worker void main() 2115*35238bceSAndroid Build Coastguard Worker { 2116*35238bceSAndroid Build Coastguard Worker #if !A 2117*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2118*35238bceSAndroid Build Coastguard Worker #else 2119*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2120*35238bceSAndroid Build Coastguard Worker #endif 2121*35238bceSAndroid Build Coastguard Worker } 2122*35238bceSAndroid Build Coastguard Worker "" 2123*35238bceSAndroid Build Coastguard Worker end 2124*35238bceSAndroid Build Coastguard Worker 2125*35238bceSAndroid Build Coastguard Worker case undefined_identifier_3 2126*35238bceSAndroid Build Coastguard Worker version 300 es 2127*35238bceSAndroid Build Coastguard Worker expect compile_fail 2128*35238bceSAndroid Build Coastguard Worker both "" 2129*35238bceSAndroid Build Coastguard Worker #version 300 es 2130*35238bceSAndroid Build Coastguard Worker precision mediump float; 2131*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2132*35238bceSAndroid Build Coastguard Worker void main() 2133*35238bceSAndroid Build Coastguard Worker { 2134*35238bceSAndroid Build Coastguard Worker #if -A 2135*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2136*35238bceSAndroid Build Coastguard Worker #else 2137*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2138*35238bceSAndroid Build Coastguard Worker #endif 2139*35238bceSAndroid Build Coastguard Worker } 2140*35238bceSAndroid Build Coastguard Worker "" 2141*35238bceSAndroid Build Coastguard Worker end 2142*35238bceSAndroid Build Coastguard Worker 2143*35238bceSAndroid Build Coastguard Worker case undefined_identifier_4 2144*35238bceSAndroid Build Coastguard Worker version 300 es 2145*35238bceSAndroid Build Coastguard Worker expect compile_fail 2146*35238bceSAndroid Build Coastguard Worker both "" 2147*35238bceSAndroid Build Coastguard Worker #version 300 es 2148*35238bceSAndroid Build Coastguard Worker precision mediump float; 2149*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2150*35238bceSAndroid Build Coastguard Worker void main() 2151*35238bceSAndroid Build Coastguard Worker { 2152*35238bceSAndroid Build Coastguard Worker #if ~A 2153*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2154*35238bceSAndroid Build Coastguard Worker #else 2155*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2156*35238bceSAndroid Build Coastguard Worker #endif 2157*35238bceSAndroid Build Coastguard Worker } 2158*35238bceSAndroid Build Coastguard Worker "" 2159*35238bceSAndroid Build Coastguard Worker end 2160*35238bceSAndroid Build Coastguard Worker 2161*35238bceSAndroid Build Coastguard Worker case undefined_identifier_5 2162*35238bceSAndroid Build Coastguard Worker version 300 es 2163*35238bceSAndroid Build Coastguard Worker expect compile_fail 2164*35238bceSAndroid Build Coastguard Worker both "" 2165*35238bceSAndroid Build Coastguard Worker #version 300 es 2166*35238bceSAndroid Build Coastguard Worker precision mediump float; 2167*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2168*35238bceSAndroid Build Coastguard Worker void main() 2169*35238bceSAndroid Build Coastguard Worker { 2170*35238bceSAndroid Build Coastguard Worker #if A && B 2171*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2172*35238bceSAndroid Build Coastguard Worker #else 2173*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2174*35238bceSAndroid Build Coastguard Worker #endif 2175*35238bceSAndroid Build Coastguard Worker } 2176*35238bceSAndroid Build Coastguard Worker "" 2177*35238bceSAndroid Build Coastguard Worker end 2178*35238bceSAndroid Build Coastguard Worker 2179*35238bceSAndroid Build Coastguard Worker case undefined_identifier_6 2180*35238bceSAndroid Build Coastguard Worker version 300 es 2181*35238bceSAndroid Build Coastguard Worker expect compile_fail 2182*35238bceSAndroid Build Coastguard Worker both "" 2183*35238bceSAndroid Build Coastguard Worker #version 300 es 2184*35238bceSAndroid Build Coastguard Worker precision mediump float; 2185*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2186*35238bceSAndroid Build Coastguard Worker void main() 2187*35238bceSAndroid Build Coastguard Worker { 2188*35238bceSAndroid Build Coastguard Worker #define A 1 2189*35238bceSAndroid Build Coastguard Worker #if A && B 2190*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2191*35238bceSAndroid Build Coastguard Worker #else 2192*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2193*35238bceSAndroid Build Coastguard Worker #endif 2194*35238bceSAndroid Build Coastguard Worker } 2195*35238bceSAndroid Build Coastguard Worker "" 2196*35238bceSAndroid Build Coastguard Worker end 2197*35238bceSAndroid Build Coastguard Worker 2198*35238bceSAndroid Build Coastguard Worker case undefined_identifier_7 2199*35238bceSAndroid Build Coastguard Worker version 300 es 2200*35238bceSAndroid Build Coastguard Worker expect compile_fail 2201*35238bceSAndroid Build Coastguard Worker both "" 2202*35238bceSAndroid Build Coastguard Worker #version 300 es 2203*35238bceSAndroid Build Coastguard Worker precision mediump float; 2204*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2205*35238bceSAndroid Build Coastguard Worker void main() 2206*35238bceSAndroid Build Coastguard Worker { 2207*35238bceSAndroid Build Coastguard Worker #define B 1 2208*35238bceSAndroid Build Coastguard Worker #if A && B 2209*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2210*35238bceSAndroid Build Coastguard Worker #else 2211*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2212*35238bceSAndroid Build Coastguard Worker #endif 2213*35238bceSAndroid Build Coastguard Worker } 2214*35238bceSAndroid Build Coastguard Worker "" 2215*35238bceSAndroid Build Coastguard Worker end 2216*35238bceSAndroid Build Coastguard Worker 2217*35238bceSAndroid Build Coastguard Worker case undefined_identifier_8 2218*35238bceSAndroid Build Coastguard Worker version 300 es 2219*35238bceSAndroid Build Coastguard Worker expect compile_fail 2220*35238bceSAndroid Build Coastguard Worker both "" 2221*35238bceSAndroid Build Coastguard Worker #version 300 es 2222*35238bceSAndroid Build Coastguard Worker precision mediump float; 2223*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2224*35238bceSAndroid Build Coastguard Worker void main() 2225*35238bceSAndroid Build Coastguard Worker { 2226*35238bceSAndroid Build Coastguard Worker #define B 1 2227*35238bceSAndroid Build Coastguard Worker #define A 2 2228*35238bceSAndroid Build Coastguard Worker #undef A 2229*35238bceSAndroid Build Coastguard Worker #if A && B 2230*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2231*35238bceSAndroid Build Coastguard Worker #else 2232*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2233*35238bceSAndroid Build Coastguard Worker #endif 2234*35238bceSAndroid Build Coastguard Worker } 2235*35238bceSAndroid Build Coastguard Worker "" 2236*35238bceSAndroid Build Coastguard Worker end 2237*35238bceSAndroid Build Coastguard Worker 2238*35238bceSAndroid Build Coastguard Worker case undefined_identifier_9 2239*35238bceSAndroid Build Coastguard Worker version 300 es 2240*35238bceSAndroid Build Coastguard Worker expect compile_fail 2241*35238bceSAndroid Build Coastguard Worker both "" 2242*35238bceSAndroid Build Coastguard Worker #version 300 es 2243*35238bceSAndroid Build Coastguard Worker precision mediump float; 2244*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2245*35238bceSAndroid Build Coastguard Worker void main() 2246*35238bceSAndroid Build Coastguard Worker { 2247*35238bceSAndroid Build Coastguard Worker #if A || B 2248*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2249*35238bceSAndroid Build Coastguard Worker #else 2250*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2251*35238bceSAndroid Build Coastguard Worker #endif 2252*35238bceSAndroid Build Coastguard Worker } 2253*35238bceSAndroid Build Coastguard Worker "" 2254*35238bceSAndroid Build Coastguard Worker end 2255*35238bceSAndroid Build Coastguard Worker 2256*35238bceSAndroid Build Coastguard Worker case undefined_identifier_10 2257*35238bceSAndroid Build Coastguard Worker version 300 es 2258*35238bceSAndroid Build Coastguard Worker expect compile_fail 2259*35238bceSAndroid Build Coastguard Worker both "" 2260*35238bceSAndroid Build Coastguard Worker #version 300 es 2261*35238bceSAndroid Build Coastguard Worker precision mediump float; 2262*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2263*35238bceSAndroid Build Coastguard Worker void main() 2264*35238bceSAndroid Build Coastguard Worker { 2265*35238bceSAndroid Build Coastguard Worker #define A 0 2266*35238bceSAndroid Build Coastguard Worker #if A || B 2267*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2268*35238bceSAndroid Build Coastguard Worker #else 2269*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2270*35238bceSAndroid Build Coastguard Worker #endif 2271*35238bceSAndroid Build Coastguard Worker } 2272*35238bceSAndroid Build Coastguard Worker "" 2273*35238bceSAndroid Build Coastguard Worker end 2274*35238bceSAndroid Build Coastguard Worker 2275*35238bceSAndroid Build Coastguard Worker case undefined_identifier_11 2276*35238bceSAndroid Build Coastguard Worker version 300 es 2277*35238bceSAndroid Build Coastguard Worker expect compile_fail 2278*35238bceSAndroid Build Coastguard Worker both "" 2279*35238bceSAndroid Build Coastguard Worker #version 300 es 2280*35238bceSAndroid Build Coastguard Worker precision mediump float; 2281*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2282*35238bceSAndroid Build Coastguard Worker void main() 2283*35238bceSAndroid Build Coastguard Worker { 2284*35238bceSAndroid Build Coastguard Worker #define A 0 2285*35238bceSAndroid Build Coastguard Worker #define B 2 2286*35238bceSAndroid Build Coastguard Worker #undef B 2287*35238bceSAndroid Build Coastguard Worker #if A || B 2288*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2289*35238bceSAndroid Build Coastguard Worker #else 2290*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2291*35238bceSAndroid Build Coastguard Worker #endif 2292*35238bceSAndroid Build Coastguard Worker } 2293*35238bceSAndroid Build Coastguard Worker "" 2294*35238bceSAndroid Build Coastguard Worker end 2295*35238bceSAndroid Build Coastguard Worker 2296*35238bceSAndroid Build Coastguard Worker case undefined_identifier_12 2297*35238bceSAndroid Build Coastguard Worker version 300 es 2298*35238bceSAndroid Build Coastguard Worker expect compile_fail 2299*35238bceSAndroid Build Coastguard Worker both "" 2300*35238bceSAndroid Build Coastguard Worker #version 300 es 2301*35238bceSAndroid Build Coastguard Worker precision mediump float; 2302*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2303*35238bceSAndroid Build Coastguard Worker void main() 2304*35238bceSAndroid Build Coastguard Worker { 2305*35238bceSAndroid Build Coastguard Worker #define B 1 2306*35238bceSAndroid Build Coastguard Worker #if A || B 2307*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2308*35238bceSAndroid Build Coastguard Worker #else 2309*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2310*35238bceSAndroid Build Coastguard Worker #endif 2311*35238bceSAndroid Build Coastguard Worker } 2312*35238bceSAndroid Build Coastguard Worker "" 2313*35238bceSAndroid Build Coastguard Worker end 2314*35238bceSAndroid Build Coastguard Worker 2315*35238bceSAndroid Build Coastguard Workerend # undefined_identifiers 2316*35238bceSAndroid Build Coastguard Worker 2317*35238bceSAndroid Build Coastguard Workergroup invalid_conditionals "Invalid Conditionals Tests" 2318*35238bceSAndroid Build Coastguard Worker 2319*35238bceSAndroid Build Coastguard Worker case empty_if 2320*35238bceSAndroid Build Coastguard Worker version 300 es 2321*35238bceSAndroid Build Coastguard Worker expect compile_fail 2322*35238bceSAndroid Build Coastguard Worker both "" 2323*35238bceSAndroid Build Coastguard Worker #version 300 es 2324*35238bceSAndroid Build Coastguard Worker precision mediump float; 2325*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2326*35238bceSAndroid Build Coastguard Worker void main() 2327*35238bceSAndroid Build Coastguard Worker { 2328*35238bceSAndroid Build Coastguard Worker #if 2329*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2330*35238bceSAndroid Build Coastguard Worker } 2331*35238bceSAndroid Build Coastguard Worker "" 2332*35238bceSAndroid Build Coastguard Worker end 2333*35238bceSAndroid Build Coastguard Worker 2334*35238bceSAndroid Build Coastguard Worker case empty_ifdef 2335*35238bceSAndroid Build Coastguard Worker version 300 es 2336*35238bceSAndroid Build Coastguard Worker expect compile_fail 2337*35238bceSAndroid Build Coastguard Worker both "" 2338*35238bceSAndroid Build Coastguard Worker #version 300 es 2339*35238bceSAndroid Build Coastguard Worker precision mediump float; 2340*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2341*35238bceSAndroid Build Coastguard Worker void main() 2342*35238bceSAndroid Build Coastguard Worker { 2343*35238bceSAndroid Build Coastguard Worker #ifdef 2344*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2345*35238bceSAndroid Build Coastguard Worker } 2346*35238bceSAndroid Build Coastguard Worker "" 2347*35238bceSAndroid Build Coastguard Worker end 2348*35238bceSAndroid Build Coastguard Worker 2349*35238bceSAndroid Build Coastguard Worker case empty_ifndef 2350*35238bceSAndroid Build Coastguard Worker version 300 es 2351*35238bceSAndroid Build Coastguard Worker expect compile_fail 2352*35238bceSAndroid Build Coastguard Worker both "" 2353*35238bceSAndroid Build Coastguard Worker #version 300 es 2354*35238bceSAndroid Build Coastguard Worker precision mediump float; 2355*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2356*35238bceSAndroid Build Coastguard Worker void main() 2357*35238bceSAndroid Build Coastguard Worker { 2358*35238bceSAndroid Build Coastguard Worker #ifndef 2359*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2360*35238bceSAndroid Build Coastguard Worker } 2361*35238bceSAndroid Build Coastguard Worker "" 2362*35238bceSAndroid Build Coastguard Worker end 2363*35238bceSAndroid Build Coastguard Worker 2364*35238bceSAndroid Build Coastguard Worker case invalid_ifdef 2365*35238bceSAndroid Build Coastguard Worker version 300 es 2366*35238bceSAndroid Build Coastguard Worker expect compile_fail 2367*35238bceSAndroid Build Coastguard Worker both "" 2368*35238bceSAndroid Build Coastguard Worker #version 300 es 2369*35238bceSAndroid Build Coastguard Worker precision mediump float; 2370*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2371*35238bceSAndroid Build Coastguard Worker void main() 2372*35238bceSAndroid Build Coastguard Worker { 2373*35238bceSAndroid Build Coastguard Worker #ifdef 1 2374*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2375*35238bceSAndroid Build Coastguard Worker #endif 2376*35238bceSAndroid Build Coastguard Worker } 2377*35238bceSAndroid Build Coastguard Worker "" 2378*35238bceSAndroid Build Coastguard Worker end 2379*35238bceSAndroid Build Coastguard Worker 2380*35238bceSAndroid Build Coastguard Worker case invalid_ifndef 2381*35238bceSAndroid Build Coastguard Worker version 300 es 2382*35238bceSAndroid Build Coastguard Worker expect compile_fail 2383*35238bceSAndroid Build Coastguard Worker both "" 2384*35238bceSAndroid Build Coastguard Worker #version 300 es 2385*35238bceSAndroid Build Coastguard Worker precision mediump float; 2386*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2387*35238bceSAndroid Build Coastguard Worker void main() 2388*35238bceSAndroid Build Coastguard Worker { 2389*35238bceSAndroid Build Coastguard Worker #ifndef 1 2390*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2391*35238bceSAndroid Build Coastguard Worker #endif 2392*35238bceSAndroid Build Coastguard Worker } 2393*35238bceSAndroid Build Coastguard Worker "" 2394*35238bceSAndroid Build Coastguard Worker end 2395*35238bceSAndroid Build Coastguard Worker 2396*35238bceSAndroid Build Coastguard Worker case empty_if_defined 2397*35238bceSAndroid Build Coastguard Worker version 300 es 2398*35238bceSAndroid Build Coastguard Worker expect compile_fail 2399*35238bceSAndroid Build Coastguard Worker both "" 2400*35238bceSAndroid Build Coastguard Worker #version 300 es 2401*35238bceSAndroid Build Coastguard Worker precision mediump float; 2402*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2403*35238bceSAndroid Build Coastguard Worker void main() 2404*35238bceSAndroid Build Coastguard Worker { 2405*35238bceSAndroid Build Coastguard Worker #if defined 2406*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2407*35238bceSAndroid Build Coastguard Worker } 2408*35238bceSAndroid Build Coastguard Worker "" 2409*35238bceSAndroid Build Coastguard Worker end 2410*35238bceSAndroid Build Coastguard Worker 2411*35238bceSAndroid Build Coastguard Worker case unterminated_if_1 2412*35238bceSAndroid Build Coastguard Worker version 300 es 2413*35238bceSAndroid Build Coastguard Worker expect compile_fail 2414*35238bceSAndroid Build Coastguard Worker both "" 2415*35238bceSAndroid Build Coastguard Worker #version 300 es 2416*35238bceSAndroid Build Coastguard Worker precision mediump float; 2417*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2418*35238bceSAndroid Build Coastguard Worker void main() 2419*35238bceSAndroid Build Coastguard Worker { 2420*35238bceSAndroid Build Coastguard Worker #if 1 2421*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2422*35238bceSAndroid Build Coastguard Worker } 2423*35238bceSAndroid Build Coastguard Worker "" 2424*35238bceSAndroid Build Coastguard Worker end 2425*35238bceSAndroid Build Coastguard Worker 2426*35238bceSAndroid Build Coastguard Worker case unterminated_if_2 2427*35238bceSAndroid Build Coastguard Worker version 300 es 2428*35238bceSAndroid Build Coastguard Worker expect compile_fail 2429*35238bceSAndroid Build Coastguard Worker both "" 2430*35238bceSAndroid Build Coastguard Worker #version 300 es 2431*35238bceSAndroid Build Coastguard Worker precision mediump float; 2432*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2433*35238bceSAndroid Build Coastguard Worker void main() 2434*35238bceSAndroid Build Coastguard Worker { 2435*35238bceSAndroid Build Coastguard Worker #if 0 2436*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2437*35238bceSAndroid Build Coastguard Worker } 2438*35238bceSAndroid Build Coastguard Worker "" 2439*35238bceSAndroid Build Coastguard Worker end 2440*35238bceSAndroid Build Coastguard Worker 2441*35238bceSAndroid Build Coastguard Worker case unterminated_ifdef 2442*35238bceSAndroid Build Coastguard Worker version 300 es 2443*35238bceSAndroid Build Coastguard Worker expect compile_fail 2444*35238bceSAndroid Build Coastguard Worker both "" 2445*35238bceSAndroid Build Coastguard Worker #version 300 es 2446*35238bceSAndroid Build Coastguard Worker precision mediump float; 2447*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2448*35238bceSAndroid Build Coastguard Worker void main() 2449*35238bceSAndroid Build Coastguard Worker { 2450*35238bceSAndroid Build Coastguard Worker #ifdef FOOBAR 2451*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2452*35238bceSAndroid Build Coastguard Worker } 2453*35238bceSAndroid Build Coastguard Worker "" 2454*35238bceSAndroid Build Coastguard Worker end 2455*35238bceSAndroid Build Coastguard Worker 2456*35238bceSAndroid Build Coastguard Worker case unterminated_ifndef 2457*35238bceSAndroid Build Coastguard Worker version 300 es 2458*35238bceSAndroid Build Coastguard Worker expect compile_fail 2459*35238bceSAndroid Build Coastguard Worker both "" 2460*35238bceSAndroid Build Coastguard Worker #version 300 es 2461*35238bceSAndroid Build Coastguard Worker precision mediump float; 2462*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2463*35238bceSAndroid Build Coastguard Worker void main() 2464*35238bceSAndroid Build Coastguard Worker { 2465*35238bceSAndroid Build Coastguard Worker #ifndef GL_ES 2466*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2467*35238bceSAndroid Build Coastguard Worker } 2468*35238bceSAndroid Build Coastguard Worker "" 2469*35238bceSAndroid Build Coastguard Worker end 2470*35238bceSAndroid Build Coastguard Worker 2471*35238bceSAndroid Build Coastguard Worker case unterminated_else_1 2472*35238bceSAndroid Build Coastguard Worker version 300 es 2473*35238bceSAndroid Build Coastguard Worker expect compile_fail 2474*35238bceSAndroid Build Coastguard Worker both "" 2475*35238bceSAndroid Build Coastguard Worker #version 300 es 2476*35238bceSAndroid Build Coastguard Worker precision mediump float; 2477*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2478*35238bceSAndroid Build Coastguard Worker void main() 2479*35238bceSAndroid Build Coastguard Worker { 2480*35238bceSAndroid Build Coastguard Worker #if 1 2481*35238bceSAndroid Build Coastguard Worker #else 2482*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2483*35238bceSAndroid Build Coastguard Worker } 2484*35238bceSAndroid Build Coastguard Worker "" 2485*35238bceSAndroid Build Coastguard Worker end 2486*35238bceSAndroid Build Coastguard Worker 2487*35238bceSAndroid Build Coastguard Worker case unterminated_else_2 2488*35238bceSAndroid Build Coastguard Worker version 300 es 2489*35238bceSAndroid Build Coastguard Worker expect compile_fail 2490*35238bceSAndroid Build Coastguard Worker both "" 2491*35238bceSAndroid Build Coastguard Worker #version 300 es 2492*35238bceSAndroid Build Coastguard Worker precision mediump float; 2493*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2494*35238bceSAndroid Build Coastguard Worker void main() 2495*35238bceSAndroid Build Coastguard Worker { 2496*35238bceSAndroid Build Coastguard Worker #if 0 2497*35238bceSAndroid Build Coastguard Worker #else 2498*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2499*35238bceSAndroid Build Coastguard Worker } 2500*35238bceSAndroid Build Coastguard Worker "" 2501*35238bceSAndroid Build Coastguard Worker end 2502*35238bceSAndroid Build Coastguard Worker 2503*35238bceSAndroid Build Coastguard Worker case unterminated_elif_1 2504*35238bceSAndroid Build Coastguard Worker version 300 es 2505*35238bceSAndroid Build Coastguard Worker expect compile_fail 2506*35238bceSAndroid Build Coastguard Worker both "" 2507*35238bceSAndroid Build Coastguard Worker #version 300 es 2508*35238bceSAndroid Build Coastguard Worker precision mediump float; 2509*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2510*35238bceSAndroid Build Coastguard Worker void main() 2511*35238bceSAndroid Build Coastguard Worker { 2512*35238bceSAndroid Build Coastguard Worker #if 0 2513*35238bceSAndroid Build Coastguard Worker #elif 1 2514*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2515*35238bceSAndroid Build Coastguard Worker } 2516*35238bceSAndroid Build Coastguard Worker "" 2517*35238bceSAndroid Build Coastguard Worker end 2518*35238bceSAndroid Build Coastguard Worker 2519*35238bceSAndroid Build Coastguard Worker case unterminated_elif_2 2520*35238bceSAndroid Build Coastguard Worker version 300 es 2521*35238bceSAndroid Build Coastguard Worker expect compile_fail 2522*35238bceSAndroid Build Coastguard Worker both "" 2523*35238bceSAndroid Build Coastguard Worker #version 300 es 2524*35238bceSAndroid Build Coastguard Worker precision mediump float; 2525*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2526*35238bceSAndroid Build Coastguard Worker void main() 2527*35238bceSAndroid Build Coastguard Worker { 2528*35238bceSAndroid Build Coastguard Worker #if 1 2529*35238bceSAndroid Build Coastguard Worker #elif 0 2530*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2531*35238bceSAndroid Build Coastguard Worker } 2532*35238bceSAndroid Build Coastguard Worker "" 2533*35238bceSAndroid Build Coastguard Worker end 2534*35238bceSAndroid Build Coastguard Worker 2535*35238bceSAndroid Build Coastguard Worker case unterminated_elif_3 2536*35238bceSAndroid Build Coastguard Worker version 300 es 2537*35238bceSAndroid Build Coastguard Worker expect compile_fail 2538*35238bceSAndroid Build Coastguard Worker both "" 2539*35238bceSAndroid Build Coastguard Worker #version 300 es 2540*35238bceSAndroid Build Coastguard Worker precision mediump float; 2541*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2542*35238bceSAndroid Build Coastguard Worker void main() 2543*35238bceSAndroid Build Coastguard Worker { 2544*35238bceSAndroid Build Coastguard Worker #if 0 2545*35238bceSAndroid Build Coastguard Worker #elif 0 2546*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(2.0); 2547*35238bceSAndroid Build Coastguard Worker } 2548*35238bceSAndroid Build Coastguard Worker "" 2549*35238bceSAndroid Build Coastguard Worker end 2550*35238bceSAndroid Build Coastguard Worker 2551*35238bceSAndroid Build Coastguard Worker case elif_after_else 2552*35238bceSAndroid Build Coastguard Worker version 300 es 2553*35238bceSAndroid Build Coastguard Worker expect compile_fail 2554*35238bceSAndroid Build Coastguard Worker both "" 2555*35238bceSAndroid Build Coastguard Worker #version 300 es 2556*35238bceSAndroid Build Coastguard Worker precision mediump float; 2557*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2558*35238bceSAndroid Build Coastguard Worker void main() 2559*35238bceSAndroid Build Coastguard Worker { 2560*35238bceSAndroid Build Coastguard Worker #if 0 2561*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2562*35238bceSAndroid Build Coastguard Worker #else 2563*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2564*35238bceSAndroid Build Coastguard Worker #elif 1 2565*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(0.0); 2566*35238bceSAndroid Build Coastguard Worker #endif 2567*35238bceSAndroid Build Coastguard Worker } 2568*35238bceSAndroid Build Coastguard Worker "" 2569*35238bceSAndroid Build Coastguard Worker end 2570*35238bceSAndroid Build Coastguard Worker 2571*35238bceSAndroid Build Coastguard Worker case else_without_if 2572*35238bceSAndroid Build Coastguard Worker version 300 es 2573*35238bceSAndroid Build Coastguard Worker expect compile_fail 2574*35238bceSAndroid Build Coastguard Worker both "" 2575*35238bceSAndroid Build Coastguard Worker #version 300 es 2576*35238bceSAndroid Build Coastguard Worker precision mediump float; 2577*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2578*35238bceSAndroid Build Coastguard Worker void main() 2579*35238bceSAndroid Build Coastguard Worker { 2580*35238bceSAndroid Build Coastguard Worker #else 2581*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2582*35238bceSAndroid Build Coastguard Worker #endif 2583*35238bceSAndroid Build Coastguard Worker } 2584*35238bceSAndroid Build Coastguard Worker "" 2585*35238bceSAndroid Build Coastguard Worker end 2586*35238bceSAndroid Build Coastguard Worker 2587*35238bceSAndroid Build Coastguard Worker case elif_without_if 2588*35238bceSAndroid Build Coastguard Worker version 300 es 2589*35238bceSAndroid Build Coastguard Worker expect compile_fail 2590*35238bceSAndroid Build Coastguard Worker both "" 2591*35238bceSAndroid Build Coastguard Worker #version 300 es 2592*35238bceSAndroid Build Coastguard Worker precision mediump float; 2593*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2594*35238bceSAndroid Build Coastguard Worker void main() 2595*35238bceSAndroid Build Coastguard Worker { 2596*35238bceSAndroid Build Coastguard Worker #elif 1 2597*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2598*35238bceSAndroid Build Coastguard Worker #endif 2599*35238bceSAndroid Build Coastguard Worker } 2600*35238bceSAndroid Build Coastguard Worker "" 2601*35238bceSAndroid Build Coastguard Worker end 2602*35238bceSAndroid Build Coastguard Worker 2603*35238bceSAndroid Build Coastguard Worker case endif_without_if 2604*35238bceSAndroid Build Coastguard Worker version 300 es 2605*35238bceSAndroid Build Coastguard Worker expect compile_fail 2606*35238bceSAndroid Build Coastguard Worker both "" 2607*35238bceSAndroid Build Coastguard Worker #version 300 es 2608*35238bceSAndroid Build Coastguard Worker precision mediump float; 2609*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2610*35238bceSAndroid Build Coastguard Worker void main() 2611*35238bceSAndroid Build Coastguard Worker { 2612*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2613*35238bceSAndroid Build Coastguard Worker #endif 2614*35238bceSAndroid Build Coastguard Worker } 2615*35238bceSAndroid Build Coastguard Worker "" 2616*35238bceSAndroid Build Coastguard Worker end 2617*35238bceSAndroid Build Coastguard Worker 2618*35238bceSAndroid Build Coastguard Worker case else_after_else 2619*35238bceSAndroid Build Coastguard Worker version 300 es 2620*35238bceSAndroid Build Coastguard Worker expect compile_fail 2621*35238bceSAndroid Build Coastguard Worker both "" 2622*35238bceSAndroid Build Coastguard Worker #version 300 es 2623*35238bceSAndroid Build Coastguard Worker precision mediump float; 2624*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2625*35238bceSAndroid Build Coastguard Worker void main() 2626*35238bceSAndroid Build Coastguard Worker { 2627*35238bceSAndroid Build Coastguard Worker #if !GL_ES 2628*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2629*35238bceSAndroid Build Coastguard Worker #else 2630*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2631*35238bceSAndroid Build Coastguard Worker #else 2632*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(-1.0); 2633*35238bceSAndroid Build Coastguard Worker #endif 2634*35238bceSAndroid Build Coastguard Worker } 2635*35238bceSAndroid Build Coastguard Worker "" 2636*35238bceSAndroid Build Coastguard Worker end 2637*35238bceSAndroid Build Coastguard Worker 2638*35238bceSAndroid Build Coastguard Worker case nested_elif_without_if 2639*35238bceSAndroid Build Coastguard Worker version 300 es 2640*35238bceSAndroid Build Coastguard Worker expect compile_fail 2641*35238bceSAndroid Build Coastguard Worker both "" 2642*35238bceSAndroid Build Coastguard Worker #version 300 es 2643*35238bceSAndroid Build Coastguard Worker precision mediump float; 2644*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2645*35238bceSAndroid Build Coastguard Worker void main() 2646*35238bceSAndroid Build Coastguard Worker { 2647*35238bceSAndroid Build Coastguard Worker #if 1 2648*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2649*35238bceSAndroid Build Coastguard Worker # elif 2650*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(0.0); 2651*35238bceSAndroid Build Coastguard Worker # endif 2652*35238bceSAndroid Build Coastguard Worker #endif 2653*35238bceSAndroid Build Coastguard Worker } 2654*35238bceSAndroid Build Coastguard Worker "" 2655*35238bceSAndroid Build Coastguard Worker end 2656*35238bceSAndroid Build Coastguard Worker 2657*35238bceSAndroid Build Coastguard Worker case if_float 2658*35238bceSAndroid Build Coastguard Worker version 300 es 2659*35238bceSAndroid Build Coastguard Worker expect compile_fail 2660*35238bceSAndroid Build Coastguard Worker both "" 2661*35238bceSAndroid Build Coastguard Worker #version 300 es 2662*35238bceSAndroid Build Coastguard Worker precision mediump float; 2663*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2664*35238bceSAndroid Build Coastguard Worker void main() 2665*35238bceSAndroid Build Coastguard Worker { 2666*35238bceSAndroid Build Coastguard Worker #if 1.231 2667*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2668*35238bceSAndroid Build Coastguard Worker # elif 2669*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(0.0); 2670*35238bceSAndroid Build Coastguard Worker # endif 2671*35238bceSAndroid Build Coastguard Worker #endif 2672*35238bceSAndroid Build Coastguard Worker } 2673*35238bceSAndroid Build Coastguard Worker "" 2674*35238bceSAndroid Build Coastguard Worker end 2675*35238bceSAndroid Build Coastguard Worker 2676*35238bceSAndroid Build Coastguard Worker case tokens_after_if 2677*35238bceSAndroid Build Coastguard Worker version 300 es 2678*35238bceSAndroid Build Coastguard Worker expect compile_fail 2679*35238bceSAndroid Build Coastguard Worker both "" 2680*35238bceSAndroid Build Coastguard Worker #version 300 es 2681*35238bceSAndroid Build Coastguard Worker precision mediump float; 2682*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2683*35238bceSAndroid Build Coastguard Worker void main() 2684*35238bceSAndroid Build Coastguard Worker { 2685*35238bceSAndroid Build Coastguard Worker #if 1 foobar 2686*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2687*35238bceSAndroid Build Coastguard Worker #endif 2688*35238bceSAndroid Build Coastguard Worker } 2689*35238bceSAndroid Build Coastguard Worker "" 2690*35238bceSAndroid Build Coastguard Worker end 2691*35238bceSAndroid Build Coastguard Worker 2692*35238bceSAndroid Build Coastguard Worker case tokens_after_elif 2693*35238bceSAndroid Build Coastguard Worker version 300 es 2694*35238bceSAndroid Build Coastguard Worker expect compile_fail 2695*35238bceSAndroid Build Coastguard Worker both "" 2696*35238bceSAndroid Build Coastguard Worker #version 300 es 2697*35238bceSAndroid Build Coastguard Worker precision mediump float; 2698*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2699*35238bceSAndroid Build Coastguard Worker void main() 2700*35238bceSAndroid Build Coastguard Worker { 2701*35238bceSAndroid Build Coastguard Worker #if 0 2702*35238bceSAndroid Build Coastguard Worker #elif foobar 2703*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2704*35238bceSAndroid Build Coastguard Worker #endif 2705*35238bceSAndroid Build Coastguard Worker } 2706*35238bceSAndroid Build Coastguard Worker "" 2707*35238bceSAndroid Build Coastguard Worker end 2708*35238bceSAndroid Build Coastguard Worker 2709*35238bceSAndroid Build Coastguard Worker case tokens_after_else 2710*35238bceSAndroid Build Coastguard Worker version 300 es 2711*35238bceSAndroid Build Coastguard Worker expect compile_fail 2712*35238bceSAndroid Build Coastguard Worker both "" 2713*35238bceSAndroid Build Coastguard Worker #version 300 es 2714*35238bceSAndroid Build Coastguard Worker precision mediump float; 2715*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2716*35238bceSAndroid Build Coastguard Worker void main() 2717*35238bceSAndroid Build Coastguard Worker { 2718*35238bceSAndroid Build Coastguard Worker #if 1 2719*35238bceSAndroid Build Coastguard Worker #else foobar 1.231 2720*35238bceSAndroid Build Coastguard Worker #endif 2721*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2722*35238bceSAndroid Build Coastguard Worker } 2723*35238bceSAndroid Build Coastguard Worker "" 2724*35238bceSAndroid Build Coastguard Worker end 2725*35238bceSAndroid Build Coastguard Worker 2726*35238bceSAndroid Build Coastguard Worker case tokens_after_endif 2727*35238bceSAndroid Build Coastguard Worker version 300 es 2728*35238bceSAndroid Build Coastguard Worker expect compile_fail 2729*35238bceSAndroid Build Coastguard Worker both "" 2730*35238bceSAndroid Build Coastguard Worker #version 300 es 2731*35238bceSAndroid Build Coastguard Worker precision mediump float; 2732*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2733*35238bceSAndroid Build Coastguard Worker void main() 2734*35238bceSAndroid Build Coastguard Worker { 2735*35238bceSAndroid Build Coastguard Worker #if 1 2736*35238bceSAndroid Build Coastguard Worker #else 2737*35238bceSAndroid Build Coastguard Worker #endif foobar 2738*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2739*35238bceSAndroid Build Coastguard Worker } 2740*35238bceSAndroid Build Coastguard Worker "" 2741*35238bceSAndroid Build Coastguard Worker end 2742*35238bceSAndroid Build Coastguard Worker 2743*35238bceSAndroid Build Coastguard Worker case tokens_after_ifdef 2744*35238bceSAndroid Build Coastguard Worker version 300 es 2745*35238bceSAndroid Build Coastguard Worker expect compile_fail 2746*35238bceSAndroid Build Coastguard Worker both "" 2747*35238bceSAndroid Build Coastguard Worker #version 300 es 2748*35238bceSAndroid Build Coastguard Worker precision mediump float; 2749*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2750*35238bceSAndroid Build Coastguard Worker void main() 2751*35238bceSAndroid Build Coastguard Worker { 2752*35238bceSAndroid Build Coastguard Worker #ifdef FOOBAR foobar 2753*35238bceSAndroid Build Coastguard Worker #else 2754*35238bceSAndroid Build Coastguard Worker #endif 2755*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2756*35238bceSAndroid Build Coastguard Worker } 2757*35238bceSAndroid Build Coastguard Worker "" 2758*35238bceSAndroid Build Coastguard Worker end 2759*35238bceSAndroid Build Coastguard Worker 2760*35238bceSAndroid Build Coastguard Worker case tokens_after_ifndef 2761*35238bceSAndroid Build Coastguard Worker version 300 es 2762*35238bceSAndroid Build Coastguard Worker expect compile_fail 2763*35238bceSAndroid Build Coastguard Worker both "" 2764*35238bceSAndroid Build Coastguard Worker #version 300 es 2765*35238bceSAndroid Build Coastguard Worker precision mediump float; 2766*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2767*35238bceSAndroid Build Coastguard Worker void main() 2768*35238bceSAndroid Build Coastguard Worker { 2769*35238bceSAndroid Build Coastguard Worker #ifndef FOOBAR ,, +- << barbar 2770*35238bceSAndroid Build Coastguard Worker #else 2771*35238bceSAndroid Build Coastguard Worker #endif 2772*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2773*35238bceSAndroid Build Coastguard Worker } 2774*35238bceSAndroid Build Coastguard Worker "" 2775*35238bceSAndroid Build Coastguard Worker end 2776*35238bceSAndroid Build Coastguard Worker 2777*35238bceSAndroid Build Coastguard Worker case unterminated_nested_blocks 2778*35238bceSAndroid Build Coastguard Worker version 300 es 2779*35238bceSAndroid Build Coastguard Worker expect compile_fail 2780*35238bceSAndroid Build Coastguard Worker both "" 2781*35238bceSAndroid Build Coastguard Worker #version 300 es 2782*35238bceSAndroid Build Coastguard Worker precision mediump float; 2783*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2784*35238bceSAndroid Build Coastguard Worker void main() 2785*35238bceSAndroid Build Coastguard Worker { 2786*35238bceSAndroid Build Coastguard Worker #if 1 2787*35238bceSAndroid Build Coastguard Worker # if 1 2788*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2789*35238bceSAndroid Build Coastguard Worker } 2790*35238bceSAndroid Build Coastguard Worker "" 2791*35238bceSAndroid Build Coastguard Worker end 2792*35238bceSAndroid Build Coastguard Worker 2793*35238bceSAndroid Build Coastguard Workerend # invalid_conditionals 2794*35238bceSAndroid Build Coastguard Worker 2795*35238bceSAndroid Build Coastguard Workergroup conditionals "Conditionals Tests" 2796*35238bceSAndroid Build Coastguard Worker 2797*35238bceSAndroid Build Coastguard Worker case ifdef_1 2798*35238bceSAndroid Build Coastguard Worker version 300 es 2799*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2800*35238bceSAndroid Build Coastguard Worker both "" 2801*35238bceSAndroid Build Coastguard Worker #version 300 es 2802*35238bceSAndroid Build Coastguard Worker #define AAA 2803*35238bceSAndroid Build Coastguard Worker precision mediump float; 2804*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2805*35238bceSAndroid Build Coastguard Worker void main() 2806*35238bceSAndroid Build Coastguard Worker { 2807*35238bceSAndroid Build Coastguard Worker #ifdef AAA 2808*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2809*35238bceSAndroid Build Coastguard Worker #else 2810*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2811*35238bceSAndroid Build Coastguard Worker #endif 2812*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2813*35238bceSAndroid Build Coastguard Worker } 2814*35238bceSAndroid Build Coastguard Worker "" 2815*35238bceSAndroid Build Coastguard Worker end 2816*35238bceSAndroid Build Coastguard Worker 2817*35238bceSAndroid Build Coastguard Worker case ifdef_2 2818*35238bceSAndroid Build Coastguard Worker version 300 es 2819*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2820*35238bceSAndroid Build Coastguard Worker both "" 2821*35238bceSAndroid Build Coastguard Worker #version 300 es 2822*35238bceSAndroid Build Coastguard Worker #define AAA 2823*35238bceSAndroid Build Coastguard Worker precision mediump float; 2824*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2825*35238bceSAndroid Build Coastguard Worker void main() 2826*35238bceSAndroid Build Coastguard Worker { 2827*35238bceSAndroid Build Coastguard Worker #if defined ( AAA) 2828*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2829*35238bceSAndroid Build Coastguard Worker #else 2830*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2831*35238bceSAndroid Build Coastguard Worker #endif 2832*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2833*35238bceSAndroid Build Coastguard Worker } 2834*35238bceSAndroid Build Coastguard Worker "" 2835*35238bceSAndroid Build Coastguard Worker end 2836*35238bceSAndroid Build Coastguard Worker 2837*35238bceSAndroid Build Coastguard Worker case ifdef_3 2838*35238bceSAndroid Build Coastguard Worker version 300 es 2839*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2840*35238bceSAndroid Build Coastguard Worker both "" 2841*35238bceSAndroid Build Coastguard Worker #version 300 es 2842*35238bceSAndroid Build Coastguard Worker precision mediump float; 2843*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2844*35238bceSAndroid Build Coastguard Worker void main() 2845*35238bceSAndroid Build Coastguard Worker { 2846*35238bceSAndroid Build Coastguard Worker #ifdef AAA 2847*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2848*35238bceSAndroid Build Coastguard Worker #else 2849*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2850*35238bceSAndroid Build Coastguard Worker #endif 2851*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2852*35238bceSAndroid Build Coastguard Worker } 2853*35238bceSAndroid Build Coastguard Worker "" 2854*35238bceSAndroid Build Coastguard Worker end 2855*35238bceSAndroid Build Coastguard Worker 2856*35238bceSAndroid Build Coastguard Worker case ifndef_1 2857*35238bceSAndroid Build Coastguard Worker version 300 es 2858*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2859*35238bceSAndroid Build Coastguard Worker both "" 2860*35238bceSAndroid Build Coastguard Worker #version 300 es 2861*35238bceSAndroid Build Coastguard Worker precision mediump float; 2862*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2863*35238bceSAndroid Build Coastguard Worker void main() 2864*35238bceSAndroid Build Coastguard Worker { 2865*35238bceSAndroid Build Coastguard Worker #ifndef AAA 2866*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2867*35238bceSAndroid Build Coastguard Worker #else 2868*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2869*35238bceSAndroid Build Coastguard Worker #endif 2870*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2871*35238bceSAndroid Build Coastguard Worker } 2872*35238bceSAndroid Build Coastguard Worker "" 2873*35238bceSAndroid Build Coastguard Worker end 2874*35238bceSAndroid Build Coastguard Worker 2875*35238bceSAndroid Build Coastguard Worker case ifndef_2 2876*35238bceSAndroid Build Coastguard Worker version 300 es 2877*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2878*35238bceSAndroid Build Coastguard Worker both "" 2879*35238bceSAndroid Build Coastguard Worker #version 300 es 2880*35238bceSAndroid Build Coastguard Worker precision mediump float; 2881*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2882*35238bceSAndroid Build Coastguard Worker #define AAA 2883*35238bceSAndroid Build Coastguard Worker void main() 2884*35238bceSAndroid Build Coastguard Worker { 2885*35238bceSAndroid Build Coastguard Worker #ifndef AAA 2886*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2887*35238bceSAndroid Build Coastguard Worker #else 2888*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2889*35238bceSAndroid Build Coastguard Worker #endif 2890*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2891*35238bceSAndroid Build Coastguard Worker } 2892*35238bceSAndroid Build Coastguard Worker "" 2893*35238bceSAndroid Build Coastguard Worker end 2894*35238bceSAndroid Build Coastguard Worker 2895*35238bceSAndroid Build Coastguard Worker case mixed_conditional_inclusion 2896*35238bceSAndroid Build Coastguard Worker version 300 es 2897*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2898*35238bceSAndroid Build Coastguard Worker both "" 2899*35238bceSAndroid Build Coastguard Worker #version 300 es 2900*35238bceSAndroid Build Coastguard Worker precision mediump float; 2901*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2902*35238bceSAndroid Build Coastguard Worker void main() 2903*35238bceSAndroid Build Coastguard Worker { 2904*35238bceSAndroid Build Coastguard Worker #ifndef AAA 2905*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2906*35238bceSAndroid Build Coastguard Worker #elif 1 2907*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2908*35238bceSAndroid Build Coastguard Worker #endif 2909*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2910*35238bceSAndroid Build Coastguard Worker } 2911*35238bceSAndroid Build Coastguard Worker "" 2912*35238bceSAndroid Build Coastguard Worker end 2913*35238bceSAndroid Build Coastguard Worker 2914*35238bceSAndroid Build Coastguard Worker case nested_if_1 2915*35238bceSAndroid Build Coastguard Worker version 300 es 2916*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2917*35238bceSAndroid Build Coastguard Worker both "" 2918*35238bceSAndroid Build Coastguard Worker #version 300 es 2919*35238bceSAndroid Build Coastguard Worker precision mediump float; 2920*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2921*35238bceSAndroid Build Coastguard Worker void main() 2922*35238bceSAndroid Build Coastguard Worker { 2923*35238bceSAndroid Build Coastguard Worker #if GL_ES 2924*35238bceSAndroid Build Coastguard Worker # if __VERSION__ != 300 2925*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2926*35238bceSAndroid Build Coastguard Worker # else 2927*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2928*35238bceSAndroid Build Coastguard Worker # endif 2929*35238bceSAndroid Build Coastguard Worker #endif 2930*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2931*35238bceSAndroid Build Coastguard Worker } 2932*35238bceSAndroid Build Coastguard Worker "" 2933*35238bceSAndroid Build Coastguard Worker end 2934*35238bceSAndroid Build Coastguard Worker 2935*35238bceSAndroid Build Coastguard Worker case nested_if_2 2936*35238bceSAndroid Build Coastguard Worker version 300 es 2937*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2938*35238bceSAndroid Build Coastguard Worker both "" 2939*35238bceSAndroid Build Coastguard Worker #version 300 es 2940*35238bceSAndroid Build Coastguard Worker precision mediump float; 2941*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2942*35238bceSAndroid Build Coastguard Worker void main() 2943*35238bceSAndroid Build Coastguard Worker { 2944*35238bceSAndroid Build Coastguard Worker #if 1 2945*35238bceSAndroid Build Coastguard Worker # if 0 2946*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2947*35238bceSAndroid Build Coastguard Worker # else 2948*35238bceSAndroid Build Coastguard Worker # if 0 2949*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2950*35238bceSAndroid Build Coastguard Worker # elif 1 2951*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2952*35238bceSAndroid Build Coastguard Worker # else 2953*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2954*35238bceSAndroid Build Coastguard Worker # endif 2955*35238bceSAndroid Build Coastguard Worker # endif 2956*35238bceSAndroid Build Coastguard Worker #endif 2957*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2958*35238bceSAndroid Build Coastguard Worker } 2959*35238bceSAndroid Build Coastguard Worker "" 2960*35238bceSAndroid Build Coastguard Worker end 2961*35238bceSAndroid Build Coastguard Worker 2962*35238bceSAndroid Build Coastguard Worker case nested_if_3 2963*35238bceSAndroid Build Coastguard Worker version 300 es 2964*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 2965*35238bceSAndroid Build Coastguard Worker both "" 2966*35238bceSAndroid Build Coastguard Worker #version 300 es 2967*35238bceSAndroid Build Coastguard Worker precision mediump float; 2968*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2969*35238bceSAndroid Build Coastguard Worker void main() 2970*35238bceSAndroid Build Coastguard Worker { 2971*35238bceSAndroid Build Coastguard Worker #if 0 2972*35238bceSAndroid Build Coastguard Worker # if 1 2973*35238bceSAndroid Build Coastguard Worker out0 = -1.0; 2974*35238bceSAndroid Build Coastguard Worker # endif 2975*35238bceSAndroid Build Coastguard Worker #else 2976*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 2977*35238bceSAndroid Build Coastguard Worker #endif 2978*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 2979*35238bceSAndroid Build Coastguard Worker } 2980*35238bceSAndroid Build Coastguard Worker "" 2981*35238bceSAndroid Build Coastguard Worker end 2982*35238bceSAndroid Build Coastguard Worker 2983*35238bceSAndroid Build Coastguard Workerend # conditionals 2984*35238bceSAndroid Build Coastguard Worker 2985*35238bceSAndroid Build Coastguard Workergroup directive "Directive Tests" 2986*35238bceSAndroid Build Coastguard Worker 2987*35238bceSAndroid Build Coastguard Worker case version_is_less 2988*35238bceSAndroid Build Coastguard Worker expect compile_fail 2989*35238bceSAndroid Build Coastguard Worker version 300 es 2990*35238bceSAndroid Build Coastguard Worker both "" 2991*35238bceSAndroid Build Coastguard Worker #version 299 es 2992*35238bceSAndroid Build Coastguard Worker precision mediump float; 2993*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 2994*35238bceSAndroid Build Coastguard Worker void main() 2995*35238bceSAndroid Build Coastguard Worker { 2996*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 2997*35238bceSAndroid Build Coastguard Worker } 2998*35238bceSAndroid Build Coastguard Worker "" 2999*35238bceSAndroid Build Coastguard Worker end 3000*35238bceSAndroid Build Coastguard Worker 3001*35238bceSAndroid Build Coastguard Worker case version_is_more 3002*35238bceSAndroid Build Coastguard Worker expect compile_fail 3003*35238bceSAndroid Build Coastguard Worker version 300 es 3004*35238bceSAndroid Build Coastguard Worker both "" 3005*35238bceSAndroid Build Coastguard Worker #version 301 es 3006*35238bceSAndroid Build Coastguard Worker precision mediump float; 3007*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3008*35238bceSAndroid Build Coastguard Worker void main() 3009*35238bceSAndroid Build Coastguard Worker { 3010*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3011*35238bceSAndroid Build Coastguard Worker } 3012*35238bceSAndroid Build Coastguard Worker "" 3013*35238bceSAndroid Build Coastguard Worker end 3014*35238bceSAndroid Build Coastguard Worker 3015*35238bceSAndroid Build Coastguard Worker case version_missing_es 3016*35238bceSAndroid Build Coastguard Worker expect compile_fail 3017*35238bceSAndroid Build Coastguard Worker version 300 es 3018*35238bceSAndroid Build Coastguard Worker both "" 3019*35238bceSAndroid Build Coastguard Worker #version 300 3020*35238bceSAndroid Build Coastguard Worker precision mediump float; 3021*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3022*35238bceSAndroid Build Coastguard Worker void main() 3023*35238bceSAndroid Build Coastguard Worker { 3024*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3025*35238bceSAndroid Build Coastguard Worker } 3026*35238bceSAndroid Build Coastguard Worker "" 3027*35238bceSAndroid Build Coastguard Worker end 3028*35238bceSAndroid Build Coastguard Worker 3029*35238bceSAndroid Build Coastguard Worker case version_missing 3030*35238bceSAndroid Build Coastguard Worker expect compile_fail 3031*35238bceSAndroid Build Coastguard Worker version 300 es 3032*35238bceSAndroid Build Coastguard Worker both "" 3033*35238bceSAndroid Build Coastguard Worker #version 3034*35238bceSAndroid Build Coastguard Worker precision mediump float; 3035*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3036*35238bceSAndroid Build Coastguard Worker void main() 3037*35238bceSAndroid Build Coastguard Worker { 3038*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3039*35238bceSAndroid Build Coastguard Worker } 3040*35238bceSAndroid Build Coastguard Worker "" 3041*35238bceSAndroid Build Coastguard Worker end 3042*35238bceSAndroid Build Coastguard Worker 3043*35238bceSAndroid Build Coastguard Worker case version_not_first_statement_1 3044*35238bceSAndroid Build Coastguard Worker expect compile_fail 3045*35238bceSAndroid Build Coastguard Worker version 300 es 3046*35238bceSAndroid Build Coastguard Worker both "" 3047*35238bceSAndroid Build Coastguard Worker precision mediump float; 3048*35238bceSAndroid Build Coastguard Worker #version 300 es 3049*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3050*35238bceSAndroid Build Coastguard Worker void main() 3051*35238bceSAndroid Build Coastguard Worker { 3052*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3053*35238bceSAndroid Build Coastguard Worker } 3054*35238bceSAndroid Build Coastguard Worker "" 3055*35238bceSAndroid Build Coastguard Worker end 3056*35238bceSAndroid Build Coastguard Worker 3057*35238bceSAndroid Build Coastguard Worker case version_not_first_statement_2 3058*35238bceSAndroid Build Coastguard Worker expect compile_fail 3059*35238bceSAndroid Build Coastguard Worker version 300 es 3060*35238bceSAndroid Build Coastguard Worker both "" 3061*35238bceSAndroid Build Coastguard Worker #define FOO BAR 3062*35238bceSAndroid Build Coastguard Worker #version 300 es 3063*35238bceSAndroid Build Coastguard Worker precision mediump float; 3064*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3065*35238bceSAndroid Build Coastguard Worker void main() 3066*35238bceSAndroid Build Coastguard Worker { 3067*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3068*35238bceSAndroid Build Coastguard Worker } 3069*35238bceSAndroid Build Coastguard Worker "" 3070*35238bceSAndroid Build Coastguard Worker end 3071*35238bceSAndroid Build Coastguard Worker 3072*35238bceSAndroid Build Coastguard Worker case version_invalid_token_1 3073*35238bceSAndroid Build Coastguard Worker expect compile_fail 3074*35238bceSAndroid Build Coastguard Worker version 300 es 3075*35238bceSAndroid Build Coastguard Worker both "" 3076*35238bceSAndroid Build Coastguard Worker #version 300 es.0 3077*35238bceSAndroid Build Coastguard Worker precision mediump float; 3078*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3079*35238bceSAndroid Build Coastguard Worker void main() 3080*35238bceSAndroid Build Coastguard Worker { 3081*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3082*35238bceSAndroid Build Coastguard Worker } 3083*35238bceSAndroid Build Coastguard Worker "" 3084*35238bceSAndroid Build Coastguard Worker end 3085*35238bceSAndroid Build Coastguard Worker 3086*35238bceSAndroid Build Coastguard Worker case version_invalid_token_2 3087*35238bceSAndroid Build Coastguard Worker expect compile_fail 3088*35238bceSAndroid Build Coastguard Worker version 300 es 3089*35238bceSAndroid Build Coastguard Worker both "" 3090*35238bceSAndroid Build Coastguard Worker #version foobar 3091*35238bceSAndroid Build Coastguard Worker precision mediump float; 3092*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3093*35238bceSAndroid Build Coastguard Worker void main() 3094*35238bceSAndroid Build Coastguard Worker { 3095*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3096*35238bceSAndroid Build Coastguard Worker } 3097*35238bceSAndroid Build Coastguard Worker "" 3098*35238bceSAndroid Build Coastguard Worker end 3099*35238bceSAndroid Build Coastguard Worker 3100*35238bceSAndroid Build Coastguard Worker case invalid_version 3101*35238bceSAndroid Build Coastguard Worker expect compile_fail 3102*35238bceSAndroid Build Coastguard Worker version 300 es 3103*35238bceSAndroid Build Coastguard Worker both "" 3104*35238bceSAndroid Build Coastguard Worker #version AAA 3105*35238bceSAndroid Build Coastguard Worker precision mediump float; 3106*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3107*35238bceSAndroid Build Coastguard Worker void main() 3108*35238bceSAndroid Build Coastguard Worker { 3109*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3110*35238bceSAndroid Build Coastguard Worker } 3111*35238bceSAndroid Build Coastguard Worker "" 3112*35238bceSAndroid Build Coastguard Worker end 3113*35238bceSAndroid Build Coastguard Worker 3114*35238bceSAndroid Build Coastguard Worker case additional_tokens 3115*35238bceSAndroid Build Coastguard Worker expect compile_fail 3116*35238bceSAndroid Build Coastguard Worker version 300 es 3117*35238bceSAndroid Build Coastguard Worker both "" 3118*35238bceSAndroid Build Coastguard Worker #version 300 es foobar 3119*35238bceSAndroid Build Coastguard Worker precision mediump float; 3120*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3121*35238bceSAndroid Build Coastguard Worker void main() 3122*35238bceSAndroid Build Coastguard Worker { 3123*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3124*35238bceSAndroid Build Coastguard Worker } 3125*35238bceSAndroid Build Coastguard Worker "" 3126*35238bceSAndroid Build Coastguard Worker end 3127*35238bceSAndroid Build Coastguard Worker 3128*35238bceSAndroid Build Coastguard Worker case error_with_no_tokens 3129*35238bceSAndroid Build Coastguard Worker version 300 es 3130*35238bceSAndroid Build Coastguard Worker expect compile_fail 3131*35238bceSAndroid Build Coastguard Worker both "" 3132*35238bceSAndroid Build Coastguard Worker #version 300 es 3133*35238bceSAndroid Build Coastguard Worker #error 3134*35238bceSAndroid Build Coastguard Worker precision mediump float; 3135*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3136*35238bceSAndroid Build Coastguard Worker void main() 3137*35238bceSAndroid Build Coastguard Worker { 3138*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3139*35238bceSAndroid Build Coastguard Worker } 3140*35238bceSAndroid Build Coastguard Worker "" 3141*35238bceSAndroid Build Coastguard Worker end 3142*35238bceSAndroid Build Coastguard Worker 3143*35238bceSAndroid Build Coastguard Worker case error 3144*35238bceSAndroid Build Coastguard Worker version 300 es 3145*35238bceSAndroid Build Coastguard Worker expect compile_fail 3146*35238bceSAndroid Build Coastguard Worker both "" 3147*35238bceSAndroid Build Coastguard Worker #version 300 es 3148*35238bceSAndroid Build Coastguard Worker #define AAA asdf 3149*35238bceSAndroid Build Coastguard Worker #error 1 * AAA /* comment */ 3150*35238bceSAndroid Build Coastguard Worker precision mediump float; 3151*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3152*35238bceSAndroid Build Coastguard Worker void main() 3153*35238bceSAndroid Build Coastguard Worker { 3154*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3155*35238bceSAndroid Build Coastguard Worker } 3156*35238bceSAndroid Build Coastguard Worker "" 3157*35238bceSAndroid Build Coastguard Worker end 3158*35238bceSAndroid Build Coastguard Worker 3159*35238bceSAndroid Build Coastguard Workerend # directive 3160*35238bceSAndroid Build Coastguard Worker 3161*35238bceSAndroid Build Coastguard Workergroup builtin "Built-in Symbol Tests" 3162*35238bceSAndroid Build Coastguard Worker 3163*35238bceSAndroid Build Coastguard Worker case line 3164*35238bceSAndroid Build Coastguard Worker version 300 es 3165*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3166*35238bceSAndroid Build Coastguard Worker both "" 3167*35238bceSAndroid Build Coastguard Worker #version 300 es 3168*35238bceSAndroid Build Coastguard Worker precision mediump float; 3169*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3170*35238bceSAndroid Build Coastguard Worker void main() 3171*35238bceSAndroid Build Coastguard Worker { 3172*35238bceSAndroid Build Coastguard Worker #line 1 3173*35238bceSAndroid Build Coastguard Worker out0 = float(__LINE__); 3174*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3175*35238bceSAndroid Build Coastguard Worker } 3176*35238bceSAndroid Build Coastguard Worker "" 3177*35238bceSAndroid Build Coastguard Worker end 3178*35238bceSAndroid Build Coastguard Worker 3179*35238bceSAndroid Build Coastguard Worker case line_and_file 3180*35238bceSAndroid Build Coastguard Worker version 300 es 3181*35238bceSAndroid Build Coastguard Worker values { output vec4 out0 = vec4(234.0, 234.0, 10.0, 10.0); } 3182*35238bceSAndroid Build Coastguard Worker both "" 3183*35238bceSAndroid Build Coastguard Worker #version 300 es 3184*35238bceSAndroid Build Coastguard Worker precision mediump float; 3185*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3186*35238bceSAndroid Build Coastguard Worker void main() 3187*35238bceSAndroid Build Coastguard Worker { 3188*35238bceSAndroid Build Coastguard Worker #line 234 10 3189*35238bceSAndroid Build Coastguard Worker out0 = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 3190*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3191*35238bceSAndroid Build Coastguard Worker } 3192*35238bceSAndroid Build Coastguard Worker "" 3193*35238bceSAndroid Build Coastguard Worker end 3194*35238bceSAndroid Build Coastguard Worker 3195*35238bceSAndroid Build Coastguard Worker case line_defined_1 3196*35238bceSAndroid Build Coastguard Worker version 300 es 3197*35238bceSAndroid Build Coastguard Worker values { output float out0 = 4.0; } 3198*35238bceSAndroid Build Coastguard Worker both "" 3199*35238bceSAndroid Build Coastguard Worker #version 300 es 3200*35238bceSAndroid Build Coastguard Worker precision mediump float; 3201*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3202*35238bceSAndroid Build Coastguard Worker void main() 3203*35238bceSAndroid Build Coastguard Worker { 3204*35238bceSAndroid Build Coastguard Worker #define A 4 3205*35238bceSAndroid Build Coastguard Worker #line A 3206*35238bceSAndroid Build Coastguard Worker out0 = float(__LINE__); 3207*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3208*35238bceSAndroid Build Coastguard Worker } 3209*35238bceSAndroid Build Coastguard Worker "" 3210*35238bceSAndroid Build Coastguard Worker end 3211*35238bceSAndroid Build Coastguard Worker 3212*35238bceSAndroid Build Coastguard Worker case line_defined_2 3213*35238bceSAndroid Build Coastguard Worker version 300 es 3214*35238bceSAndroid Build Coastguard Worker values { output vec4 out0 = vec4(234.0, 234.0, 10.0, 10.0); } 3215*35238bceSAndroid Build Coastguard Worker both "" 3216*35238bceSAndroid Build Coastguard Worker #version 300 es 3217*35238bceSAndroid Build Coastguard Worker precision mediump float; 3218*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3219*35238bceSAndroid Build Coastguard Worker void main() 3220*35238bceSAndroid Build Coastguard Worker { 3221*35238bceSAndroid Build Coastguard Worker #define A 10 3222*35238bceSAndroid Build Coastguard Worker #line 234 A 3223*35238bceSAndroid Build Coastguard Worker out0 = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 3224*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3225*35238bceSAndroid Build Coastguard Worker } 3226*35238bceSAndroid Build Coastguard Worker "" 3227*35238bceSAndroid Build Coastguard Worker end 3228*35238bceSAndroid Build Coastguard Worker 3229*35238bceSAndroid Build Coastguard Worker case empty_line 3230*35238bceSAndroid Build Coastguard Worker version 300 es 3231*35238bceSAndroid Build Coastguard Worker expect compile_fail 3232*35238bceSAndroid Build Coastguard Worker both "" 3233*35238bceSAndroid Build Coastguard Worker #version 300 es 3234*35238bceSAndroid Build Coastguard Worker precision mediump float; 3235*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3236*35238bceSAndroid Build Coastguard Worker void main() 3237*35238bceSAndroid Build Coastguard Worker { 3238*35238bceSAndroid Build Coastguard Worker #line 3239*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3240*35238bceSAndroid Build Coastguard Worker } 3241*35238bceSAndroid Build Coastguard Worker "" 3242*35238bceSAndroid Build Coastguard Worker end 3243*35238bceSAndroid Build Coastguard Worker 3244*35238bceSAndroid Build Coastguard Worker case invalid_line_file_1 3245*35238bceSAndroid Build Coastguard Worker version 300 es 3246*35238bceSAndroid Build Coastguard Worker expect compile_fail 3247*35238bceSAndroid Build Coastguard Worker both "" 3248*35238bceSAndroid Build Coastguard Worker #version 300 es 3249*35238bceSAndroid Build Coastguard Worker precision mediump float; 3250*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3251*35238bceSAndroid Build Coastguard Worker void main() 3252*35238bceSAndroid Build Coastguard Worker { 3253*35238bceSAndroid Build Coastguard Worker #line 22 1.234 3254*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 3255*35238bceSAndroid Build Coastguard Worker } 3256*35238bceSAndroid Build Coastguard Worker "" 3257*35238bceSAndroid Build Coastguard Worker end 3258*35238bceSAndroid Build Coastguard Worker 3259*35238bceSAndroid Build Coastguard Worker case invalid_line_file_3 3260*35238bceSAndroid Build Coastguard Worker version 300 es 3261*35238bceSAndroid Build Coastguard Worker expect compile_fail 3262*35238bceSAndroid Build Coastguard Worker both "" 3263*35238bceSAndroid Build Coastguard Worker #version 300 es 3264*35238bceSAndroid Build Coastguard Worker precision mediump float; 3265*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3266*35238bceSAndroid Build Coastguard Worker void main() 3267*35238bceSAndroid Build Coastguard Worker { 3268*35238bceSAndroid Build Coastguard Worker #line 233 10 2 3269*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 3270*35238bceSAndroid Build Coastguard Worker } 3271*35238bceSAndroid Build Coastguard Worker "" 3272*35238bceSAndroid Build Coastguard Worker end 3273*35238bceSAndroid Build Coastguard Worker 3274*35238bceSAndroid Build Coastguard Worker case invalid_line_file_4 3275*35238bceSAndroid Build Coastguard Worker version 300 es 3276*35238bceSAndroid Build Coastguard Worker expect compile_fail 3277*35238bceSAndroid Build Coastguard Worker both "" 3278*35238bceSAndroid Build Coastguard Worker #version 300 es 3279*35238bceSAndroid Build Coastguard Worker precision mediump float; 3280*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3281*35238bceSAndroid Build Coastguard Worker void main() 3282*35238bceSAndroid Build Coastguard Worker { 3283*35238bceSAndroid Build Coastguard Worker #line foobar 3284*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(__LINE__, __LINE__, __FILE__, __FILE__); 3285*35238bceSAndroid Build Coastguard Worker } 3286*35238bceSAndroid Build Coastguard Worker "" 3287*35238bceSAndroid Build Coastguard Worker end 3288*35238bceSAndroid Build Coastguard Worker 3289*35238bceSAndroid Build Coastguard Workerend # builtin 3290*35238bceSAndroid Build Coastguard Worker 3291*35238bceSAndroid Build Coastguard Workergroup pragmas "Pragma Tests" 3292*35238bceSAndroid Build Coastguard Worker 3293*35238bceSAndroid Build Coastguard Worker case pragma_vertex 3294*35238bceSAndroid Build Coastguard Worker version 300 es 3295*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3296*35238bceSAndroid Build Coastguard Worker vertex "" 3297*35238bceSAndroid Build Coastguard Worker #version 300 es 3298*35238bceSAndroid Build Coastguard Worker #pragma 3299*35238bceSAndroid Build Coastguard Worker #pragma STDGL invariant(all) 3300*35238bceSAndroid Build Coastguard Worker #pragma debug(off) 3301*35238bceSAndroid Build Coastguard Worker #pragma optimize(off) 3302*35238bceSAndroid Build Coastguard Worker 3303*35238bceSAndroid Build Coastguard Worker ${VERTEX_DECLARATIONS} 3304*35238bceSAndroid Build Coastguard Worker void main() 3305*35238bceSAndroid Build Coastguard Worker { 3306*35238bceSAndroid Build Coastguard Worker ${VERTEX_OUTPUT} 3307*35238bceSAndroid Build Coastguard Worker } 3308*35238bceSAndroid Build Coastguard Worker "" 3309*35238bceSAndroid Build Coastguard Worker fragment "" 3310*35238bceSAndroid Build Coastguard Worker #version 300 es 3311*35238bceSAndroid Build Coastguard Worker precision mediump float; 3312*35238bceSAndroid Build Coastguard Worker ${FRAGMENT_DECLARATIONS} 3313*35238bceSAndroid Build Coastguard Worker void main() 3314*35238bceSAndroid Build Coastguard Worker { 3315*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3316*35238bceSAndroid Build Coastguard Worker ${FRAGMENT_OUTPUT} 3317*35238bceSAndroid Build Coastguard Worker } 3318*35238bceSAndroid Build Coastguard Worker "" 3319*35238bceSAndroid Build Coastguard Worker end 3320*35238bceSAndroid Build Coastguard Worker 3321*35238bceSAndroid Build Coastguard Worker case pragma_fragment 3322*35238bceSAndroid Build Coastguard Worker version 300 es 3323*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3324*35238bceSAndroid Build Coastguard Worker vertex "" 3325*35238bceSAndroid Build Coastguard Worker #version 300 es 3326*35238bceSAndroid Build Coastguard Worker ${VERTEX_DECLARATIONS} 3327*35238bceSAndroid Build Coastguard Worker void main() 3328*35238bceSAndroid Build Coastguard Worker { 3329*35238bceSAndroid Build Coastguard Worker ${VERTEX_OUTPUT} 3330*35238bceSAndroid Build Coastguard Worker } 3331*35238bceSAndroid Build Coastguard Worker "" 3332*35238bceSAndroid Build Coastguard Worker fragment "" 3333*35238bceSAndroid Build Coastguard Worker #version 300 es 3334*35238bceSAndroid Build Coastguard Worker #pragma 3335*35238bceSAndroid Build Coastguard Worker #pragma debug(off) 3336*35238bceSAndroid Build Coastguard Worker #pragma optimize(off) 3337*35238bceSAndroid Build Coastguard Worker 3338*35238bceSAndroid Build Coastguard Worker precision mediump float; 3339*35238bceSAndroid Build Coastguard Worker ${FRAGMENT_DECLARATIONS} 3340*35238bceSAndroid Build Coastguard Worker void main() 3341*35238bceSAndroid Build Coastguard Worker { 3342*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3343*35238bceSAndroid Build Coastguard Worker ${FRAGMENT_OUTPUT} 3344*35238bceSAndroid Build Coastguard Worker } 3345*35238bceSAndroid Build Coastguard Worker "" 3346*35238bceSAndroid Build Coastguard Worker end 3347*35238bceSAndroid Build Coastguard Worker 3348*35238bceSAndroid Build Coastguard Worker case pragma_macro_exp 3349*35238bceSAndroid Build Coastguard Worker version 300 es 3350*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3351*35238bceSAndroid Build Coastguard Worker both "" 3352*35238bceSAndroid Build Coastguard Worker #version 300 es 3353*35238bceSAndroid Build Coastguard Worker #define off INVALID 3354*35238bceSAndroid Build Coastguard Worker /* pragma line not macro expanded */ 3355*35238bceSAndroid Build Coastguard Worker #pragma debug(off) 3356*35238bceSAndroid Build Coastguard Worker 3357*35238bceSAndroid Build Coastguard Worker precision mediump float; 3358*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3359*35238bceSAndroid Build Coastguard Worker void main() 3360*35238bceSAndroid Build Coastguard Worker { 3361*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3362*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3363*35238bceSAndroid Build Coastguard Worker } 3364*35238bceSAndroid Build Coastguard Worker "" 3365*35238bceSAndroid Build Coastguard Worker end 3366*35238bceSAndroid Build Coastguard Worker 3367*35238bceSAndroid Build Coastguard Worker case pragma_unrecognized_debug 3368*35238bceSAndroid Build Coastguard Worker version 300 es 3369*35238bceSAndroid Build Coastguard Worker expect build_successful 3370*35238bceSAndroid Build Coastguard Worker both "" 3371*35238bceSAndroid Build Coastguard Worker #version 300 es 3372*35238bceSAndroid Build Coastguard Worker #pragma debug(1.23) 3373*35238bceSAndroid Build Coastguard Worker 3374*35238bceSAndroid Build Coastguard Worker // unrecognized preprocessor token 3375*35238bceSAndroid Build Coastguard Worker 3376*35238bceSAndroid Build Coastguard Worker precision mediump float; 3377*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3378*35238bceSAndroid Build Coastguard Worker void main() 3379*35238bceSAndroid Build Coastguard Worker { 3380*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3381*35238bceSAndroid Build Coastguard Worker } 3382*35238bceSAndroid Build Coastguard Worker "" 3383*35238bceSAndroid Build Coastguard Worker end 3384*35238bceSAndroid Build Coastguard Worker 3385*35238bceSAndroid Build Coastguard Worker case pragma_unrecognized_token 3386*35238bceSAndroid Build Coastguard Worker version 300 es 3387*35238bceSAndroid Build Coastguard Worker expect build_successful 3388*35238bceSAndroid Build Coastguard Worker both "" 3389*35238bceSAndroid Build Coastguard Worker #version 300 es 3390*35238bceSAndroid Build Coastguard Worker #pragma ¤¤½ 3391*35238bceSAndroid Build Coastguard Worker 3392*35238bceSAndroid Build Coastguard Worker // trailing bytes form a valid but unrecognized preprocessor token 3393*35238bceSAndroid Build Coastguard Worker 3394*35238bceSAndroid Build Coastguard Worker precision mediump float; 3395*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3396*35238bceSAndroid Build Coastguard Worker void main() 3397*35238bceSAndroid Build Coastguard Worker { 3398*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3399*35238bceSAndroid Build Coastguard Worker } 3400*35238bceSAndroid Build Coastguard Worker "" 3401*35238bceSAndroid Build Coastguard Worker end 3402*35238bceSAndroid Build Coastguard Worker 3403*35238bceSAndroid Build Coastguard Workerend # pragmas 3404*35238bceSAndroid Build Coastguard Worker 3405*35238bceSAndroid Build Coastguard Workergroup extensions "Extension Tests" 3406*35238bceSAndroid Build Coastguard Worker 3407*35238bceSAndroid Build Coastguard Worker case basic 3408*35238bceSAndroid Build Coastguard Worker version 300 es 3409*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3410*35238bceSAndroid Build Coastguard Worker both "" 3411*35238bceSAndroid Build Coastguard Worker #version 300 es 3412*35238bceSAndroid Build Coastguard Worker #extension all : warn 3413*35238bceSAndroid Build Coastguard Worker 3414*35238bceSAndroid Build Coastguard Worker precision mediump float; 3415*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3416*35238bceSAndroid Build Coastguard Worker void main() 3417*35238bceSAndroid Build Coastguard Worker { 3418*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3419*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3420*35238bceSAndroid Build Coastguard Worker } 3421*35238bceSAndroid Build Coastguard Worker "" 3422*35238bceSAndroid Build Coastguard Worker end 3423*35238bceSAndroid Build Coastguard Worker 3424*35238bceSAndroid Build Coastguard Worker case macro_exp 3425*35238bceSAndroid Build Coastguard Worker version 300 es 3426*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3427*35238bceSAndroid Build Coastguard Worker both "" 3428*35238bceSAndroid Build Coastguard Worker #version 300 es 3429*35238bceSAndroid Build Coastguard Worker #define warn enable 3430*35238bceSAndroid Build Coastguard Worker 3431*35238bceSAndroid Build Coastguard Worker #extension all : warn 3432*35238bceSAndroid Build Coastguard Worker 3433*35238bceSAndroid Build Coastguard Worker precision mediump float; 3434*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3435*35238bceSAndroid Build Coastguard Worker void main() 3436*35238bceSAndroid Build Coastguard Worker { 3437*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3438*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3439*35238bceSAndroid Build Coastguard Worker } 3440*35238bceSAndroid Build Coastguard Worker "" 3441*35238bceSAndroid Build Coastguard Worker end 3442*35238bceSAndroid Build Coastguard Worker 3443*35238bceSAndroid Build Coastguard Worker case missing_extension_name 3444*35238bceSAndroid Build Coastguard Worker version 300 es 3445*35238bceSAndroid Build Coastguard Worker expect compile_fail 3446*35238bceSAndroid Build Coastguard Worker both "" 3447*35238bceSAndroid Build Coastguard Worker #version 300 es 3448*35238bceSAndroid Build Coastguard Worker #extension 3449*35238bceSAndroid Build Coastguard Worker precision mediump float; 3450*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3451*35238bceSAndroid Build Coastguard Worker void main() 3452*35238bceSAndroid Build Coastguard Worker { 3453*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3454*35238bceSAndroid Build Coastguard Worker } 3455*35238bceSAndroid Build Coastguard Worker "" 3456*35238bceSAndroid Build Coastguard Worker end 3457*35238bceSAndroid Build Coastguard Worker 3458*35238bceSAndroid Build Coastguard Worker case invalid_extension_name 3459*35238bceSAndroid Build Coastguard Worker version 300 es 3460*35238bceSAndroid Build Coastguard Worker expect compile_fail 3461*35238bceSAndroid Build Coastguard Worker both "" 3462*35238bceSAndroid Build Coastguard Worker #version 300 es 3463*35238bceSAndroid Build Coastguard Worker #extension 2 : all 3464*35238bceSAndroid Build Coastguard Worker precision mediump float; 3465*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3466*35238bceSAndroid Build Coastguard Worker void main() 3467*35238bceSAndroid Build Coastguard Worker { 3468*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3469*35238bceSAndroid Build Coastguard Worker } 3470*35238bceSAndroid Build Coastguard Worker "" 3471*35238bceSAndroid Build Coastguard Worker end 3472*35238bceSAndroid Build Coastguard Worker 3473*35238bceSAndroid Build Coastguard Worker case missing_colon 3474*35238bceSAndroid Build Coastguard Worker version 300 es 3475*35238bceSAndroid Build Coastguard Worker expect compile_fail 3476*35238bceSAndroid Build Coastguard Worker both "" 3477*35238bceSAndroid Build Coastguard Worker #version 300 es 3478*35238bceSAndroid Build Coastguard Worker #extension all 3479*35238bceSAndroid Build Coastguard Worker precision mediump float; 3480*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3481*35238bceSAndroid Build Coastguard Worker void main() 3482*35238bceSAndroid Build Coastguard Worker { 3483*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3484*35238bceSAndroid Build Coastguard Worker } 3485*35238bceSAndroid Build Coastguard Worker "" 3486*35238bceSAndroid Build Coastguard Worker end 3487*35238bceSAndroid Build Coastguard Worker 3488*35238bceSAndroid Build Coastguard Worker case expected_colon 3489*35238bceSAndroid Build Coastguard Worker version 300 es 3490*35238bceSAndroid Build Coastguard Worker expect compile_fail 3491*35238bceSAndroid Build Coastguard Worker both "" 3492*35238bceSAndroid Build Coastguard Worker #version 300 es 3493*35238bceSAndroid Build Coastguard Worker #extension all ; 3494*35238bceSAndroid Build Coastguard Worker precision mediump float; 3495*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3496*35238bceSAndroid Build Coastguard Worker void main() 3497*35238bceSAndroid Build Coastguard Worker { 3498*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3499*35238bceSAndroid Build Coastguard Worker } 3500*35238bceSAndroid Build Coastguard Worker "" 3501*35238bceSAndroid Build Coastguard Worker end 3502*35238bceSAndroid Build Coastguard Worker 3503*35238bceSAndroid Build Coastguard Worker case missing_behavior 3504*35238bceSAndroid Build Coastguard Worker version 300 es 3505*35238bceSAndroid Build Coastguard Worker expect compile_fail 3506*35238bceSAndroid Build Coastguard Worker both "" 3507*35238bceSAndroid Build Coastguard Worker #version 300 es 3508*35238bceSAndroid Build Coastguard Worker #extension all : 3509*35238bceSAndroid Build Coastguard Worker precision mediump float; 3510*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3511*35238bceSAndroid Build Coastguard Worker void main() 3512*35238bceSAndroid Build Coastguard Worker { 3513*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3514*35238bceSAndroid Build Coastguard Worker } 3515*35238bceSAndroid Build Coastguard Worker "" 3516*35238bceSAndroid Build Coastguard Worker end 3517*35238bceSAndroid Build Coastguard Worker 3518*35238bceSAndroid Build Coastguard Worker case invalid_behavior_1 3519*35238bceSAndroid Build Coastguard Worker version 300 es 3520*35238bceSAndroid Build Coastguard Worker expect compile_fail 3521*35238bceSAndroid Build Coastguard Worker both "" 3522*35238bceSAndroid Build Coastguard Worker #version 300 es 3523*35238bceSAndroid Build Coastguard Worker #extension all : WARN 3524*35238bceSAndroid Build Coastguard Worker precision mediump float; 3525*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3526*35238bceSAndroid Build Coastguard Worker void main() 3527*35238bceSAndroid Build Coastguard Worker { 3528*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3529*35238bceSAndroid Build Coastguard Worker } 3530*35238bceSAndroid Build Coastguard Worker "" 3531*35238bceSAndroid Build Coastguard Worker end 3532*35238bceSAndroid Build Coastguard Worker 3533*35238bceSAndroid Build Coastguard Worker case invalid_behavior_2 3534*35238bceSAndroid Build Coastguard Worker version 300 es 3535*35238bceSAndroid Build Coastguard Worker expect compile_fail 3536*35238bceSAndroid Build Coastguard Worker both "" 3537*35238bceSAndroid Build Coastguard Worker #version 300 es 3538*35238bceSAndroid Build Coastguard Worker #extension all : require 3539*35238bceSAndroid Build Coastguard Worker precision mediump float; 3540*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3541*35238bceSAndroid Build Coastguard Worker void main() 3542*35238bceSAndroid Build Coastguard Worker { 3543*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3544*35238bceSAndroid Build Coastguard Worker } 3545*35238bceSAndroid Build Coastguard Worker "" 3546*35238bceSAndroid Build Coastguard Worker end 3547*35238bceSAndroid Build Coastguard Worker 3548*35238bceSAndroid Build Coastguard Worker case invalid_char_in_name 3549*35238bceSAndroid Build Coastguard Worker version 300 es 3550*35238bceSAndroid Build Coastguard Worker expect compile_fail 3551*35238bceSAndroid Build Coastguard Worker both "" 3552*35238bceSAndroid Build Coastguard Worker #version 300 es 3553*35238bceSAndroid Build Coastguard Worker #extension all¤ : warn 3554*35238bceSAndroid Build Coastguard Worker precision mediump float; 3555*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3556*35238bceSAndroid Build Coastguard Worker void main() 3557*35238bceSAndroid Build Coastguard Worker { 3558*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3559*35238bceSAndroid Build Coastguard Worker } 3560*35238bceSAndroid Build Coastguard Worker "" 3561*35238bceSAndroid Build Coastguard Worker end 3562*35238bceSAndroid Build Coastguard Worker 3563*35238bceSAndroid Build Coastguard Worker case invalid_char_in_behavior 3564*35238bceSAndroid Build Coastguard Worker version 300 es 3565*35238bceSAndroid Build Coastguard Worker expect compile_fail 3566*35238bceSAndroid Build Coastguard Worker both "" 3567*35238bceSAndroid Build Coastguard Worker #version 300 es 3568*35238bceSAndroid Build Coastguard Worker #extension all : war¤n 3569*35238bceSAndroid Build Coastguard Worker precision mediump float; 3570*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3571*35238bceSAndroid Build Coastguard Worker void main() 3572*35238bceSAndroid Build Coastguard Worker { 3573*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3574*35238bceSAndroid Build Coastguard Worker } 3575*35238bceSAndroid Build Coastguard Worker "" 3576*35238bceSAndroid Build Coastguard Worker end 3577*35238bceSAndroid Build Coastguard Worker 3578*35238bceSAndroid Build Coastguard Worker case unterminated_comment 3579*35238bceSAndroid Build Coastguard Worker version 300 es 3580*35238bceSAndroid Build Coastguard Worker expect compile_fail 3581*35238bceSAndroid Build Coastguard Worker both "" 3582*35238bceSAndroid Build Coastguard Worker #version 300 es 3583*35238bceSAndroid Build Coastguard Worker #extension all : warn /*asd 3584*35238bceSAndroid Build Coastguard Worker precision mediump float; 3585*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3586*35238bceSAndroid Build Coastguard Worker void main() 3587*35238bceSAndroid Build Coastguard Worker { 3588*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3589*35238bceSAndroid Build Coastguard Worker } 3590*35238bceSAndroid Build Coastguard Worker "" 3591*35238bceSAndroid Build Coastguard Worker end 3592*35238bceSAndroid Build Coastguard Worker 3593*35238bceSAndroid Build Coastguard Worker case after_non_preprocessing_tokens 3594*35238bceSAndroid Build Coastguard Worker version 300 es 3595*35238bceSAndroid Build Coastguard Worker expect compile_fail 3596*35238bceSAndroid Build Coastguard Worker both "" 3597*35238bceSAndroid Build Coastguard Worker #version 300 es 3598*35238bceSAndroid Build Coastguard Worker #extension all : warn 3599*35238bceSAndroid Build Coastguard Worker 3600*35238bceSAndroid Build Coastguard Worker precision mediump float; 3601*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3602*35238bceSAndroid Build Coastguard Worker void main() 3603*35238bceSAndroid Build Coastguard Worker { 3604*35238bceSAndroid Build Coastguard Worker #extension all : disable 3605*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 3606*35238bceSAndroid Build Coastguard Worker } 3607*35238bceSAndroid Build Coastguard Worker "" 3608*35238bceSAndroid Build Coastguard Worker end 3609*35238bceSAndroid Build Coastguard Workerend # extensions 3610*35238bceSAndroid Build Coastguard Worker 3611*35238bceSAndroid Build Coastguard Workergroup expressions "Expression Tests" 3612*35238bceSAndroid Build Coastguard Worker 3613*35238bceSAndroid Build Coastguard Worker case shift_left 3614*35238bceSAndroid Build Coastguard Worker version 300 es 3615*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3616*35238bceSAndroid Build Coastguard Worker both "" 3617*35238bceSAndroid Build Coastguard Worker #version 300 es 3618*35238bceSAndroid Build Coastguard Worker precision mediump float; 3619*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3620*35238bceSAndroid Build Coastguard Worker void main() 3621*35238bceSAndroid Build Coastguard Worker { 3622*35238bceSAndroid Build Coastguard Worker #define VAL 4 3623*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3624*35238bceSAndroid Build Coastguard Worker #if (VAL << 2) == 16 3625*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3626*35238bceSAndroid Build Coastguard Worker #endif 3627*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3628*35238bceSAndroid Build Coastguard Worker } 3629*35238bceSAndroid Build Coastguard Worker "" 3630*35238bceSAndroid Build Coastguard Worker end 3631*35238bceSAndroid Build Coastguard Worker 3632*35238bceSAndroid Build Coastguard Worker case shift_right 3633*35238bceSAndroid Build Coastguard Worker version 300 es 3634*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3635*35238bceSAndroid Build Coastguard Worker both "" 3636*35238bceSAndroid Build Coastguard Worker #version 300 es 3637*35238bceSAndroid Build Coastguard Worker precision mediump float; 3638*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3639*35238bceSAndroid Build Coastguard Worker void main() 3640*35238bceSAndroid Build Coastguard Worker { 3641*35238bceSAndroid Build Coastguard Worker #define VAL 5 3642*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3643*35238bceSAndroid Build Coastguard Worker #if (VAL >> 1) == 2 3644*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3645*35238bceSAndroid Build Coastguard Worker #endif 3646*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3647*35238bceSAndroid Build Coastguard Worker } 3648*35238bceSAndroid Build Coastguard Worker "" 3649*35238bceSAndroid Build Coastguard Worker end 3650*35238bceSAndroid Build Coastguard Worker 3651*35238bceSAndroid Build Coastguard Worker case cmp_less_than 3652*35238bceSAndroid Build Coastguard Worker version 300 es 3653*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3654*35238bceSAndroid Build Coastguard Worker both "" 3655*35238bceSAndroid Build Coastguard Worker #version 300 es 3656*35238bceSAndroid Build Coastguard Worker precision mediump float; 3657*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3658*35238bceSAndroid Build Coastguard Worker void main() 3659*35238bceSAndroid Build Coastguard Worker { 3660*35238bceSAndroid Build Coastguard Worker #define VAL 5 3661*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3662*35238bceSAndroid Build Coastguard Worker #if (VAL < 6) && (-VAL < -4) 3663*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3664*35238bceSAndroid Build Coastguard Worker #endif 3665*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3666*35238bceSAndroid Build Coastguard Worker } 3667*35238bceSAndroid Build Coastguard Worker "" 3668*35238bceSAndroid Build Coastguard Worker end 3669*35238bceSAndroid Build Coastguard Worker 3670*35238bceSAndroid Build Coastguard Worker case less_or_equal 3671*35238bceSAndroid Build Coastguard Worker version 300 es 3672*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3673*35238bceSAndroid Build Coastguard Worker both "" 3674*35238bceSAndroid Build Coastguard Worker #version 300 es 3675*35238bceSAndroid Build Coastguard Worker precision mediump float; 3676*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3677*35238bceSAndroid Build Coastguard Worker void main() 3678*35238bceSAndroid Build Coastguard Worker { 3679*35238bceSAndroid Build Coastguard Worker #define VAL 6 3680*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3681*35238bceSAndroid Build Coastguard Worker #if (VAL <= 6) && (-VAL <= -6) 3682*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3683*35238bceSAndroid Build Coastguard Worker #endif 3684*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3685*35238bceSAndroid Build Coastguard Worker } 3686*35238bceSAndroid Build Coastguard Worker "" 3687*35238bceSAndroid Build Coastguard Worker end 3688*35238bceSAndroid Build Coastguard Worker 3689*35238bceSAndroid Build Coastguard Worker case or 3690*35238bceSAndroid Build Coastguard Worker version 300 es 3691*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3692*35238bceSAndroid Build Coastguard Worker both "" 3693*35238bceSAndroid Build Coastguard Worker #version 300 es 3694*35238bceSAndroid Build Coastguard Worker precision mediump float; 3695*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3696*35238bceSAndroid Build Coastguard Worker void main() 3697*35238bceSAndroid Build Coastguard Worker { 3698*35238bceSAndroid Build Coastguard Worker #define VAL 6 3699*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3700*35238bceSAndroid Build Coastguard Worker #if (VAL | 5) == 7 3701*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3702*35238bceSAndroid Build Coastguard Worker #endif 3703*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3704*35238bceSAndroid Build Coastguard Worker } 3705*35238bceSAndroid Build Coastguard Worker "" 3706*35238bceSAndroid Build Coastguard Worker end 3707*35238bceSAndroid Build Coastguard Worker 3708*35238bceSAndroid Build Coastguard Worker case and 3709*35238bceSAndroid Build Coastguard Worker version 300 es 3710*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3711*35238bceSAndroid Build Coastguard Worker both "" 3712*35238bceSAndroid Build Coastguard Worker #version 300 es 3713*35238bceSAndroid Build Coastguard Worker precision mediump float; 3714*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3715*35238bceSAndroid Build Coastguard Worker void main() 3716*35238bceSAndroid Build Coastguard Worker { 3717*35238bceSAndroid Build Coastguard Worker #define VAL 6 3718*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3719*35238bceSAndroid Build Coastguard Worker #if (VAL & 5) == 4 3720*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3721*35238bceSAndroid Build Coastguard Worker #endif 3722*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3723*35238bceSAndroid Build Coastguard Worker } 3724*35238bceSAndroid Build Coastguard Worker "" 3725*35238bceSAndroid Build Coastguard Worker end 3726*35238bceSAndroid Build Coastguard Worker 3727*35238bceSAndroid Build Coastguard Worker case xor 3728*35238bceSAndroid Build Coastguard Worker version 300 es 3729*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3730*35238bceSAndroid Build Coastguard Worker both "" 3731*35238bceSAndroid Build Coastguard Worker #version 300 es 3732*35238bceSAndroid Build Coastguard Worker precision mediump float; 3733*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3734*35238bceSAndroid Build Coastguard Worker void main() 3735*35238bceSAndroid Build Coastguard Worker { 3736*35238bceSAndroid Build Coastguard Worker #define VAL 6 3737*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3738*35238bceSAndroid Build Coastguard Worker #if (VAL ^ 5) == 3 3739*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3740*35238bceSAndroid Build Coastguard Worker #endif 3741*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3742*35238bceSAndroid Build Coastguard Worker } 3743*35238bceSAndroid Build Coastguard Worker "" 3744*35238bceSAndroid Build Coastguard Worker end 3745*35238bceSAndroid Build Coastguard Worker 3746*35238bceSAndroid Build Coastguard Worker case mod 3747*35238bceSAndroid Build Coastguard Worker version 300 es 3748*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3749*35238bceSAndroid Build Coastguard Worker both "" 3750*35238bceSAndroid Build Coastguard Worker #version 300 es 3751*35238bceSAndroid Build Coastguard Worker precision mediump float; 3752*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3753*35238bceSAndroid Build Coastguard Worker void main() 3754*35238bceSAndroid Build Coastguard Worker { 3755*35238bceSAndroid Build Coastguard Worker #define VAL 12 3756*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3757*35238bceSAndroid Build Coastguard Worker #if (VAL % 5) == 2 3758*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3759*35238bceSAndroid Build Coastguard Worker #endif 3760*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3761*35238bceSAndroid Build Coastguard Worker } 3762*35238bceSAndroid Build Coastguard Worker "" 3763*35238bceSAndroid Build Coastguard Worker end 3764*35238bceSAndroid Build Coastguard Worker 3765*35238bceSAndroid Build Coastguard Worker case parenthesis_value 3766*35238bceSAndroid Build Coastguard Worker version 300 es 3767*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3768*35238bceSAndroid Build Coastguard Worker both "" 3769*35238bceSAndroid Build Coastguard Worker #version 300 es 3770*35238bceSAndroid Build Coastguard Worker precision mediump float; 3771*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3772*35238bceSAndroid Build Coastguard Worker void main() 3773*35238bceSAndroid Build Coastguard Worker { 3774*35238bceSAndroid Build Coastguard Worker #define VAL (( (4 ) ) ) 3775*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3776*35238bceSAndroid Build Coastguard Worker #if VAL >= 4 3777*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3778*35238bceSAndroid Build Coastguard Worker #endif 3779*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3780*35238bceSAndroid Build Coastguard Worker } 3781*35238bceSAndroid Build Coastguard Worker "" 3782*35238bceSAndroid Build Coastguard Worker end 3783*35238bceSAndroid Build Coastguard Worker 3784*35238bceSAndroid Build Coastguard Worker case parenthesis_tricky 3785*35238bceSAndroid Build Coastguard Worker version 300 es 3786*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3787*35238bceSAndroid Build Coastguard Worker both "" 3788*35238bceSAndroid Build Coastguard Worker #version 300 es 3789*35238bceSAndroid Build Coastguard Worker precision mediump float; 3790*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3791*35238bceSAndroid Build Coastguard Worker void main() 3792*35238bceSAndroid Build Coastguard Worker { 3793*35238bceSAndroid Build Coastguard Worker #define VAL (( (4 ) ) 3794*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3795*35238bceSAndroid Build Coastguard Worker #if VAL) >= 4 3796*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3797*35238bceSAndroid Build Coastguard Worker #endif 3798*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3799*35238bceSAndroid Build Coastguard Worker } 3800*35238bceSAndroid Build Coastguard Worker "" 3801*35238bceSAndroid Build Coastguard Worker end 3802*35238bceSAndroid Build Coastguard Worker 3803*35238bceSAndroid Build Coastguard Worker case parenthesis_if_no 3804*35238bceSAndroid Build Coastguard Worker version 300 es 3805*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3806*35238bceSAndroid Build Coastguard Worker both "" 3807*35238bceSAndroid Build Coastguard Worker #version 300 es 3808*35238bceSAndroid Build Coastguard Worker precision mediump float; 3809*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3810*35238bceSAndroid Build Coastguard Worker void main() 3811*35238bceSAndroid Build Coastguard Worker { 3812*35238bceSAndroid Build Coastguard Worker #define VAL 4 3813*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3814*35238bceSAndroid Build Coastguard Worker #if VAL >= 4 3815*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3816*35238bceSAndroid Build Coastguard Worker #endif 3817*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3818*35238bceSAndroid Build Coastguard Worker } 3819*35238bceSAndroid Build Coastguard Worker "" 3820*35238bceSAndroid Build Coastguard Worker end 3821*35238bceSAndroid Build Coastguard Worker 3822*35238bceSAndroid Build Coastguard Worker case parenthesis_if 3823*35238bceSAndroid Build Coastguard Worker version 300 es 3824*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3825*35238bceSAndroid Build Coastguard Worker both "" 3826*35238bceSAndroid Build Coastguard Worker #version 300 es 3827*35238bceSAndroid Build Coastguard Worker precision mediump float; 3828*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3829*35238bceSAndroid Build Coastguard Worker void main() 3830*35238bceSAndroid Build Coastguard Worker { 3831*35238bceSAndroid Build Coastguard Worker #define VAL 4 3832*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3833*35238bceSAndroid Build Coastguard Worker #if (VAL >= 4) 3834*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3835*35238bceSAndroid Build Coastguard Worker #endif 3836*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3837*35238bceSAndroid Build Coastguard Worker } 3838*35238bceSAndroid Build Coastguard Worker "" 3839*35238bceSAndroid Build Coastguard Worker end 3840*35238bceSAndroid Build Coastguard Worker 3841*35238bceSAndroid Build Coastguard Worker case parenthesis_multi_if 3842*35238bceSAndroid Build Coastguard Worker version 300 es 3843*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3844*35238bceSAndroid Build Coastguard Worker both "" 3845*35238bceSAndroid Build Coastguard Worker #version 300 es 3846*35238bceSAndroid Build Coastguard Worker precision mediump float; 3847*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3848*35238bceSAndroid Build Coastguard Worker void main() 3849*35238bceSAndroid Build Coastguard Worker { 3850*35238bceSAndroid Build Coastguard Worker #define VAL (4) 3851*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3852*35238bceSAndroid Build Coastguard Worker #if (((VAL)) >= (4)) 3853*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3854*35238bceSAndroid Build Coastguard Worker #endif 3855*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3856*35238bceSAndroid Build Coastguard Worker } 3857*35238bceSAndroid Build Coastguard Worker "" 3858*35238bceSAndroid Build Coastguard Worker end 3859*35238bceSAndroid Build Coastguard Worker 3860*35238bceSAndroid Build Coastguard Worker case parenthesis_single_if 3861*35238bceSAndroid Build Coastguard Worker version 300 es 3862*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3863*35238bceSAndroid Build Coastguard Worker both "" 3864*35238bceSAndroid Build Coastguard Worker #version 300 es 3865*35238bceSAndroid Build Coastguard Worker precision mediump float; 3866*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3867*35238bceSAndroid Build Coastguard Worker void main() 3868*35238bceSAndroid Build Coastguard Worker { 3869*35238bceSAndroid Build Coastguard Worker #define VAL 4 3870*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3871*35238bceSAndroid Build Coastguard Worker #if (VAL >= 4) 3872*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3873*35238bceSAndroid Build Coastguard Worker #endif 3874*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3875*35238bceSAndroid Build Coastguard Worker } 3876*35238bceSAndroid Build Coastguard Worker "" 3877*35238bceSAndroid Build Coastguard Worker end 3878*35238bceSAndroid Build Coastguard Worker 3879*35238bceSAndroid Build Coastguard Worker case parenthesis_ifelse_true 3880*35238bceSAndroid Build Coastguard Worker version 300 es 3881*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3882*35238bceSAndroid Build Coastguard Worker both "" 3883*35238bceSAndroid Build Coastguard Worker #version 300 es 3884*35238bceSAndroid Build Coastguard Worker precision mediump float; 3885*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3886*35238bceSAndroid Build Coastguard Worker void main() 3887*35238bceSAndroid Build Coastguard Worker { 3888*35238bceSAndroid Build Coastguard Worker #define VAL 4 3889*35238bceSAndroid Build Coastguard Worker #if (VAL >= 4) 3890*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3891*35238bceSAndroid Build Coastguard Worker #else 3892*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3893*35238bceSAndroid Build Coastguard Worker #endif 3894*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3895*35238bceSAndroid Build Coastguard Worker } 3896*35238bceSAndroid Build Coastguard Worker "" 3897*35238bceSAndroid Build Coastguard Worker end 3898*35238bceSAndroid Build Coastguard Worker 3899*35238bceSAndroid Build Coastguard Worker case parenthesis_ifelse_false 3900*35238bceSAndroid Build Coastguard Worker version 300 es 3901*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3902*35238bceSAndroid Build Coastguard Worker both "" 3903*35238bceSAndroid Build Coastguard Worker #version 300 es 3904*35238bceSAndroid Build Coastguard Worker precision mediump float; 3905*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3906*35238bceSAndroid Build Coastguard Worker void main() 3907*35238bceSAndroid Build Coastguard Worker { 3908*35238bceSAndroid Build Coastguard Worker #define VAL 4 3909*35238bceSAndroid Build Coastguard Worker #if (VAL > 4) 3910*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3911*35238bceSAndroid Build Coastguard Worker #else 3912*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3913*35238bceSAndroid Build Coastguard Worker #endif 3914*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3915*35238bceSAndroid Build Coastguard Worker } 3916*35238bceSAndroid Build Coastguard Worker "" 3917*35238bceSAndroid Build Coastguard Worker end 3918*35238bceSAndroid Build Coastguard Worker 3919*35238bceSAndroid Build Coastguard Worker case eval_basic_0 3920*35238bceSAndroid Build Coastguard Worker version 300 es 3921*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3922*35238bceSAndroid Build Coastguard Worker both "" 3923*35238bceSAndroid Build Coastguard Worker #version 300 es 3924*35238bceSAndroid Build Coastguard Worker precision mediump float; 3925*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3926*35238bceSAndroid Build Coastguard Worker void main() 3927*35238bceSAndroid Build Coastguard Worker { 3928*35238bceSAndroid Build Coastguard Worker #if -4 + 5 == 1 3929*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3930*35238bceSAndroid Build Coastguard Worker #else 3931*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3932*35238bceSAndroid Build Coastguard Worker #endif 3933*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3934*35238bceSAndroid Build Coastguard Worker } 3935*35238bceSAndroid Build Coastguard Worker "" 3936*35238bceSAndroid Build Coastguard Worker end 3937*35238bceSAndroid Build Coastguard Worker 3938*35238bceSAndroid Build Coastguard Worker case eval_basic_1 3939*35238bceSAndroid Build Coastguard Worker version 300 es 3940*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3941*35238bceSAndroid Build Coastguard Worker both "" 3942*35238bceSAndroid Build Coastguard Worker #version 300 es 3943*35238bceSAndroid Build Coastguard Worker precision mediump float; 3944*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3945*35238bceSAndroid Build Coastguard Worker void main() 3946*35238bceSAndroid Build Coastguard Worker { 3947*35238bceSAndroid Build Coastguard Worker #if (2 * 2) - 3 >= 0 3948*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3949*35238bceSAndroid Build Coastguard Worker #else 3950*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3951*35238bceSAndroid Build Coastguard Worker #endif 3952*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3953*35238bceSAndroid Build Coastguard Worker } 3954*35238bceSAndroid Build Coastguard Worker "" 3955*35238bceSAndroid Build Coastguard Worker end 3956*35238bceSAndroid Build Coastguard Worker 3957*35238bceSAndroid Build Coastguard Worker case eval_simple_precedence_0 3958*35238bceSAndroid Build Coastguard Worker version 300 es 3959*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3960*35238bceSAndroid Build Coastguard Worker both "" 3961*35238bceSAndroid Build Coastguard Worker #version 300 es 3962*35238bceSAndroid Build Coastguard Worker precision mediump float; 3963*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3964*35238bceSAndroid Build Coastguard Worker void main() 3965*35238bceSAndroid Build Coastguard Worker { 3966*35238bceSAndroid Build Coastguard Worker #if 2 * 3 - 3 == 3 3967*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3968*35238bceSAndroid Build Coastguard Worker #else 3969*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3970*35238bceSAndroid Build Coastguard Worker #endif 3971*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3972*35238bceSAndroid Build Coastguard Worker } 3973*35238bceSAndroid Build Coastguard Worker "" 3974*35238bceSAndroid Build Coastguard Worker end 3975*35238bceSAndroid Build Coastguard Worker 3976*35238bceSAndroid Build Coastguard Worker case eval_simple_precedence_1 3977*35238bceSAndroid Build Coastguard Worker version 300 es 3978*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3979*35238bceSAndroid Build Coastguard Worker both "" 3980*35238bceSAndroid Build Coastguard Worker #version 300 es 3981*35238bceSAndroid Build Coastguard Worker precision mediump float; 3982*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 3983*35238bceSAndroid Build Coastguard Worker void main() 3984*35238bceSAndroid Build Coastguard Worker { 3985*35238bceSAndroid Build Coastguard Worker #if 2 - 2 / 2 == 1 3986*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 3987*35238bceSAndroid Build Coastguard Worker #else 3988*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 3989*35238bceSAndroid Build Coastguard Worker #endif 3990*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 3991*35238bceSAndroid Build Coastguard Worker } 3992*35238bceSAndroid Build Coastguard Worker "" 3993*35238bceSAndroid Build Coastguard Worker end 3994*35238bceSAndroid Build Coastguard Worker 3995*35238bceSAndroid Build Coastguard Worker case defined_1 3996*35238bceSAndroid Build Coastguard Worker version 300 es 3997*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 3998*35238bceSAndroid Build Coastguard Worker both "" 3999*35238bceSAndroid Build Coastguard Worker #version 300 es 4000*35238bceSAndroid Build Coastguard Worker precision mediump float; 4001*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4002*35238bceSAndroid Build Coastguard Worker #define X 0 4003*35238bceSAndroid Build Coastguard Worker void main() 4004*35238bceSAndroid Build Coastguard Worker { 4005*35238bceSAndroid Build Coastguard Worker #if defined(X) 4006*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 4007*35238bceSAndroid Build Coastguard Worker #else 4008*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 4009*35238bceSAndroid Build Coastguard Worker #endif 4010*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4011*35238bceSAndroid Build Coastguard Worker } 4012*35238bceSAndroid Build Coastguard Worker "" 4013*35238bceSAndroid Build Coastguard Worker end 4014*35238bceSAndroid Build Coastguard Worker 4015*35238bceSAndroid Build Coastguard Worker case defined_2 4016*35238bceSAndroid Build Coastguard Worker version 300 es 4017*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4018*35238bceSAndroid Build Coastguard Worker both "" 4019*35238bceSAndroid Build Coastguard Worker #version 300 es 4020*35238bceSAndroid Build Coastguard Worker precision mediump float; 4021*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4022*35238bceSAndroid Build Coastguard Worker #define X 0 4023*35238bceSAndroid Build Coastguard Worker #define Y 1 4024*35238bceSAndroid Build Coastguard Worker void main() 4025*35238bceSAndroid Build Coastguard Worker { 4026*35238bceSAndroid Build Coastguard Worker #if defined(X) == Y 4027*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 4028*35238bceSAndroid Build Coastguard Worker #else 4029*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 4030*35238bceSAndroid Build Coastguard Worker #endif 4031*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4032*35238bceSAndroid Build Coastguard Worker } 4033*35238bceSAndroid Build Coastguard Worker "" 4034*35238bceSAndroid Build Coastguard Worker end 4035*35238bceSAndroid Build Coastguard Worker 4036*35238bceSAndroid Build Coastguard Worker case defined_3 4037*35238bceSAndroid Build Coastguard Worker version 300 es 4038*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4039*35238bceSAndroid Build Coastguard Worker both "" 4040*35238bceSAndroid Build Coastguard Worker #version 300 es 4041*35238bceSAndroid Build Coastguard Worker precision mediump float; 4042*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4043*35238bceSAndroid Build Coastguard Worker #define X 0 4044*35238bceSAndroid Build Coastguard Worker #define Y 1 4045*35238bceSAndroid Build Coastguard Worker void main() 4046*35238bceSAndroid Build Coastguard Worker { 4047*35238bceSAndroid Build Coastguard Worker #if defined(X) && defined(Y) 4048*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 4049*35238bceSAndroid Build Coastguard Worker #else 4050*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 4051*35238bceSAndroid Build Coastguard Worker #endif 4052*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4053*35238bceSAndroid Build Coastguard Worker } 4054*35238bceSAndroid Build Coastguard Worker "" 4055*35238bceSAndroid Build Coastguard Worker end 4056*35238bceSAndroid Build Coastguard Worker 4057*35238bceSAndroid Build Coastguard Worker case defined_4 4058*35238bceSAndroid Build Coastguard Worker version 300 es 4059*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4060*35238bceSAndroid Build Coastguard Worker both "" 4061*35238bceSAndroid Build Coastguard Worker #version 300 es 4062*35238bceSAndroid Build Coastguard Worker precision mediump float; 4063*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4064*35238bceSAndroid Build Coastguard Worker #define X 0 4065*35238bceSAndroid Build Coastguard Worker #define Y 1 4066*35238bceSAndroid Build Coastguard Worker #undef X 4067*35238bceSAndroid Build Coastguard Worker void main() 4068*35238bceSAndroid Build Coastguard Worker { 4069*35238bceSAndroid Build Coastguard Worker #if defined(X) && defined(Y) 4070*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 4071*35238bceSAndroid Build Coastguard Worker #else 4072*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 4073*35238bceSAndroid Build Coastguard Worker #endif 4074*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4075*35238bceSAndroid Build Coastguard Worker } 4076*35238bceSAndroid Build Coastguard Worker "" 4077*35238bceSAndroid Build Coastguard Worker end 4078*35238bceSAndroid Build Coastguard Worker 4079*35238bceSAndroid Build Coastguard Worker case defined_5 4080*35238bceSAndroid Build Coastguard Worker version 300 es 4081*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4082*35238bceSAndroid Build Coastguard Worker both "" 4083*35238bceSAndroid Build Coastguard Worker #version 300 es 4084*35238bceSAndroid Build Coastguard Worker precision mediump float; 4085*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4086*35238bceSAndroid Build Coastguard Worker #define X 0 4087*35238bceSAndroid Build Coastguard Worker #define Y 1 4088*35238bceSAndroid Build Coastguard Worker #undef X 4089*35238bceSAndroid Build Coastguard Worker void main() 4090*35238bceSAndroid Build Coastguard Worker { 4091*35238bceSAndroid Build Coastguard Worker #if defined(X) || defined(Y) 4092*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 4093*35238bceSAndroid Build Coastguard Worker #else 4094*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 4095*35238bceSAndroid Build Coastguard Worker #endif 4096*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4097*35238bceSAndroid Build Coastguard Worker } 4098*35238bceSAndroid Build Coastguard Worker "" 4099*35238bceSAndroid Build Coastguard Worker end 4100*35238bceSAndroid Build Coastguard Worker 4101*35238bceSAndroid Build Coastguard Worker case defined_6 4102*35238bceSAndroid Build Coastguard Worker version 300 es 4103*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4104*35238bceSAndroid Build Coastguard Worker both "" 4105*35238bceSAndroid Build Coastguard Worker #version 300 es 4106*35238bceSAndroid Build Coastguard Worker precision mediump float; 4107*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4108*35238bceSAndroid Build Coastguard Worker #define X 0 4109*35238bceSAndroid Build Coastguard Worker #define Y 1 4110*35238bceSAndroid Build Coastguard Worker #undef Y 4111*35238bceSAndroid Build Coastguard Worker void main() 4112*35238bceSAndroid Build Coastguard Worker { 4113*35238bceSAndroid Build Coastguard Worker #if defined(X) && (defined(Y) || (X == 0)) 4114*35238bceSAndroid Build Coastguard Worker out0 = 1.0; 4115*35238bceSAndroid Build Coastguard Worker #else 4116*35238bceSAndroid Build Coastguard Worker out0 = 0.0; 4117*35238bceSAndroid Build Coastguard Worker #endif 4118*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4119*35238bceSAndroid Build Coastguard Worker } 4120*35238bceSAndroid Build Coastguard Worker "" 4121*35238bceSAndroid Build Coastguard Worker end 4122*35238bceSAndroid Build Coastguard Worker 4123*35238bceSAndroid Build Coastguard Workerend # expressions 4124*35238bceSAndroid Build Coastguard Worker 4125*35238bceSAndroid Build Coastguard Workergroup invalid_expressions "Invalid Expression Tests" 4126*35238bceSAndroid Build Coastguard Worker 4127*35238bceSAndroid Build Coastguard Worker case invalid_unary_expr 4128*35238bceSAndroid Build Coastguard Worker version 300 es 4129*35238bceSAndroid Build Coastguard Worker expect compile_fail 4130*35238bceSAndroid Build Coastguard Worker both "" 4131*35238bceSAndroid Build Coastguard Worker #version 300 es 4132*35238bceSAndroid Build Coastguard Worker precision mediump float; 4133*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4134*35238bceSAndroid Build Coastguard Worker void main() 4135*35238bceSAndroid Build Coastguard Worker { 4136*35238bceSAndroid Build Coastguard Worker #if ! 4137*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4138*35238bceSAndroid Build Coastguard Worker } 4139*35238bceSAndroid Build Coastguard Worker "" 4140*35238bceSAndroid Build Coastguard Worker end 4141*35238bceSAndroid Build Coastguard Worker 4142*35238bceSAndroid Build Coastguard Worker case invalid_binary_expr 4143*35238bceSAndroid Build Coastguard Worker version 300 es 4144*35238bceSAndroid Build Coastguard Worker expect compile_fail 4145*35238bceSAndroid Build Coastguard Worker both "" 4146*35238bceSAndroid Build Coastguard Worker #version 300 es 4147*35238bceSAndroid Build Coastguard Worker precision mediump float; 4148*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4149*35238bceSAndroid Build Coastguard Worker void main() 4150*35238bceSAndroid Build Coastguard Worker { 4151*35238bceSAndroid Build Coastguard Worker #if 3+4+ 4152*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4153*35238bceSAndroid Build Coastguard Worker } 4154*35238bceSAndroid Build Coastguard Worker "" 4155*35238bceSAndroid Build Coastguard Worker end 4156*35238bceSAndroid Build Coastguard Worker 4157*35238bceSAndroid Build Coastguard Worker case missing_expr 4158*35238bceSAndroid Build Coastguard Worker version 300 es 4159*35238bceSAndroid Build Coastguard Worker expect compile_fail 4160*35238bceSAndroid Build Coastguard Worker both "" 4161*35238bceSAndroid Build Coastguard Worker #version 300 es 4162*35238bceSAndroid Build Coastguard Worker precision mediump float; 4163*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4164*35238bceSAndroid Build Coastguard Worker void main() 4165*35238bceSAndroid Build Coastguard Worker { 4166*35238bceSAndroid Build Coastguard Worker #if 4167*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4168*35238bceSAndroid Build Coastguard Worker } 4169*35238bceSAndroid Build Coastguard Worker "" 4170*35238bceSAndroid Build Coastguard Worker end 4171*35238bceSAndroid Build Coastguard Worker 4172*35238bceSAndroid Build Coastguard Worker case invalid_expr_1 4173*35238bceSAndroid Build Coastguard Worker version 300 es 4174*35238bceSAndroid Build Coastguard Worker expect compile_fail 4175*35238bceSAndroid Build Coastguard Worker both "" 4176*35238bceSAndroid Build Coastguard Worker #version 300 es 4177*35238bceSAndroid Build Coastguard Worker precision mediump float; 4178*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4179*35238bceSAndroid Build Coastguard Worker void main() 4180*35238bceSAndroid Build Coastguard Worker { 4181*35238bceSAndroid Build Coastguard Worker #if 4 4 4182*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4183*35238bceSAndroid Build Coastguard Worker } 4184*35238bceSAndroid Build Coastguard Worker "" 4185*35238bceSAndroid Build Coastguard Worker end 4186*35238bceSAndroid Build Coastguard Worker 4187*35238bceSAndroid Build Coastguard Worker case invalid_expr_2 4188*35238bceSAndroid Build Coastguard Worker version 300 es 4189*35238bceSAndroid Build Coastguard Worker expect compile_fail 4190*35238bceSAndroid Build Coastguard Worker both "" 4191*35238bceSAndroid Build Coastguard Worker #version 300 es 4192*35238bceSAndroid Build Coastguard Worker precision mediump float; 4193*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4194*35238bceSAndroid Build Coastguard Worker void main() 4195*35238bceSAndroid Build Coastguard Worker { 4196*35238bceSAndroid Build Coastguard Worker #if 4 * * 4 4197*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4198*35238bceSAndroid Build Coastguard Worker } 4199*35238bceSAndroid Build Coastguard Worker "" 4200*35238bceSAndroid Build Coastguard Worker end 4201*35238bceSAndroid Build Coastguard Worker 4202*35238bceSAndroid Build Coastguard Worker case invalid_expr_3 4203*35238bceSAndroid Build Coastguard Worker version 300 es 4204*35238bceSAndroid Build Coastguard Worker expect compile_fail 4205*35238bceSAndroid Build Coastguard Worker both "" 4206*35238bceSAndroid Build Coastguard Worker #version 300 es 4207*35238bceSAndroid Build Coastguard Worker precision mediump float; 4208*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4209*35238bceSAndroid Build Coastguard Worker void main() 4210*35238bceSAndroid Build Coastguard Worker { 4211*35238bceSAndroid Build Coastguard Worker #if (4)(4) 4212*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4213*35238bceSAndroid Build Coastguard Worker } 4214*35238bceSAndroid Build Coastguard Worker "" 4215*35238bceSAndroid Build Coastguard Worker end 4216*35238bceSAndroid Build Coastguard Worker 4217*35238bceSAndroid Build Coastguard Worker case unopened_parenthesis 4218*35238bceSAndroid Build Coastguard Worker version 300 es 4219*35238bceSAndroid Build Coastguard Worker expect compile_fail 4220*35238bceSAndroid Build Coastguard Worker both "" 4221*35238bceSAndroid Build Coastguard Worker #version 300 es 4222*35238bceSAndroid Build Coastguard Worker precision mediump float; 4223*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4224*35238bceSAndroid Build Coastguard Worker void main() 4225*35238bceSAndroid Build Coastguard Worker { 4226*35238bceSAndroid Build Coastguard Worker #if 4) 4227*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4228*35238bceSAndroid Build Coastguard Worker } 4229*35238bceSAndroid Build Coastguard Worker "" 4230*35238bceSAndroid Build Coastguard Worker end 4231*35238bceSAndroid Build Coastguard Worker 4232*35238bceSAndroid Build Coastguard Worker case unclosed_parenthesis 4233*35238bceSAndroid Build Coastguard Worker version 300 es 4234*35238bceSAndroid Build Coastguard Worker expect compile_fail 4235*35238bceSAndroid Build Coastguard Worker both "" 4236*35238bceSAndroid Build Coastguard Worker #version 300 es 4237*35238bceSAndroid Build Coastguard Worker precision mediump float; 4238*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4239*35238bceSAndroid Build Coastguard Worker void main() 4240*35238bceSAndroid Build Coastguard Worker { 4241*35238bceSAndroid Build Coastguard Worker #if ((4 + 7) 4242*35238bceSAndroid Build Coastguard Worker ${POSITION_FRAG_COLOR} = vec4(1.0); 4243*35238bceSAndroid Build Coastguard Worker } 4244*35238bceSAndroid Build Coastguard Worker "" 4245*35238bceSAndroid Build Coastguard Worker end 4246*35238bceSAndroid Build Coastguard Worker 4247*35238bceSAndroid Build Coastguard Workerend # invalid_expressions 4248*35238bceSAndroid Build Coastguard Worker 4249*35238bceSAndroid Build Coastguard Workergroup operator_precedence "Operator precedence" 4250*35238bceSAndroid Build Coastguard Worker 4251*35238bceSAndroid Build Coastguard Worker 4252*35238bceSAndroid Build Coastguard Worker case modulo_vs_not 4253*35238bceSAndroid Build Coastguard Worker version 300 es 4254*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4255*35238bceSAndroid Build Coastguard Worker both "" 4256*35238bceSAndroid Build Coastguard Worker #version 300 es 4257*35238bceSAndroid Build Coastguard Worker #if ( 8 % ! 0 ) == 0 4258*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4259*35238bceSAndroid Build Coastguard Worker #else 4260*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4261*35238bceSAndroid Build Coastguard Worker #endif 4262*35238bceSAndroid Build Coastguard Worker 4263*35238bceSAndroid Build Coastguard Worker precision mediump float; 4264*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4265*35238bceSAndroid Build Coastguard Worker void main() 4266*35238bceSAndroid Build Coastguard Worker { 4267*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4268*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4269*35238bceSAndroid Build Coastguard Worker } 4270*35238bceSAndroid Build Coastguard Worker "" 4271*35238bceSAndroid Build Coastguard Worker end 4272*35238bceSAndroid Build Coastguard Worker 4273*35238bceSAndroid Build Coastguard Worker case div_vs_not 4274*35238bceSAndroid Build Coastguard Worker version 300 es 4275*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4276*35238bceSAndroid Build Coastguard Worker both "" 4277*35238bceSAndroid Build Coastguard Worker #version 300 es 4278*35238bceSAndroid Build Coastguard Worker #if ( 8 / ! 0 ) == 8 4279*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4280*35238bceSAndroid Build Coastguard Worker #else 4281*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4282*35238bceSAndroid Build Coastguard Worker #endif 4283*35238bceSAndroid Build Coastguard Worker 4284*35238bceSAndroid Build Coastguard Worker precision mediump float; 4285*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4286*35238bceSAndroid Build Coastguard Worker void main() 4287*35238bceSAndroid Build Coastguard Worker { 4288*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4289*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4290*35238bceSAndroid Build Coastguard Worker } 4291*35238bceSAndroid Build Coastguard Worker "" 4292*35238bceSAndroid Build Coastguard Worker end 4293*35238bceSAndroid Build Coastguard Worker 4294*35238bceSAndroid Build Coastguard Worker case mul_vs_not 4295*35238bceSAndroid Build Coastguard Worker version 300 es 4296*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4297*35238bceSAndroid Build Coastguard Worker both "" 4298*35238bceSAndroid Build Coastguard Worker #version 300 es 4299*35238bceSAndroid Build Coastguard Worker #if ( 8 * ! 0 ) == 8 4300*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4301*35238bceSAndroid Build Coastguard Worker #else 4302*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4303*35238bceSAndroid Build Coastguard Worker #endif 4304*35238bceSAndroid Build Coastguard Worker 4305*35238bceSAndroid Build Coastguard Worker precision mediump float; 4306*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4307*35238bceSAndroid Build Coastguard Worker void main() 4308*35238bceSAndroid Build Coastguard Worker { 4309*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4310*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4311*35238bceSAndroid Build Coastguard Worker } 4312*35238bceSAndroid Build Coastguard Worker "" 4313*35238bceSAndroid Build Coastguard Worker end 4314*35238bceSAndroid Build Coastguard Worker 4315*35238bceSAndroid Build Coastguard Worker case modulo_vs_bit_invert 4316*35238bceSAndroid Build Coastguard Worker version 300 es 4317*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4318*35238bceSAndroid Build Coastguard Worker both "" 4319*35238bceSAndroid Build Coastguard Worker #version 300 es 4320*35238bceSAndroid Build Coastguard Worker #if ( 8 % ~ 4 ) == 3 4321*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4322*35238bceSAndroid Build Coastguard Worker #else 4323*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4324*35238bceSAndroid Build Coastguard Worker #endif 4325*35238bceSAndroid Build Coastguard Worker 4326*35238bceSAndroid Build Coastguard Worker precision mediump float; 4327*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4328*35238bceSAndroid Build Coastguard Worker void main() 4329*35238bceSAndroid Build Coastguard Worker { 4330*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4331*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4332*35238bceSAndroid Build Coastguard Worker } 4333*35238bceSAndroid Build Coastguard Worker "" 4334*35238bceSAndroid Build Coastguard Worker end 4335*35238bceSAndroid Build Coastguard Worker 4336*35238bceSAndroid Build Coastguard Worker case modulo_vs_minus 4337*35238bceSAndroid Build Coastguard Worker version 300 es 4338*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4339*35238bceSAndroid Build Coastguard Worker both "" 4340*35238bceSAndroid Build Coastguard Worker #version 300 es 4341*35238bceSAndroid Build Coastguard Worker #if ( 8 % - 2 ) == 0 4342*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4343*35238bceSAndroid Build Coastguard Worker #else 4344*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4345*35238bceSAndroid Build Coastguard Worker #endif 4346*35238bceSAndroid Build Coastguard Worker 4347*35238bceSAndroid Build Coastguard Worker precision mediump float; 4348*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4349*35238bceSAndroid Build Coastguard Worker void main() 4350*35238bceSAndroid Build Coastguard Worker { 4351*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4352*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4353*35238bceSAndroid Build Coastguard Worker } 4354*35238bceSAndroid Build Coastguard Worker "" 4355*35238bceSAndroid Build Coastguard Worker end 4356*35238bceSAndroid Build Coastguard Worker 4357*35238bceSAndroid Build Coastguard Worker case modulo_vs_plus 4358*35238bceSAndroid Build Coastguard Worker version 300 es 4359*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4360*35238bceSAndroid Build Coastguard Worker both "" 4361*35238bceSAndroid Build Coastguard Worker #version 300 es 4362*35238bceSAndroid Build Coastguard Worker #if ( 8 % + 2 ) == 0 4363*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4364*35238bceSAndroid Build Coastguard Worker #else 4365*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4366*35238bceSAndroid Build Coastguard Worker #endif 4367*35238bceSAndroid Build Coastguard Worker 4368*35238bceSAndroid Build Coastguard Worker precision mediump float; 4369*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4370*35238bceSAndroid Build Coastguard Worker void main() 4371*35238bceSAndroid Build Coastguard Worker { 4372*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4373*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4374*35238bceSAndroid Build Coastguard Worker } 4375*35238bceSAndroid Build Coastguard Worker "" 4376*35238bceSAndroid Build Coastguard Worker end 4377*35238bceSAndroid Build Coastguard Worker 4378*35238bceSAndroid Build Coastguard Worker case div_vs_bit_invert 4379*35238bceSAndroid Build Coastguard Worker version 300 es 4380*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4381*35238bceSAndroid Build Coastguard Worker both "" 4382*35238bceSAndroid Build Coastguard Worker #version 300 es 4383*35238bceSAndroid Build Coastguard Worker #if ( 8 / ~ 2 ) == -2 4384*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4385*35238bceSAndroid Build Coastguard Worker #else 4386*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4387*35238bceSAndroid Build Coastguard Worker #endif 4388*35238bceSAndroid Build Coastguard Worker 4389*35238bceSAndroid Build Coastguard Worker precision mediump float; 4390*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4391*35238bceSAndroid Build Coastguard Worker void main() 4392*35238bceSAndroid Build Coastguard Worker { 4393*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4394*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4395*35238bceSAndroid Build Coastguard Worker } 4396*35238bceSAndroid Build Coastguard Worker "" 4397*35238bceSAndroid Build Coastguard Worker end 4398*35238bceSAndroid Build Coastguard Worker 4399*35238bceSAndroid Build Coastguard Worker case div_vs_minus 4400*35238bceSAndroid Build Coastguard Worker version 300 es 4401*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4402*35238bceSAndroid Build Coastguard Worker both "" 4403*35238bceSAndroid Build Coastguard Worker #version 300 es 4404*35238bceSAndroid Build Coastguard Worker #if ( 8 / - 2 ) == -4 4405*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4406*35238bceSAndroid Build Coastguard Worker #else 4407*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4408*35238bceSAndroid Build Coastguard Worker #endif 4409*35238bceSAndroid Build Coastguard Worker 4410*35238bceSAndroid Build Coastguard Worker precision mediump float; 4411*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4412*35238bceSAndroid Build Coastguard Worker void main() 4413*35238bceSAndroid Build Coastguard Worker { 4414*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4415*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4416*35238bceSAndroid Build Coastguard Worker } 4417*35238bceSAndroid Build Coastguard Worker "" 4418*35238bceSAndroid Build Coastguard Worker end 4419*35238bceSAndroid Build Coastguard Worker 4420*35238bceSAndroid Build Coastguard Worker case div_vs_plus 4421*35238bceSAndroid Build Coastguard Worker version 300 es 4422*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4423*35238bceSAndroid Build Coastguard Worker both "" 4424*35238bceSAndroid Build Coastguard Worker #version 300 es 4425*35238bceSAndroid Build Coastguard Worker #if ( 8 / + 2 ) == 4 4426*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4427*35238bceSAndroid Build Coastguard Worker #else 4428*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4429*35238bceSAndroid Build Coastguard Worker #endif 4430*35238bceSAndroid Build Coastguard Worker 4431*35238bceSAndroid Build Coastguard Worker precision mediump float; 4432*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4433*35238bceSAndroid Build Coastguard Worker void main() 4434*35238bceSAndroid Build Coastguard Worker { 4435*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4436*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4437*35238bceSAndroid Build Coastguard Worker } 4438*35238bceSAndroid Build Coastguard Worker "" 4439*35238bceSAndroid Build Coastguard Worker end 4440*35238bceSAndroid Build Coastguard Worker 4441*35238bceSAndroid Build Coastguard Worker case mul_vs_bit_invert 4442*35238bceSAndroid Build Coastguard Worker version 300 es 4443*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4444*35238bceSAndroid Build Coastguard Worker both "" 4445*35238bceSAndroid Build Coastguard Worker #version 300 es 4446*35238bceSAndroid Build Coastguard Worker #if ( 8 * ~ 2 ) == -24 4447*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4448*35238bceSAndroid Build Coastguard Worker #else 4449*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4450*35238bceSAndroid Build Coastguard Worker #endif 4451*35238bceSAndroid Build Coastguard Worker 4452*35238bceSAndroid Build Coastguard Worker precision mediump float; 4453*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4454*35238bceSAndroid Build Coastguard Worker void main() 4455*35238bceSAndroid Build Coastguard Worker { 4456*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4457*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4458*35238bceSAndroid Build Coastguard Worker } 4459*35238bceSAndroid Build Coastguard Worker "" 4460*35238bceSAndroid Build Coastguard Worker end 4461*35238bceSAndroid Build Coastguard Worker 4462*35238bceSAndroid Build Coastguard Worker case mul_vs_minus 4463*35238bceSAndroid Build Coastguard Worker version 300 es 4464*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4465*35238bceSAndroid Build Coastguard Worker both "" 4466*35238bceSAndroid Build Coastguard Worker #version 300 es 4467*35238bceSAndroid Build Coastguard Worker #if ( 8 * - 2 ) == -16 4468*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4469*35238bceSAndroid Build Coastguard Worker #else 4470*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4471*35238bceSAndroid Build Coastguard Worker #endif 4472*35238bceSAndroid Build Coastguard Worker 4473*35238bceSAndroid Build Coastguard Worker precision mediump float; 4474*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4475*35238bceSAndroid Build Coastguard Worker void main() 4476*35238bceSAndroid Build Coastguard Worker { 4477*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4478*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4479*35238bceSAndroid Build Coastguard Worker } 4480*35238bceSAndroid Build Coastguard Worker "" 4481*35238bceSAndroid Build Coastguard Worker end 4482*35238bceSAndroid Build Coastguard Worker 4483*35238bceSAndroid Build Coastguard Worker case mul_vs_plus 4484*35238bceSAndroid Build Coastguard Worker version 300 es 4485*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4486*35238bceSAndroid Build Coastguard Worker both "" 4487*35238bceSAndroid Build Coastguard Worker #version 300 es 4488*35238bceSAndroid Build Coastguard Worker #if ( 8 * + 2 ) == 16 4489*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4490*35238bceSAndroid Build Coastguard Worker #else 4491*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4492*35238bceSAndroid Build Coastguard Worker #endif 4493*35238bceSAndroid Build Coastguard Worker 4494*35238bceSAndroid Build Coastguard Worker precision mediump float; 4495*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4496*35238bceSAndroid Build Coastguard Worker void main() 4497*35238bceSAndroid Build Coastguard Worker { 4498*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4499*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4500*35238bceSAndroid Build Coastguard Worker } 4501*35238bceSAndroid Build Coastguard Worker "" 4502*35238bceSAndroid Build Coastguard Worker end 4503*35238bceSAndroid Build Coastguard Worker 4504*35238bceSAndroid Build Coastguard Worker case sub_vs_modulo 4505*35238bceSAndroid Build Coastguard Worker version 300 es 4506*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4507*35238bceSAndroid Build Coastguard Worker both "" 4508*35238bceSAndroid Build Coastguard Worker #version 300 es 4509*35238bceSAndroid Build Coastguard Worker #if ( 8 - 3 % 2 ) == 7 4510*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4511*35238bceSAndroid Build Coastguard Worker #else 4512*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4513*35238bceSAndroid Build Coastguard Worker #endif 4514*35238bceSAndroid Build Coastguard Worker 4515*35238bceSAndroid Build Coastguard Worker precision mediump float; 4516*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4517*35238bceSAndroid Build Coastguard Worker void main() 4518*35238bceSAndroid Build Coastguard Worker { 4519*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4520*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4521*35238bceSAndroid Build Coastguard Worker } 4522*35238bceSAndroid Build Coastguard Worker "" 4523*35238bceSAndroid Build Coastguard Worker end 4524*35238bceSAndroid Build Coastguard Worker 4525*35238bceSAndroid Build Coastguard Worker case sub_vs_div 4526*35238bceSAndroid Build Coastguard Worker version 300 es 4527*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4528*35238bceSAndroid Build Coastguard Worker both "" 4529*35238bceSAndroid Build Coastguard Worker #version 300 es 4530*35238bceSAndroid Build Coastguard Worker #if ( 8 - 3 / 2 ) == 7 4531*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4532*35238bceSAndroid Build Coastguard Worker #else 4533*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4534*35238bceSAndroid Build Coastguard Worker #endif 4535*35238bceSAndroid Build Coastguard Worker 4536*35238bceSAndroid Build Coastguard Worker precision mediump float; 4537*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4538*35238bceSAndroid Build Coastguard Worker void main() 4539*35238bceSAndroid Build Coastguard Worker { 4540*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4541*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4542*35238bceSAndroid Build Coastguard Worker } 4543*35238bceSAndroid Build Coastguard Worker "" 4544*35238bceSAndroid Build Coastguard Worker end 4545*35238bceSAndroid Build Coastguard Worker 4546*35238bceSAndroid Build Coastguard Worker case sub_vs_mul 4547*35238bceSAndroid Build Coastguard Worker version 300 es 4548*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4549*35238bceSAndroid Build Coastguard Worker both "" 4550*35238bceSAndroid Build Coastguard Worker #version 300 es 4551*35238bceSAndroid Build Coastguard Worker #if ( 8 - 3 * 2 ) == 2 4552*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4553*35238bceSAndroid Build Coastguard Worker #else 4554*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4555*35238bceSAndroid Build Coastguard Worker #endif 4556*35238bceSAndroid Build Coastguard Worker 4557*35238bceSAndroid Build Coastguard Worker precision mediump float; 4558*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4559*35238bceSAndroid Build Coastguard Worker void main() 4560*35238bceSAndroid Build Coastguard Worker { 4561*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4562*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4563*35238bceSAndroid Build Coastguard Worker } 4564*35238bceSAndroid Build Coastguard Worker "" 4565*35238bceSAndroid Build Coastguard Worker end 4566*35238bceSAndroid Build Coastguard Worker 4567*35238bceSAndroid Build Coastguard Worker case add_vs_modulo 4568*35238bceSAndroid Build Coastguard Worker version 300 es 4569*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4570*35238bceSAndroid Build Coastguard Worker both "" 4571*35238bceSAndroid Build Coastguard Worker #version 300 es 4572*35238bceSAndroid Build Coastguard Worker #if ( 8 + 3 % 2 ) == 9 4573*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4574*35238bceSAndroid Build Coastguard Worker #else 4575*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4576*35238bceSAndroid Build Coastguard Worker #endif 4577*35238bceSAndroid Build Coastguard Worker 4578*35238bceSAndroid Build Coastguard Worker precision mediump float; 4579*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4580*35238bceSAndroid Build Coastguard Worker void main() 4581*35238bceSAndroid Build Coastguard Worker { 4582*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4583*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4584*35238bceSAndroid Build Coastguard Worker } 4585*35238bceSAndroid Build Coastguard Worker "" 4586*35238bceSAndroid Build Coastguard Worker end 4587*35238bceSAndroid Build Coastguard Worker 4588*35238bceSAndroid Build Coastguard Worker case add_vs_div 4589*35238bceSAndroid Build Coastguard Worker version 300 es 4590*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4591*35238bceSAndroid Build Coastguard Worker both "" 4592*35238bceSAndroid Build Coastguard Worker #version 300 es 4593*35238bceSAndroid Build Coastguard Worker #if ( 8 + 3 / 2 ) == 9 4594*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4595*35238bceSAndroid Build Coastguard Worker #else 4596*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4597*35238bceSAndroid Build Coastguard Worker #endif 4598*35238bceSAndroid Build Coastguard Worker 4599*35238bceSAndroid Build Coastguard Worker precision mediump float; 4600*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4601*35238bceSAndroid Build Coastguard Worker void main() 4602*35238bceSAndroid Build Coastguard Worker { 4603*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4604*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4605*35238bceSAndroid Build Coastguard Worker } 4606*35238bceSAndroid Build Coastguard Worker "" 4607*35238bceSAndroid Build Coastguard Worker end 4608*35238bceSAndroid Build Coastguard Worker 4609*35238bceSAndroid Build Coastguard Worker case add_vs_mul 4610*35238bceSAndroid Build Coastguard Worker version 300 es 4611*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4612*35238bceSAndroid Build Coastguard Worker both "" 4613*35238bceSAndroid Build Coastguard Worker #version 300 es 4614*35238bceSAndroid Build Coastguard Worker #if ( 8 + 3 * 2 ) == 14 4615*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4616*35238bceSAndroid Build Coastguard Worker #else 4617*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4618*35238bceSAndroid Build Coastguard Worker #endif 4619*35238bceSAndroid Build Coastguard Worker 4620*35238bceSAndroid Build Coastguard Worker precision mediump float; 4621*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4622*35238bceSAndroid Build Coastguard Worker void main() 4623*35238bceSAndroid Build Coastguard Worker { 4624*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4625*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4626*35238bceSAndroid Build Coastguard Worker } 4627*35238bceSAndroid Build Coastguard Worker "" 4628*35238bceSAndroid Build Coastguard Worker end 4629*35238bceSAndroid Build Coastguard Worker 4630*35238bceSAndroid Build Coastguard Worker case rshift_vs_sub 4631*35238bceSAndroid Build Coastguard Worker version 300 es 4632*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4633*35238bceSAndroid Build Coastguard Worker both "" 4634*35238bceSAndroid Build Coastguard Worker #version 300 es 4635*35238bceSAndroid Build Coastguard Worker #if ( 8 >> 3 - 2 ) == 4 4636*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4637*35238bceSAndroid Build Coastguard Worker #else 4638*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4639*35238bceSAndroid Build Coastguard Worker #endif 4640*35238bceSAndroid Build Coastguard Worker 4641*35238bceSAndroid Build Coastguard Worker precision mediump float; 4642*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4643*35238bceSAndroid Build Coastguard Worker void main() 4644*35238bceSAndroid Build Coastguard Worker { 4645*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4646*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4647*35238bceSAndroid Build Coastguard Worker } 4648*35238bceSAndroid Build Coastguard Worker "" 4649*35238bceSAndroid Build Coastguard Worker end 4650*35238bceSAndroid Build Coastguard Worker 4651*35238bceSAndroid Build Coastguard Worker case rshift_vs_add 4652*35238bceSAndroid Build Coastguard Worker version 300 es 4653*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4654*35238bceSAndroid Build Coastguard Worker both "" 4655*35238bceSAndroid Build Coastguard Worker #version 300 es 4656*35238bceSAndroid Build Coastguard Worker #if ( 8 >> 3 + 2 ) == 0 4657*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4658*35238bceSAndroid Build Coastguard Worker #else 4659*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4660*35238bceSAndroid Build Coastguard Worker #endif 4661*35238bceSAndroid Build Coastguard Worker 4662*35238bceSAndroid Build Coastguard Worker precision mediump float; 4663*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4664*35238bceSAndroid Build Coastguard Worker void main() 4665*35238bceSAndroid Build Coastguard Worker { 4666*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4667*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4668*35238bceSAndroid Build Coastguard Worker } 4669*35238bceSAndroid Build Coastguard Worker "" 4670*35238bceSAndroid Build Coastguard Worker end 4671*35238bceSAndroid Build Coastguard Worker 4672*35238bceSAndroid Build Coastguard Worker case lshift_vs_sub 4673*35238bceSAndroid Build Coastguard Worker version 300 es 4674*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4675*35238bceSAndroid Build Coastguard Worker both "" 4676*35238bceSAndroid Build Coastguard Worker #version 300 es 4677*35238bceSAndroid Build Coastguard Worker #if ( 8 << 3 - 2 ) == 16 4678*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4679*35238bceSAndroid Build Coastguard Worker #else 4680*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4681*35238bceSAndroid Build Coastguard Worker #endif 4682*35238bceSAndroid Build Coastguard Worker 4683*35238bceSAndroid Build Coastguard Worker precision mediump float; 4684*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4685*35238bceSAndroid Build Coastguard Worker void main() 4686*35238bceSAndroid Build Coastguard Worker { 4687*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4688*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4689*35238bceSAndroid Build Coastguard Worker } 4690*35238bceSAndroid Build Coastguard Worker "" 4691*35238bceSAndroid Build Coastguard Worker end 4692*35238bceSAndroid Build Coastguard Worker 4693*35238bceSAndroid Build Coastguard Worker case lshift_vs_add 4694*35238bceSAndroid Build Coastguard Worker version 300 es 4695*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4696*35238bceSAndroid Build Coastguard Worker both "" 4697*35238bceSAndroid Build Coastguard Worker #version 300 es 4698*35238bceSAndroid Build Coastguard Worker #if ( 8 << 3 + 2 ) == 256 4699*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4700*35238bceSAndroid Build Coastguard Worker #else 4701*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4702*35238bceSAndroid Build Coastguard Worker #endif 4703*35238bceSAndroid Build Coastguard Worker 4704*35238bceSAndroid Build Coastguard Worker precision mediump float; 4705*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4706*35238bceSAndroid Build Coastguard Worker void main() 4707*35238bceSAndroid Build Coastguard Worker { 4708*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4709*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4710*35238bceSAndroid Build Coastguard Worker } 4711*35238bceSAndroid Build Coastguard Worker "" 4712*35238bceSAndroid Build Coastguard Worker end 4713*35238bceSAndroid Build Coastguard Worker 4714*35238bceSAndroid Build Coastguard Worker case greater_or_equal_vs_rshift 4715*35238bceSAndroid Build Coastguard Worker version 300 es 4716*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4717*35238bceSAndroid Build Coastguard Worker both "" 4718*35238bceSAndroid Build Coastguard Worker #version 300 es 4719*35238bceSAndroid Build Coastguard Worker #if ( 8 >= 3 >> 2 ) == 1 4720*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4721*35238bceSAndroid Build Coastguard Worker #else 4722*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4723*35238bceSAndroid Build Coastguard Worker #endif 4724*35238bceSAndroid Build Coastguard Worker 4725*35238bceSAndroid Build Coastguard Worker precision mediump float; 4726*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4727*35238bceSAndroid Build Coastguard Worker void main() 4728*35238bceSAndroid Build Coastguard Worker { 4729*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4730*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4731*35238bceSAndroid Build Coastguard Worker } 4732*35238bceSAndroid Build Coastguard Worker "" 4733*35238bceSAndroid Build Coastguard Worker end 4734*35238bceSAndroid Build Coastguard Worker 4735*35238bceSAndroid Build Coastguard Worker case greater_or_equal_vs_lshift 4736*35238bceSAndroid Build Coastguard Worker version 300 es 4737*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4738*35238bceSAndroid Build Coastguard Worker both "" 4739*35238bceSAndroid Build Coastguard Worker #version 300 es 4740*35238bceSAndroid Build Coastguard Worker #if ( 8 >= 3 << 2 ) == 0 4741*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4742*35238bceSAndroid Build Coastguard Worker #else 4743*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4744*35238bceSAndroid Build Coastguard Worker #endif 4745*35238bceSAndroid Build Coastguard Worker 4746*35238bceSAndroid Build Coastguard Worker precision mediump float; 4747*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4748*35238bceSAndroid Build Coastguard Worker void main() 4749*35238bceSAndroid Build Coastguard Worker { 4750*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4751*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4752*35238bceSAndroid Build Coastguard Worker } 4753*35238bceSAndroid Build Coastguard Worker "" 4754*35238bceSAndroid Build Coastguard Worker end 4755*35238bceSAndroid Build Coastguard Worker 4756*35238bceSAndroid Build Coastguard Worker case less_or_equal_vs_rshift 4757*35238bceSAndroid Build Coastguard Worker version 300 es 4758*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4759*35238bceSAndroid Build Coastguard Worker both "" 4760*35238bceSAndroid Build Coastguard Worker #version 300 es 4761*35238bceSAndroid Build Coastguard Worker #if ( 8 <= 3 >> 2 ) == 0 4762*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4763*35238bceSAndroid Build Coastguard Worker #else 4764*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4765*35238bceSAndroid Build Coastguard Worker #endif 4766*35238bceSAndroid Build Coastguard Worker 4767*35238bceSAndroid Build Coastguard Worker precision mediump float; 4768*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4769*35238bceSAndroid Build Coastguard Worker void main() 4770*35238bceSAndroid Build Coastguard Worker { 4771*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4772*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4773*35238bceSAndroid Build Coastguard Worker } 4774*35238bceSAndroid Build Coastguard Worker "" 4775*35238bceSAndroid Build Coastguard Worker end 4776*35238bceSAndroid Build Coastguard Worker 4777*35238bceSAndroid Build Coastguard Worker case less_or_equal_vs_lshift 4778*35238bceSAndroid Build Coastguard Worker version 300 es 4779*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4780*35238bceSAndroid Build Coastguard Worker both "" 4781*35238bceSAndroid Build Coastguard Worker #version 300 es 4782*35238bceSAndroid Build Coastguard Worker #if ( 8 <= 3 << 2 ) == 1 4783*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4784*35238bceSAndroid Build Coastguard Worker #else 4785*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4786*35238bceSAndroid Build Coastguard Worker #endif 4787*35238bceSAndroid Build Coastguard Worker 4788*35238bceSAndroid Build Coastguard Worker precision mediump float; 4789*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4790*35238bceSAndroid Build Coastguard Worker void main() 4791*35238bceSAndroid Build Coastguard Worker { 4792*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4793*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4794*35238bceSAndroid Build Coastguard Worker } 4795*35238bceSAndroid Build Coastguard Worker "" 4796*35238bceSAndroid Build Coastguard Worker end 4797*35238bceSAndroid Build Coastguard Worker 4798*35238bceSAndroid Build Coastguard Worker case greater_vs_rshift 4799*35238bceSAndroid Build Coastguard Worker version 300 es 4800*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4801*35238bceSAndroid Build Coastguard Worker both "" 4802*35238bceSAndroid Build Coastguard Worker #version 300 es 4803*35238bceSAndroid Build Coastguard Worker #if ( 8 > 3 >> 2 ) == 1 4804*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4805*35238bceSAndroid Build Coastguard Worker #else 4806*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4807*35238bceSAndroid Build Coastguard Worker #endif 4808*35238bceSAndroid Build Coastguard Worker 4809*35238bceSAndroid Build Coastguard Worker precision mediump float; 4810*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4811*35238bceSAndroid Build Coastguard Worker void main() 4812*35238bceSAndroid Build Coastguard Worker { 4813*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4814*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4815*35238bceSAndroid Build Coastguard Worker } 4816*35238bceSAndroid Build Coastguard Worker "" 4817*35238bceSAndroid Build Coastguard Worker end 4818*35238bceSAndroid Build Coastguard Worker 4819*35238bceSAndroid Build Coastguard Worker case greater_vs_lshift 4820*35238bceSAndroid Build Coastguard Worker version 300 es 4821*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4822*35238bceSAndroid Build Coastguard Worker both "" 4823*35238bceSAndroid Build Coastguard Worker #version 300 es 4824*35238bceSAndroid Build Coastguard Worker #if ( 8 > 3 << 2 ) == 0 4825*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4826*35238bceSAndroid Build Coastguard Worker #else 4827*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4828*35238bceSAndroid Build Coastguard Worker #endif 4829*35238bceSAndroid Build Coastguard Worker 4830*35238bceSAndroid Build Coastguard Worker precision mediump float; 4831*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4832*35238bceSAndroid Build Coastguard Worker void main() 4833*35238bceSAndroid Build Coastguard Worker { 4834*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4835*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4836*35238bceSAndroid Build Coastguard Worker } 4837*35238bceSAndroid Build Coastguard Worker "" 4838*35238bceSAndroid Build Coastguard Worker end 4839*35238bceSAndroid Build Coastguard Worker 4840*35238bceSAndroid Build Coastguard Worker case less_vs_rshift 4841*35238bceSAndroid Build Coastguard Worker version 300 es 4842*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4843*35238bceSAndroid Build Coastguard Worker both "" 4844*35238bceSAndroid Build Coastguard Worker #version 300 es 4845*35238bceSAndroid Build Coastguard Worker #if ( 8 < 3 >> 2 ) == 0 4846*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4847*35238bceSAndroid Build Coastguard Worker #else 4848*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4849*35238bceSAndroid Build Coastguard Worker #endif 4850*35238bceSAndroid Build Coastguard Worker 4851*35238bceSAndroid Build Coastguard Worker precision mediump float; 4852*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4853*35238bceSAndroid Build Coastguard Worker void main() 4854*35238bceSAndroid Build Coastguard Worker { 4855*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4856*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4857*35238bceSAndroid Build Coastguard Worker } 4858*35238bceSAndroid Build Coastguard Worker "" 4859*35238bceSAndroid Build Coastguard Worker end 4860*35238bceSAndroid Build Coastguard Worker 4861*35238bceSAndroid Build Coastguard Worker case less_vs_lshift 4862*35238bceSAndroid Build Coastguard Worker version 300 es 4863*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4864*35238bceSAndroid Build Coastguard Worker both "" 4865*35238bceSAndroid Build Coastguard Worker #version 300 es 4866*35238bceSAndroid Build Coastguard Worker #if ( 8 < 3 << 2 ) == 1 4867*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4868*35238bceSAndroid Build Coastguard Worker #else 4869*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4870*35238bceSAndroid Build Coastguard Worker #endif 4871*35238bceSAndroid Build Coastguard Worker 4872*35238bceSAndroid Build Coastguard Worker precision mediump float; 4873*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4874*35238bceSAndroid Build Coastguard Worker void main() 4875*35238bceSAndroid Build Coastguard Worker { 4876*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4877*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4878*35238bceSAndroid Build Coastguard Worker } 4879*35238bceSAndroid Build Coastguard Worker "" 4880*35238bceSAndroid Build Coastguard Worker end 4881*35238bceSAndroid Build Coastguard Worker 4882*35238bceSAndroid Build Coastguard Worker case not_equal_vs_greater_or_equal 4883*35238bceSAndroid Build Coastguard Worker version 300 es 4884*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4885*35238bceSAndroid Build Coastguard Worker both "" 4886*35238bceSAndroid Build Coastguard Worker #version 300 es 4887*35238bceSAndroid Build Coastguard Worker #if ( 8 != 3 >= 2 ) == 1 4888*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4889*35238bceSAndroid Build Coastguard Worker #else 4890*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4891*35238bceSAndroid Build Coastguard Worker #endif 4892*35238bceSAndroid Build Coastguard Worker 4893*35238bceSAndroid Build Coastguard Worker precision mediump float; 4894*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4895*35238bceSAndroid Build Coastguard Worker void main() 4896*35238bceSAndroid Build Coastguard Worker { 4897*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4898*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4899*35238bceSAndroid Build Coastguard Worker } 4900*35238bceSAndroid Build Coastguard Worker "" 4901*35238bceSAndroid Build Coastguard Worker end 4902*35238bceSAndroid Build Coastguard Worker 4903*35238bceSAndroid Build Coastguard Worker case not_equal_vs_less_or_equal 4904*35238bceSAndroid Build Coastguard Worker version 300 es 4905*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4906*35238bceSAndroid Build Coastguard Worker both "" 4907*35238bceSAndroid Build Coastguard Worker #version 300 es 4908*35238bceSAndroid Build Coastguard Worker #if ( 8 != 3 <= 2 ) == 1 4909*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4910*35238bceSAndroid Build Coastguard Worker #else 4911*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4912*35238bceSAndroid Build Coastguard Worker #endif 4913*35238bceSAndroid Build Coastguard Worker 4914*35238bceSAndroid Build Coastguard Worker precision mediump float; 4915*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4916*35238bceSAndroid Build Coastguard Worker void main() 4917*35238bceSAndroid Build Coastguard Worker { 4918*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4919*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4920*35238bceSAndroid Build Coastguard Worker } 4921*35238bceSAndroid Build Coastguard Worker "" 4922*35238bceSAndroid Build Coastguard Worker end 4923*35238bceSAndroid Build Coastguard Worker 4924*35238bceSAndroid Build Coastguard Worker case not_equal_vs_greater 4925*35238bceSAndroid Build Coastguard Worker version 300 es 4926*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4927*35238bceSAndroid Build Coastguard Worker both "" 4928*35238bceSAndroid Build Coastguard Worker #version 300 es 4929*35238bceSAndroid Build Coastguard Worker #if ( 8 != 3 > 2 ) == 1 4930*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4931*35238bceSAndroid Build Coastguard Worker #else 4932*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4933*35238bceSAndroid Build Coastguard Worker #endif 4934*35238bceSAndroid Build Coastguard Worker 4935*35238bceSAndroid Build Coastguard Worker precision mediump float; 4936*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4937*35238bceSAndroid Build Coastguard Worker void main() 4938*35238bceSAndroid Build Coastguard Worker { 4939*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4940*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4941*35238bceSAndroid Build Coastguard Worker } 4942*35238bceSAndroid Build Coastguard Worker "" 4943*35238bceSAndroid Build Coastguard Worker end 4944*35238bceSAndroid Build Coastguard Worker 4945*35238bceSAndroid Build Coastguard Worker case not_equal_vs_less 4946*35238bceSAndroid Build Coastguard Worker version 300 es 4947*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4948*35238bceSAndroid Build Coastguard Worker both "" 4949*35238bceSAndroid Build Coastguard Worker #version 300 es 4950*35238bceSAndroid Build Coastguard Worker #if ( 8 != 3 < 2 ) == 1 4951*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4952*35238bceSAndroid Build Coastguard Worker #else 4953*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4954*35238bceSAndroid Build Coastguard Worker #endif 4955*35238bceSAndroid Build Coastguard Worker 4956*35238bceSAndroid Build Coastguard Worker precision mediump float; 4957*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4958*35238bceSAndroid Build Coastguard Worker void main() 4959*35238bceSAndroid Build Coastguard Worker { 4960*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4961*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4962*35238bceSAndroid Build Coastguard Worker } 4963*35238bceSAndroid Build Coastguard Worker "" 4964*35238bceSAndroid Build Coastguard Worker end 4965*35238bceSAndroid Build Coastguard Worker 4966*35238bceSAndroid Build Coastguard Worker case equal_vs_greater_or_equal 4967*35238bceSAndroid Build Coastguard Worker version 300 es 4968*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4969*35238bceSAndroid Build Coastguard Worker both "" 4970*35238bceSAndroid Build Coastguard Worker #version 300 es 4971*35238bceSAndroid Build Coastguard Worker #if ( 8 == 3 >= 2 ) == 0 4972*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4973*35238bceSAndroid Build Coastguard Worker #else 4974*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4975*35238bceSAndroid Build Coastguard Worker #endif 4976*35238bceSAndroid Build Coastguard Worker 4977*35238bceSAndroid Build Coastguard Worker precision mediump float; 4978*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 4979*35238bceSAndroid Build Coastguard Worker void main() 4980*35238bceSAndroid Build Coastguard Worker { 4981*35238bceSAndroid Build Coastguard Worker out0 = VAL; 4982*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 4983*35238bceSAndroid Build Coastguard Worker } 4984*35238bceSAndroid Build Coastguard Worker "" 4985*35238bceSAndroid Build Coastguard Worker end 4986*35238bceSAndroid Build Coastguard Worker 4987*35238bceSAndroid Build Coastguard Worker case equal_vs_less_or_equal 4988*35238bceSAndroid Build Coastguard Worker version 300 es 4989*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 4990*35238bceSAndroid Build Coastguard Worker both "" 4991*35238bceSAndroid Build Coastguard Worker #version 300 es 4992*35238bceSAndroid Build Coastguard Worker #if ( 8 == 3 <= 2 ) == 0 4993*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 4994*35238bceSAndroid Build Coastguard Worker #else 4995*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 4996*35238bceSAndroid Build Coastguard Worker #endif 4997*35238bceSAndroid Build Coastguard Worker 4998*35238bceSAndroid Build Coastguard Worker precision mediump float; 4999*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5000*35238bceSAndroid Build Coastguard Worker void main() 5001*35238bceSAndroid Build Coastguard Worker { 5002*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5003*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5004*35238bceSAndroid Build Coastguard Worker } 5005*35238bceSAndroid Build Coastguard Worker "" 5006*35238bceSAndroid Build Coastguard Worker end 5007*35238bceSAndroid Build Coastguard Worker 5008*35238bceSAndroid Build Coastguard Worker case equal_vs_greater 5009*35238bceSAndroid Build Coastguard Worker version 300 es 5010*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5011*35238bceSAndroid Build Coastguard Worker both "" 5012*35238bceSAndroid Build Coastguard Worker #version 300 es 5013*35238bceSAndroid Build Coastguard Worker #if ( 8 == 3 > 2 ) == 0 5014*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5015*35238bceSAndroid Build Coastguard Worker #else 5016*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5017*35238bceSAndroid Build Coastguard Worker #endif 5018*35238bceSAndroid Build Coastguard Worker 5019*35238bceSAndroid Build Coastguard Worker precision mediump float; 5020*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5021*35238bceSAndroid Build Coastguard Worker void main() 5022*35238bceSAndroid Build Coastguard Worker { 5023*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5024*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5025*35238bceSAndroid Build Coastguard Worker } 5026*35238bceSAndroid Build Coastguard Worker "" 5027*35238bceSAndroid Build Coastguard Worker end 5028*35238bceSAndroid Build Coastguard Worker 5029*35238bceSAndroid Build Coastguard Worker case equal_vs_less 5030*35238bceSAndroid Build Coastguard Worker version 300 es 5031*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5032*35238bceSAndroid Build Coastguard Worker both "" 5033*35238bceSAndroid Build Coastguard Worker #version 300 es 5034*35238bceSAndroid Build Coastguard Worker #if ( 8 == 3 < 2 ) == 0 5035*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5036*35238bceSAndroid Build Coastguard Worker #else 5037*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5038*35238bceSAndroid Build Coastguard Worker #endif 5039*35238bceSAndroid Build Coastguard Worker 5040*35238bceSAndroid Build Coastguard Worker precision mediump float; 5041*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5042*35238bceSAndroid Build Coastguard Worker void main() 5043*35238bceSAndroid Build Coastguard Worker { 5044*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5045*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5046*35238bceSAndroid Build Coastguard Worker } 5047*35238bceSAndroid Build Coastguard Worker "" 5048*35238bceSAndroid Build Coastguard Worker end 5049*35238bceSAndroid Build Coastguard Worker 5050*35238bceSAndroid Build Coastguard Worker case bitwise_and_vs_not_equal 5051*35238bceSAndroid Build Coastguard Worker version 300 es 5052*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5053*35238bceSAndroid Build Coastguard Worker both "" 5054*35238bceSAndroid Build Coastguard Worker #version 300 es 5055*35238bceSAndroid Build Coastguard Worker #if ( 8 & 3 != 2 ) == 0 5056*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5057*35238bceSAndroid Build Coastguard Worker #else 5058*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5059*35238bceSAndroid Build Coastguard Worker #endif 5060*35238bceSAndroid Build Coastguard Worker 5061*35238bceSAndroid Build Coastguard Worker precision mediump float; 5062*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5063*35238bceSAndroid Build Coastguard Worker void main() 5064*35238bceSAndroid Build Coastguard Worker { 5065*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5066*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5067*35238bceSAndroid Build Coastguard Worker } 5068*35238bceSAndroid Build Coastguard Worker "" 5069*35238bceSAndroid Build Coastguard Worker end 5070*35238bceSAndroid Build Coastguard Worker 5071*35238bceSAndroid Build Coastguard Worker case bitwise_and_vs_equal 5072*35238bceSAndroid Build Coastguard Worker version 300 es 5073*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5074*35238bceSAndroid Build Coastguard Worker both "" 5075*35238bceSAndroid Build Coastguard Worker #version 300 es 5076*35238bceSAndroid Build Coastguard Worker #if ( 8 & 3 == 2 ) == 0 5077*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5078*35238bceSAndroid Build Coastguard Worker #else 5079*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5080*35238bceSAndroid Build Coastguard Worker #endif 5081*35238bceSAndroid Build Coastguard Worker 5082*35238bceSAndroid Build Coastguard Worker precision mediump float; 5083*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5084*35238bceSAndroid Build Coastguard Worker void main() 5085*35238bceSAndroid Build Coastguard Worker { 5086*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5087*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5088*35238bceSAndroid Build Coastguard Worker } 5089*35238bceSAndroid Build Coastguard Worker "" 5090*35238bceSAndroid Build Coastguard Worker end 5091*35238bceSAndroid Build Coastguard Worker 5092*35238bceSAndroid Build Coastguard Worker case xor_vs_bitwise_and 5093*35238bceSAndroid Build Coastguard Worker version 300 es 5094*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5095*35238bceSAndroid Build Coastguard Worker both "" 5096*35238bceSAndroid Build Coastguard Worker #version 300 es 5097*35238bceSAndroid Build Coastguard Worker #if ( 8 ^ 3 & 2 ) == 10 5098*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5099*35238bceSAndroid Build Coastguard Worker #else 5100*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5101*35238bceSAndroid Build Coastguard Worker #endif 5102*35238bceSAndroid Build Coastguard Worker 5103*35238bceSAndroid Build Coastguard Worker precision mediump float; 5104*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5105*35238bceSAndroid Build Coastguard Worker void main() 5106*35238bceSAndroid Build Coastguard Worker { 5107*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5108*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5109*35238bceSAndroid Build Coastguard Worker } 5110*35238bceSAndroid Build Coastguard Worker "" 5111*35238bceSAndroid Build Coastguard Worker end 5112*35238bceSAndroid Build Coastguard Worker 5113*35238bceSAndroid Build Coastguard Worker case bitwise_or_vs_xor 5114*35238bceSAndroid Build Coastguard Worker version 300 es 5115*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5116*35238bceSAndroid Build Coastguard Worker both "" 5117*35238bceSAndroid Build Coastguard Worker #version 300 es 5118*35238bceSAndroid Build Coastguard Worker #if ( 8 | 3 ^ 2 ) == 9 5119*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5120*35238bceSAndroid Build Coastguard Worker #else 5121*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5122*35238bceSAndroid Build Coastguard Worker #endif 5123*35238bceSAndroid Build Coastguard Worker 5124*35238bceSAndroid Build Coastguard Worker precision mediump float; 5125*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5126*35238bceSAndroid Build Coastguard Worker void main() 5127*35238bceSAndroid Build Coastguard Worker { 5128*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5129*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5130*35238bceSAndroid Build Coastguard Worker } 5131*35238bceSAndroid Build Coastguard Worker "" 5132*35238bceSAndroid Build Coastguard Worker end 5133*35238bceSAndroid Build Coastguard Worker 5134*35238bceSAndroid Build Coastguard Worker case logical_and_vs_bitwise_or 5135*35238bceSAndroid Build Coastguard Worker version 300 es 5136*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5137*35238bceSAndroid Build Coastguard Worker both "" 5138*35238bceSAndroid Build Coastguard Worker #version 300 es 5139*35238bceSAndroid Build Coastguard Worker #if ( 0 && 3 | 2 ) 5140*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5141*35238bceSAndroid Build Coastguard Worker #else 5142*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5143*35238bceSAndroid Build Coastguard Worker #endif 5144*35238bceSAndroid Build Coastguard Worker 5145*35238bceSAndroid Build Coastguard Worker precision mediump float; 5146*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5147*35238bceSAndroid Build Coastguard Worker void main() 5148*35238bceSAndroid Build Coastguard Worker { 5149*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5150*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5151*35238bceSAndroid Build Coastguard Worker } 5152*35238bceSAndroid Build Coastguard Worker "" 5153*35238bceSAndroid Build Coastguard Worker end 5154*35238bceSAndroid Build Coastguard Worker 5155*35238bceSAndroid Build Coastguard Worker case logical_and_vs_bitwise_and 5156*35238bceSAndroid Build Coastguard Worker version 300 es 5157*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5158*35238bceSAndroid Build Coastguard Worker both "" 5159*35238bceSAndroid Build Coastguard Worker #version 300 es 5160*35238bceSAndroid Build Coastguard Worker #if ( 0 && 4 & 2 ) 5161*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5162*35238bceSAndroid Build Coastguard Worker #else 5163*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5164*35238bceSAndroid Build Coastguard Worker #endif 5165*35238bceSAndroid Build Coastguard Worker 5166*35238bceSAndroid Build Coastguard Worker precision mediump float; 5167*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5168*35238bceSAndroid Build Coastguard Worker void main() 5169*35238bceSAndroid Build Coastguard Worker { 5170*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5171*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5172*35238bceSAndroid Build Coastguard Worker } 5173*35238bceSAndroid Build Coastguard Worker "" 5174*35238bceSAndroid Build Coastguard Worker end 5175*35238bceSAndroid Build Coastguard Worker 5176*35238bceSAndroid Build Coastguard Worker case logical_or_vs_logical_and 5177*35238bceSAndroid Build Coastguard Worker version 300 es 5178*35238bceSAndroid Build Coastguard Worker values { output float out0 = 1.0; } 5179*35238bceSAndroid Build Coastguard Worker both "" 5180*35238bceSAndroid Build Coastguard Worker #version 300 es 5181*35238bceSAndroid Build Coastguard Worker #if ( 0 || 4 && 0 ) 5182*35238bceSAndroid Build Coastguard Worker #define VAL 0.0 5183*35238bceSAndroid Build Coastguard Worker #else 5184*35238bceSAndroid Build Coastguard Worker #define VAL 1.0 5185*35238bceSAndroid Build Coastguard Worker #endif 5186*35238bceSAndroid Build Coastguard Worker 5187*35238bceSAndroid Build Coastguard Worker precision mediump float; 5188*35238bceSAndroid Build Coastguard Worker ${DECLARATIONS} 5189*35238bceSAndroid Build Coastguard Worker void main() 5190*35238bceSAndroid Build Coastguard Worker { 5191*35238bceSAndroid Build Coastguard Worker out0 = VAL; 5192*35238bceSAndroid Build Coastguard Worker ${OUTPUT} 5193*35238bceSAndroid Build Coastguard Worker } 5194*35238bceSAndroid Build Coastguard Worker "" 5195*35238bceSAndroid Build Coastguard Worker end 5196*35238bceSAndroid Build Coastguard Worker 5197*35238bceSAndroid Build Coastguard Workerend # operator_precedence 5198