tests: Test shader with invalid transform feedback stream
diff --git a/tests/vklayertests_pipeline_shader.cpp b/tests/vklayertests_pipeline_shader.cpp
index 9edff37..e0303d2 100644
--- a/tests/vklayertests_pipeline_shader.cpp
+++ b/tests/vklayertests_pipeline_shader.cpp
@@ -13971,6 +13971,60 @@
         CreatePipelineHelper::OneshotTest(*this, set_info, kErrorBit,
                                           "VUID-RuntimeSpirv-transformFeedbackStreamsLinesTriangles-06311");
     }
+
+    {
+        std::stringstream gsSource;
+        gsSource << R"asm(
+               OpCapability Geometry
+               OpCapability TransformFeedback
+               OpCapability GeometryStreams
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Geometry %main "main" %a
+               OpExecutionMode %main Xfb
+               OpExecutionMode %main Triangles
+               OpExecutionMode %main Invocations 1
+               OpExecutionMode %main OutputLineStrip
+               OpExecutionMode %main OutputVertices 6
+
+               ; Debug Information
+               OpSource GLSL 450
+               OpName %main "main"  ; id %4
+               OpName %a "a"  ; id %10
+
+               ; Annotations
+               OpDecorate %a Location 0
+               OpDecorate %a Stream  )asm";
+        gsSource << transform_feedback_props.maxTransformFeedbackStreams;
+        gsSource << R"asm(
+               OpDecorate %a XfbBuffer 0
+               OpDecorate %a XfbStride 4
+               OpDecorate %a Offset 0
+
+               ; Types, variables and constants
+       %void = OpTypeVoid
+          %3 = OpTypeFunction %void
+        %int = OpTypeInt 32 1
+      %int_0 = OpConstant %int 0
+      %float = OpTypeFloat 32
+%_ptr_Output_float = OpTypePointer Output %float
+          %a = OpVariable %_ptr_Output_float Output
+
+               ; Function main
+       %main = OpFunction %void None %3
+          %5 = OpLabel
+               OpEmitStreamVertex %int_0
+               OpReturn
+               OpFunctionEnd
+        )asm";
+
+        auto gs = VkShaderObj::CreateFromASM(*m_device, *this, VK_SHADER_STAGE_GEOMETRY_BIT, gsSource.str().c_str(), "main", nullptr);
+
+        const auto set_info = [&](CreatePipelineHelper &helper) {
+            helper.shader_stages_ = {helper.vs_->GetStageCreateInfo(), gs->GetStageCreateInfo(), helper.fs_->GetStageCreateInfo()};
+        };
+        CreatePipelineHelper::OneshotTest(*this, set_info, kErrorBit, "VUID-RuntimeSpirv-Stream-06312");
+    }
 }
 
 TEST_F(VkLayerTest, TestMinAndMaxTexelGatherOffset) {