#include "tests/test_utils/ShaderCompileTreeTest.h"
namespace
{
class GlFragDataNotModifiedTest : public sh::ShaderCompileTreeTest
{
public:
GlFragDataNotModifiedTest() {}
protected:
void initResources(ShBuiltInResources *resources) override
{
resources->MaxDrawBuffers = 4;
resources->EXT_draw_buffers = 1;
}
::GLenum getShaderType() const override { return GL_FRAGMENT_SHADER; }
ShShaderSpec getShaderSpec() const override { return SH_GLES2_SPEC; }
};
TEST_F(GlFragDataNotModifiedTest, BuiltinRewritingBug)
{
const std::string &shaderString =
"#extension GL_EXT_draw_buffers : require\n"
"precision mediump float;\n"
"void main() {\n"
" gl_FragData[gl_MaxDrawBuffers] = vec4(0.0);\n"
"}";
if (compile(shaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure\n";
}
if (compile(shaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure\n";
}
}
}