aboutsummaryrefslogtreecommitdiff
path: root/test/val/val_misc_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/val/val_misc_test.cpp')
-rw-r--r--test/val/val_misc_test.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/val/val_misc_test.cpp b/test/val/val_misc_test.cpp
index 499b5b28..b0e46bf9 100644
--- a/test/val/val_misc_test.cpp
+++ b/test/val/val_misc_test.cpp
@@ -273,6 +273,30 @@ TEST_F(ValidateMisc, UndefVoid) {
EXPECT_THAT(getDiagnosticString(),
HasSubstr("Cannot create undefined values with void type"));
}
+
+TEST_F(ValidateMisc, VulkanInvalidStorageClass) {
+ const std::string spirv = R"(
+OpCapability Shader
+OpMemoryModel Logical GLSL450
+OpEntryPoint Vertex %func "shader"
+%int = OpTypeInt 32 0
+%ptr = OpTypePointer CrossWorkgroup %int
+%var = OpVariable %ptr CrossWorkgroup
+%void = OpTypeVoid
+%void_f = OpTypeFunction %void
+%func = OpFunction %void None %void_f
+%label = OpLabel
+ OpReturn
+ OpFunctionEnd
+)";
+
+ CompileSuccessfully(spirv, SPV_ENV_VULKAN_1_0);
+ ASSERT_EQ(SPV_ERROR_INVALID_BINARY, ValidateInstructions(SPV_ENV_VULKAN_1_0));
+ EXPECT_THAT(getDiagnosticString(),
+ AnyVUID("VUID-StandaloneSpirv-None-04643"));
+ EXPECT_THAT(getDiagnosticString(),
+ HasSubstr("Invalid storage class for target environment"));
+}
} // namespace
} // namespace val
} // namespace spvtools