aboutsummaryrefslogtreecommitdiff
path: root/libshaderc/src/shaderc_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libshaderc/src/shaderc_test.cc')
-rw-r--r--libshaderc/src/shaderc_test.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/libshaderc/src/shaderc_test.cc b/libshaderc/src/shaderc_test.cc
index 5a3432f..6bf00b1 100644
--- a/libshaderc/src/shaderc_test.cc
+++ b/libshaderc/src/shaderc_test.cc
@@ -216,6 +216,33 @@ TEST(CompileStringWithOptions, MacroCompileOptions) {
shaderc_glsl_vertex_shader, cloned_options.get()));
}
+TEST(CompileStringWithOptions, PreprocessingOnlyOption) {
+ Compiler compiler;
+ compile_options_ptr options(shaderc_compile_options_initialize());
+ shaderc_compile_options_set_preprocessing_only_mode(options.get());
+ ASSERT_NE(nullptr, compiler.get_compiler_handle());
+ const std::string kMinimalShader =
+ "#define E main\n"
+ "void E(){}\n";
+ Compilation comp(compiler.get_compiler_handle(), kMinimalShader,
+ shaderc_glsl_vertex_shader, options.get());
+ EXPECT_TRUE(shaderc_module_get_success(comp.result()));
+ EXPECT_THAT(shaderc_module_get_bytes(comp.result()),
+ HasSubstr("void main(){ }"));
+
+ const std::string kMinimalShaderCloneOption =
+ "#define E_CLONE_OPTION main\n"
+ "void E_CLONE_OPTION(){}\n";
+ compile_options_ptr cloned_options(
+ shaderc_compile_options_clone(options.get()));
+ Compilation comp_clone(compiler.get_compiler_handle(),
+ kMinimalShaderCloneOption, shaderc_glsl_vertex_shader,
+ cloned_options.get());
+ EXPECT_TRUE(shaderc_module_get_success(comp_clone.result()));
+ EXPECT_THAT(shaderc_module_get_bytes(comp_clone.result()),
+ HasSubstr("void main(){ }"));
+}
+
TEST(CompileStringWithOptions, IfDefCompileOption) {
Compiler compiler;
compile_options_ptr options(shaderc_compile_options_initialize());