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