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