diff options
author | qining <qining@google.com> | 2016-01-04 15:26:20 -0500 |
---|---|---|
committer | qining <qining@google.com> | 2016-01-04 15:26:20 -0500 |
commit | 98324ad32bc6bb42e12e5ece3386b2cab2170da5 (patch) | |
tree | d594c9e065ba33497f51edb1442326430103e2ae /libshaderc/src | |
parent | 9ff424ea7caa36735aa50b4b2658a845623d4dcf (diff) | |
download | shaderc-98324ad32bc6bb42e12e5ece3386b2cab2170da5.tar.gz |
Squash and merge #62: Add SetSuppressWarnings() to libshaderc
Diffstat (limited to 'libshaderc/src')
-rw-r--r-- | libshaderc/src/shaderc.cc | 5 | ||||
-rw-r--r-- | libshaderc/src/shaderc_cpp_test.cc | 95 | ||||
-rw-r--r-- | libshaderc/src/shaderc_test.cc | 63 |
3 files changed, 163 insertions, 0 deletions
diff --git a/libshaderc/src/shaderc.cc b/libshaderc/src/shaderc.cc index 15fc0b2..b27b2fd 100644 --- a/libshaderc/src/shaderc.cc +++ b/libshaderc/src/shaderc.cc @@ -133,6 +133,11 @@ void shaderc_compile_options_set_preprocessing_only_mode( options->compiler.SetPreprocessingOnlyMode(); } +void shaderc_compile_options_set_suppress_warnings( + shaderc_compile_options_t options) { + options->compiler.SetSuppressWarnings(); +} + void shaderc_compile_options_set_target_env( shaderc_compile_options_t options, shaderc_target_env target, uint32_t version) { // "version" reserved for future use, intended to distinguish between different diff --git a/libshaderc/src/shaderc_cpp_test.cc b/libshaderc/src/shaderc_cpp_test.cc index eafbd06..aa139aa 100644 --- a/libshaderc/src/shaderc_cpp_test.cc +++ b/libshaderc/src/shaderc_cpp_test.cc @@ -31,6 +31,19 @@ const std::string kMinimalShaderWithMacro = "#define E main\n" "void E(){}\n"; +// By default the compiler will emit a warning on line 2 complaining +// that 'float' is a deprecated attribute in version 130. +const std::string kDeprecatedAttributeShader = + "#version 130\n" + "attribute float x;\n" + "void main() {}\n"; + +// By default the compiler will emit a warning as version 550 is an unknown +// version. +const std::string kMinimalUnknownVersionShader = + "#version 550\n" + "void main() {}\n"; + TEST(CppInterface, MultipleCalls) { shaderc::Compiler compiler1, compiler2, compiler3; EXPECT_TRUE(compiler1.IsValid()); @@ -326,6 +339,88 @@ TEST(CppInterface, PreprocessingOnlyModeSecondOverridesDisassemblyMode) { HasSubstr("void main(){ }")); } +TEST(CppInterface, WarningsOnLine) { + shaderc::Compiler compiler; + shaderc::CompileOptions options; + // By default the compiler will emit a warning on line 2 complaining + // that 'float' is a deprecated attribute in version 130. + const shaderc::SpvModule result_warnings_on_line = compiler.CompileGlslToSpv( + kDeprecatedAttributeShader, shaderc_glsl_vertex_shader, options); + EXPECT_TRUE(result_warnings_on_line.GetSuccess()); + EXPECT_THAT( + result_warnings_on_line.GetErrorMessage(), + HasSubstr(":2: warning: attribute deprecated in version 130; may be " + "removed in future release\n")); +} + +TEST(CppInterface, SuppressWarningsOnLine) { + shaderc::Compiler compiler; + shaderc::CompileOptions options_suppress_warnings; + // Sets the compiler to suppress warnings, so that the deprecated attribute + // warning won't be emitted. + options_suppress_warnings.SetSuppressWarnings(); + const shaderc::SpvModule result_suppress_warnings_on_line = + compiler.CompileGlslToSpv(kDeprecatedAttributeShader, + shaderc_glsl_vertex_shader, + options_suppress_warnings); + EXPECT_TRUE(result_suppress_warnings_on_line.GetSuccess()); + EXPECT_EQ("", result_suppress_warnings_on_line.GetErrorMessage()); +} + +TEST(CppInterface, SuppressWarningsOnLineClonedOptions) { + shaderc::Compiler compiler; + shaderc::CompileOptions options_suppress_warnings; + // Sets the compiler to suppress warnings, so that the deprecated attribute + // warning won't be emitted, and the mode should be carried into any clone of + // the original option object. + options_suppress_warnings.SetSuppressWarnings(); + shaderc::CompileOptions cloned_options(options_suppress_warnings); + const shaderc::SpvModule result_cloned_options = compiler.CompileGlslToSpv( + kDeprecatedAttributeShader, shaderc_glsl_vertex_shader, cloned_options); + EXPECT_TRUE(result_cloned_options.GetSuccess()); + EXPECT_EQ("", result_cloned_options.GetErrorMessage()); +} + +TEST(CppInterface, GlobalWarnings) { + shaderc::Compiler compiler; + shaderc::CompileOptions options; + // By default the compiler will emit a warning as version 550 is an unknown + // version. + const shaderc::SpvModule result_warnings_on_line = compiler.CompileGlslToSpv( + kMinimalUnknownVersionShader, shaderc_glsl_vertex_shader, options); + EXPECT_TRUE(result_warnings_on_line.GetSuccess()); + EXPECT_THAT(result_warnings_on_line.GetErrorMessage(), + HasSubstr("warning: version 550 is unknown.\n")); +} + +TEST(CppInterface, SuppressGlobalWarnings) { + shaderc::Compiler compiler; + shaderc::CompileOptions options_suppress_warnings; + // Sets the compiler to suppress warnings, so that the unknown version warning + // won't be emitted. + options_suppress_warnings.SetSuppressWarnings(); + const shaderc::SpvModule result_suppress_warnings_on_line = + compiler.CompileGlslToSpv(kMinimalUnknownVersionShader, + shaderc_glsl_vertex_shader, + options_suppress_warnings); + EXPECT_TRUE(result_suppress_warnings_on_line.GetSuccess()); + EXPECT_EQ("", result_suppress_warnings_on_line.GetErrorMessage()); +} + +TEST(CppInterface, SuppressGlobalWarningsClonedOptions) { + shaderc::Compiler compiler; + shaderc::CompileOptions options_suppress_warnings; + // Sets the compiler to suppress warnings, so that the unknown version warning + // won't be emitted, and the mode should be carried into any clone of the + // original option object. + options_suppress_warnings.SetSuppressWarnings(); + shaderc::CompileOptions cloned_options(options_suppress_warnings); + const shaderc::SpvModule result_cloned_options = compiler.CompileGlslToSpv( + kMinimalUnknownVersionShader, shaderc_glsl_vertex_shader, cloned_options); + EXPECT_TRUE(result_cloned_options.GetSuccess()); + EXPECT_EQ("", result_cloned_options.GetErrorMessage()); +} + TEST(CppInterface, TargetEnvCompileOptions) { shaderc::Compiler compiler; shaderc::CompileOptions options; diff --git a/libshaderc/src/shaderc_test.cc b/libshaderc/src/shaderc_test.cc index d78c7e3..b576303 100644 --- a/libshaderc/src/shaderc_test.cc +++ b/libshaderc/src/shaderc_test.cc @@ -26,6 +26,19 @@ namespace { using testing::Each; using testing::HasSubstr; +// By default the compiler will emit a warning on line 2 complaining +// that 'float' is a deprecated attribute in version 130. +const std::string kDeprecatedAttributeShader = + "#version 130\n" + "attribute float x;\n" + "void main() {}\n"; + +// By default the compiler will emit a warning as version 550 is an unknown +// version. +const std::string kMinimalUnknownVersionShader = + "#version 550\n" + "void main() {}\n"; + TEST(Init, MultipleCalls) { shaderc_compiler_t compiler1, compiler2, compiler3; EXPECT_NE(nullptr, compiler1 = shaderc_compiler_initialize()); @@ -272,6 +285,56 @@ TEST(CompileStringWithOptions, PreprocessingOnlyOption) { HasSubstr("void main(){ }")); } +TEST(CompileStringWithOptions, WarningsOnLine) { + Compiler compiler; + compile_options_ptr options(shaderc_compile_options_initialize()); + ASSERT_NE(nullptr, compiler.get_compiler_handle()); + const Compilation comp(compiler.get_compiler_handle(), + kDeprecatedAttributeShader, shaderc_glsl_vertex_shader, + options.get()); + EXPECT_TRUE(shaderc_module_get_success(comp.result())); + EXPECT_THAT( + shaderc_module_get_error_message(comp.result()), + HasSubstr(":2: warning: attribute deprecated in version 130; may be " + "removed in future release\n")); +} + +TEST(CompileStringWithOptions, SuppressWarningsOnLine) { + Compiler compiler; + compile_options_ptr options(shaderc_compile_options_initialize()); + shaderc_compile_options_set_suppress_warnings(options.get()); + ASSERT_NE(nullptr, compiler.get_compiler_handle()); + const Compilation comp(compiler.get_compiler_handle(), + kDeprecatedAttributeShader, shaderc_glsl_vertex_shader, + options.get()); + EXPECT_TRUE(shaderc_module_get_success(comp.result())); + EXPECT_STREQ("", shaderc_module_get_error_message(comp.result())); +} + +TEST(CompileStringWithOptions, GlobalWarnings) { + Compiler compiler; + compile_options_ptr options(shaderc_compile_options_initialize()); + ASSERT_NE(nullptr, compiler.get_compiler_handle()); + const Compilation comp(compiler.get_compiler_handle(), + kMinimalUnknownVersionShader, + shaderc_glsl_vertex_shader, options.get()); + EXPECT_TRUE(shaderc_module_get_success(comp.result())); + EXPECT_THAT(shaderc_module_get_error_message(comp.result()), + HasSubstr("version 550 is unknown.\n")); +} + +TEST(CompileStringWithOptions, SuppressGlobalWarnings) { + Compiler compiler; + compile_options_ptr options(shaderc_compile_options_initialize()); + shaderc_compile_options_set_suppress_warnings(options.get()); + ASSERT_NE(nullptr, compiler.get_compiler_handle()); + const Compilation comp(compiler.get_compiler_handle(), + kMinimalUnknownVersionShader, + shaderc_glsl_vertex_shader, options.get()); + EXPECT_TRUE(shaderc_module_get_success(comp.result())); + EXPECT_STREQ("", shaderc_module_get_error_message(comp.result())); +} + TEST(CompileStringWithOptions, IfDefCompileOption) { Compiler compiler; compile_options_ptr options(shaderc_compile_options_initialize()); |