aboutsummaryrefslogtreecommitdiff
path: root/libshaderc/src
diff options
context:
space:
mode:
authorqining <qining@google.com>2016-01-04 15:26:20 -0500
committerqining <qining@google.com>2016-01-04 15:26:20 -0500
commit98324ad32bc6bb42e12e5ece3386b2cab2170da5 (patch)
treed594c9e065ba33497f51edb1442326430103e2ae /libshaderc/src
parent9ff424ea7caa36735aa50b4b2658a845623d4dcf (diff)
downloadshaderc-98324ad32bc6bb42e12e5ece3386b2cab2170da5.tar.gz
Squash and merge #62: Add SetSuppressWarnings() to libshaderc
Diffstat (limited to 'libshaderc/src')
-rw-r--r--libshaderc/src/shaderc.cc5
-rw-r--r--libshaderc/src/shaderc_cpp_test.cc95
-rw-r--r--libshaderc/src/shaderc_test.cc63
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());