aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/SkSLGLSLTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/SkSLGLSLTest.cpp')
-rw-r--r--tests/SkSLGLSLTest.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/SkSLGLSLTest.cpp b/tests/SkSLGLSLTest.cpp
index a0fdb98dcf..53e5c6badf 100644
--- a/tests/SkSLGLSLTest.cpp
+++ b/tests/SkSLGLSLTest.cpp
@@ -777,4 +777,91 @@ DEF_TEST(SkSLGeometry, r) {
SkSL::Program::kGeometry_Kind);
}
+DEF_TEST(SkSLSwitch, r) {
+ test(r,
+ "void main() {"
+ " float x;"
+ " switch (1) {"
+ " case 0:"
+ " x = 0.0;"
+ " break;"
+ " case 1:"
+ " x = 1.0;"
+ " break;"
+ " default:"
+ " x = 2.0;"
+ " }"
+ " sk_FragColor = vec4(x);"
+ "}",
+ *SkSL::ShaderCapsFactory::Default(),
+ "#version 400\n"
+ "out vec4 sk_FragColor;\n"
+ "void main() {\n"
+ " float x;\n"
+ " switch (1) {\n"
+ " case 0:\n"
+ " x = 0.0;\n"
+ " break;\n"
+ " case 1:\n"
+ " x = 1.0;\n"
+ " break;\n"
+ " default:\n"
+ " x = 2.0;\n"
+ " }\n"
+ " sk_FragColor = vec4(x);\n"
+ "}\n");
+ test(r,
+ "void main() {"
+ " float x;"
+ " switch (2) {"
+ " case 0:"
+ " x = 0.0;"
+ " case 1:"
+ " x = 1.0;"
+ " default:"
+ " x = 2.0;"
+ " }"
+ " sk_FragColor = vec4(x);"
+ "}",
+ *SkSL::ShaderCapsFactory::Default(),
+ "#version 400\n"
+ "out vec4 sk_FragColor;\n"
+ "void main() {\n"
+ " float x;\n"
+ " switch (2) {\n"
+ " case 0:\n"
+ " x = 0.0;\n"
+ " case 1:\n"
+ " x = 1.0;\n"
+ " default:\n"
+ " x = 2.0;\n"
+ " }\n"
+ " sk_FragColor = vec4(2.0);\n"
+ "}\n");
+ test(r,
+ "void main() {"
+ " float x = 0.0;"
+ " switch (3) {"
+ " case 0:"
+ " x = 0.0;"
+ " case 1:"
+ " x = 1.0;"
+ " }"
+ " sk_FragColor = vec4(x);"
+ "}",
+ *SkSL::ShaderCapsFactory::Default(),
+ "#version 400\n"
+ "out vec4 sk_FragColor;\n"
+ "void main() {\n"
+ " float x = 0.0;\n"
+ " switch (3) {\n"
+ " case 0:\n"
+ " x = 0.0;\n"
+ " case 1:\n"
+ " x = 1.0;\n"
+ " }\n"
+ " sk_FragColor = vec4(x);\n"
+ "}\n");
+}
+
#endif