blob: 1834aba9658ec50b249f14d3a5e92cdab04093dc [file] [log] [blame]
//
// Copyright 2016 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ConstructCompiler_test.cpp
// Test the sh::ConstructCompiler interface with different parameters.
//
#include "GLSLANG/ShaderLang.h"
#include "angle_gl.h"
#include "gtest/gtest.h"
// Test default parameters.
TEST(ConstructCompilerTest, DefaultParameters)
{
ShBuiltInResources resources;
sh::InitBuiltInResources(&resources);
ShHandle compiler = sh::ConstructCompiler(GL_FRAGMENT_SHADER, SH_WEBGL_SPEC,
SH_GLSL_COMPATIBILITY_OUTPUT, &resources);
ASSERT_NE(nullptr, compiler);
}
// Test invalid MaxDrawBuffers zero.
TEST(ConstructCompilerTest, InvalidMaxDrawBuffers)
{
ShBuiltInResources resources;
sh::InitBuiltInResources(&resources);
resources.MaxDrawBuffers = 0;
ShHandle compiler = sh::ConstructCompiler(GL_FRAGMENT_SHADER, SH_WEBGL_SPEC,
SH_GLSL_COMPATIBILITY_OUTPUT, &resources);
ASSERT_EQ(nullptr, compiler);
}
// Test invalid MaxDualSourceDrawBuffers zero.
TEST(ConstructCompilerTest, InvalidMaxDualSourceDrawBuffers)
{
ShBuiltInResources resources;
sh::InitBuiltInResources(&resources);
resources.EXT_blend_func_extended = 1;
resources.MaxDualSourceDrawBuffers = 0;
ShHandle compiler = sh::ConstructCompiler(GL_FRAGMENT_SHADER, SH_WEBGL_SPEC,
SH_GLSL_COMPATIBILITY_OUTPUT, &resources);
ASSERT_EQ(nullptr, compiler);
}