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