diff options
Diffstat (limited to 'libshaderc/src/shaderc_test.cc')
-rw-r--r-- | libshaderc/src/shaderc_test.cc | 27 |
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()); |