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