Edit

kc3-lang/angle/src/tests/compiler_tests/EXT_shader_texture_lod_test.cpp

Branch :

  • Show log

    Commit

  • Author : Victor Costan
    Date : 2019-02-20 10:45:24
    Hash : ffd39978
    Message : test: Replace _TEST_CASE_ with _TEST_SUITE_. Googletest is (at last) converging with industry-standard terminology [1]. We previously called test suites "test cases", which was rather confusing for folks coming from any other testing framework. Chrome now has a googletest version that supports _TEST_SUITE_ macros instead of _TEST_CASE_, so this CL cleans up some of the outdated usage. [1] https://github.com/google/googletest/blob/master/googletest/docs/primer.md#beware-of-the-nomenclature Bug: chromium:925652 Change-Id: Ia0deec0bc4216ef1adabc33985a7cbda89682608 Reviewed-on: https://chromium-review.googlesource.com/c/1477418 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Victor Costan <pwnall@chromium.org>

  • src/tests/compiler_tests/EXT_shader_texture_lod_test.cpp
  • //
    // Copyright (c) 2018 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.
    //
    // EXT_shader_texture_lod_test.cpp:
    //   Test for EXT_shader_texture_lod
    //
    
    #include "tests/test_utils/ShaderExtensionTest.h"
    
    using EXTShaderTextureLodTest = sh::ShaderExtensionTest;
    
    namespace
    {
    const char EXTPragma[] = "#extension GL_EXT_shader_texture_lod : require\n";
    
    // Shader calling texture2DLodEXT()
    const char ESSL100_TextureLodShader[] =
        R"(
        precision mediump float;
        varying vec2 texCoord0v;
        uniform float lod;
        uniform sampler2D tex;
        void main()
        {
            vec4 color = texture2DLodEXT(tex, texCoord0v, lod);
        })";
    
    // Extension flag is required to compile properly. Expect failure when it is
    // not present.
    TEST_P(EXTShaderTextureLodTest, CompileFailsWithoutExtension)
    {
        mResources.EXT_shader_texture_lod = 0;
        InitializeCompiler();
        EXPECT_FALSE(TestShaderCompile(EXTPragma));
    }
    
    // Extension directive is required to compile properly. Expect failure when
    // it is not present.
    TEST_P(EXTShaderTextureLodTest, CompileFailsWithExtensionWithoutPragma)
    {
        mResources.EXT_shader_texture_lod = 1;
        InitializeCompiler();
        EXPECT_FALSE(TestShaderCompile(""));
    }
    
    // With extension flag and extension directive, compiling succeeds.
    // Also test that the extension directive state is reset correctly.
    TEST_P(EXTShaderTextureLodTest, CompileSucceedsWithExtensionAndPragma)
    {
        mResources.EXT_shader_texture_lod = 1;
        InitializeCompiler();
        EXPECT_TRUE(TestShaderCompile(EXTPragma));
        // Test reset functionality.
        EXPECT_FALSE(TestShaderCompile(""));
        EXPECT_TRUE(TestShaderCompile(EXTPragma));
    }
    
    // The SL #version 100 shaders that are correct work similarly
    // in both GL2 and GL3, with and without the version string.
    INSTANTIATE_TEST_SUITE_P(CorrectESSL100Shaders,
                             EXTShaderTextureLodTest,
                             Combine(Values(SH_GLES2_SPEC),
                                     Values(sh::ESSLVersion100),
                                     Values(ESSL100_TextureLodShader)));
    
    }  // anonymous namespace