group invalid_declarations "Invalid declarations"
	case in_in_vertex_main
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			${VERTEX_DECLARATIONS}
			void main()
			{
				in mediump float val;
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case out_in_vertex_main
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			${VERTEX_DECLARATIONS}
			void main()
			{
				out mediump float val;
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			in mediump float val;
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case in_in_fragment_main
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			out mediump float val;
			${VERTEX_DECLARATIONS}
			void main()
			{
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				in mediump float val;
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case out_in_fragment_main
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			${VERTEX_DECLARATIONS}
			void main()
			{
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				out mediump float val;
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case uniform_in_vertex_main
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			${VERTEX_DECLARATIONS}
			void main()
			{
				uniform mediump float val;
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case uniform_in_fragment_main
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			${VERTEX_DECLARATIONS}
			void main()
			{
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				uniform mediump float val;
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case uniform_block_in_main
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			void main()
			{
				uniform Block { mediump float val; };
				${OUTPUT}
			}
		""
	end

	case invariant_attribute
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			invariant in mediump float val;
			${VERTEX_DECLARATIONS}
			void main()
			{
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case invariant_uniform
		version 300 es
		expect compile_fail
		vertex ""
			#version 300 es
			invariant uniform mediump float val;
			${VERTEX_DECLARATIONS}
			void main()
			{
				gl_Position = vec4(1.0);
			}
		""
		fragment ""
			#version 300 es
			${FRAGMENT_DECLARATIONS}
			void main()
			{
				${FRAG_COLOR} = vec4(1.0);
			}
		""
	end

	case invariant_uniform_block_1
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			invariant uniform Block { mediump float val; };
			${DECLARATIONS}
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case invariant_uniform_block_2
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			uniform Block { invariant mediump float val; };
			${DECLARATIONS}
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_layout_qualifier
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			layout(foobar) uniform Block
			{
				mediump float val;
			};
			${DECLARATIONS}
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_member_layout_qualifier
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				layout(foobar) uniform mediump float val;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_nested_struct_definition
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				struct S
				{
					mediump float v;
					struct T
					{
						highp int i;
					} t;
				} s;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case nested_uniform_block
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				uniform Block2
				{
					mediump float v;
				} block2;
			} block;
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_sampler_2d
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				uniform sampler2D s;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_sampler_cube
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				uniform samplerCube s;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_missing_member_semicolon
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float var
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_missing_end_semicolon
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float var;
			}
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_duplicate_member_name_1
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float var;
				mediump float var;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_duplicate_member_name_2
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float var;
			};
			uniform Block2
			{
				mediump float var;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_duplicate_member_name_3
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform mediump float var;
			uniform Block
			{
				mediump float var;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_duplicate_block_name
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float var;
			};
			uniform Block
			{
				mediump float var2;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_duplicate_instance_name_1
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float var;
			} block;
			uniform Block2
			{
				mediump float var2;
			} block;
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_duplicate_instance_name_2
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform mediump float block;
			uniform Block
			{
				mediump float var;
			} block;
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_duplicate_instance_name_3
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float block;
			};
			uniform Block2
			{
				mediump float var2;
			} block;
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_array_without_instance_name_1
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block[2]
			{
				mediump float var;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_array_without_instance_name_2
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				mediump float var;
			} [2];
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_in
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				in mediump float var;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_out
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				out mediump float var;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

	case uniform_block_const
		version 300 es
		expect compile_fail
		both ""
			#version 300 es
			${DECLARATIONS}
			uniform Block
			{
				const mediump float var;
			};
			void main()
			{
				${OUTPUT}
			}
		""
	end

end # invalid_declarations
