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