group if "If Statements"

	case single_statement
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				if (in0 >= 1.0)
					out0 = 1.0;
				${OUTPUT}
			}
		""
	end

	case compound_statement
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (in0 >= 1.0)
				{
					out0 = 1.0;
					out1 = 0.0;
				}
				${OUTPUT}
			}
		""
	end

	case sequence_statements
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (in0 >= 1.0)
					out0 = 1.0, out1 = 0.0;
				${OUTPUT}
			}
		""
	end

	case sequence_condition
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (false, in0 >= 1.0)
					out0 = 1.0, out1 = 0.0;
				${OUTPUT}
			}
		""
	end

	case complex_condition
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
			output float out1 = [ 1.0 | 0.0 | 0.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				out1 = 1.0;
				if (false || (in0 >= 1.0) && (in0 - 2.0*in0 < 0.0))
					out0 = 1.0, out1 = 0.0;
				${OUTPUT}
			}
		""
	end

	case if_else
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 1.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (in0 >= 1.0)
					out0 = 1.0;
				else
					out0 = 0.0;
				${OUTPUT}
			}
		""
	end

	case if_elseif
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 2.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				out0 = 0.0;
				if (in0 >= 2.0)
					out0 = 2.0;
				else if (in0 >= 1.0)
					out0 = 1.0;
				${OUTPUT}
			}
		""
	end

	case if_elseif_else
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 2.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (in0 >= 2.0)
					out0 = 2.0;
				else if (in0 >= 1.0)
					out0 = 1.0;
				else
					out0 = 0.0;
				${OUTPUT}
			}
		""
	end

	case mixed_if_elseif_else
		version 300 es
		values
		{
			input float in0 = [ 0.0 | 1.0 | 2.0 ];
			output float out0 = [ 0.0 | 1.0 | 2.0 ];
		}

		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (in0 >= 2.0)
				{
					out0 = 2.0;
				}
				else if (in0 >= 1.0)
					out0 = 2.0, out0 = 1.0;
				else
					out0 = 0.0;
				${OUTPUT}
			}
		""
	end

	case constant_conditional_assignment_to_matrix
		version 300 es
		vertex ""
			#version 300 es
                        // This variant doesn't provoke the crash seen in the versions below.
			${VERTEX_DECLARATIONS}
			out mediump float FragVarying;
			const float in0 = 0.0;
			void main()
			{
				mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0);
				if (in0 == 1.0)
				{
					projectionMatrix[0][0] = 1.0;
				}

				FragVarying = 1.0;
				gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0);
			}
		""
		fragment ""
			#version 300 es
			precision mediump float;
			${FRAGMENT_DECLARATIONS}
			in mediump float FragVarying;
			void main()
			{
				${FRAG_COLOR} = vec4(FragVarying, 1.0, 1.0, 1.0);
			}
		""
	end

	case input_conditional_assignment_to_matrix
		version 300 es
		values
		{
			input float in0 = [ 0.0 ];
		}
		vertex ""
			#version 300 es
			${VERTEX_DECLARATIONS}
			out mediump float FragVarying;  // Necessary to reproduce.
			void main()
			{
				// Crashes with mat4 as well. Does not crash with vectors.
				mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0);
				// Testing a non-constant variable is necessary.
				if (in0 == 1.0)
				{
					// Using the matrix variable appears necessary.
					projectionMatrix[0][0] = 1.0;
				}

				FragVarying = 1.0;
				// Referencing the matrix is necessary though clearly the compiler
				// doesn't realize the assignment is useless.
				gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0);
			}
		""
		fragment ""
			#version 300 es
			precision mediump float;
			${FRAGMENT_DECLARATIONS}
			in mediump float FragVarying;
			void main()
			{
				${FRAG_COLOR} = vec4(FragVarying, 1.0, 1.0, 1.0);
			}
		""
	end

	case uniform_conditional_assignment_to_matrix
		version 300 es
		values
		{
			uniform float uni0 = [ 0.0 ];
		}
		vertex ""
			#version 300 es
			precision mediump float;
			${VERTEX_DECLARATIONS}
			out mediump float FragVarying;  // Necessary to reproduce.
			void main()
			{
				// Crashes with mat4 as well. Does not crash with vectors.
				mat2 projectionMatrix = mat2(0.0, 0.0, 0.0, 0.0);
				// Testing a non-constant variable is necessary.
				if (uni0 == 1.0)
				{
					// Using the matrix variable appears necessary.
					projectionMatrix[0][0] = 1.0;
				}

				FragVarying = 1.0;
				// Referencing the matrix is necessary though clearly the compiler
				// doesn't realize the assignment is useless.
				gl_Position = dEQP_Position + vec4(projectionMatrix[1][0], 0.0, 0.0, 0.0);
			}
		""
		fragment ""
			#version 300 es
			precision mediump float;
			${FRAGMENT_DECLARATIONS}
			in mediump float FragVarying;
			void main()
			{
				${FRAG_COLOR} = vec4(FragVarying, 1.0, 1.0, 1.0);
			}
		""
	end

end # if

group invalid_if "Invalid If Conditionals"

	case missing_parenthesis
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if true
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case unclosed_parenthesis
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (true
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case int_condition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (5)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case int_zero_condition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (0)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case int_one_condition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (1)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case int_uniform_condition
		version 300 es
		expect compile_fail

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;
			uniform int u0;
			${DECLARATIONS}
			void main()
			{
				if (u0)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case float_condition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (5.0)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case float_zero_condition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (0.0)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case float_one_condition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			${DECLARATIONS}
			void main()
			{
				if (1.0)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case sampler_condition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			precision mediump float;
			uniform sampler2D s0;
			${DECLARATIONS}
			void main()
			{
				if (s0)
					${POSITION_FRAG_COLOR} = vec4(1.0);
			}
		""
	end

end # invalid_if
