| // | |
| // 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); | |
| sh::Destruct(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); | |
| } |