Add external texture test.

This CL adds a test with a uniform bound at (0,0) and an external
texture with a sampler bound at (0,2) and (0,1) respectively.

Bug: 340582170
Change-Id: I0a47ced9d2b71abe22f2f970604de85454d5ffff
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/191664
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
diff --git a/src/dawn/tests/end2end/ExternalTextureTests.cpp b/src/dawn/tests/end2end/ExternalTextureTests.cpp
index 37fcbda..98a2944 100644
--- a/src/dawn/tests/end2end/ExternalTextureTests.cpp
+++ b/src/dawn/tests/end2end/ExternalTextureTests.cpp
@@ -1332,6 +1332,31 @@
     ASSERT_NE(pipeline.Get(), nullptr);
 }
 
+TEST_P(ExternalTextureTests, MultipleBindings) {
+    auto wgslModule = utils::CreateShaderModule(device, R"(
+    @vertex
+    fn vertexMain() -> @builtin(position) vec4f {
+      return vec4f(1);
+    }
+
+    @group(0) @binding(0) var<uniform> u : f32;
+    @group(0) @binding(1) var s : sampler;
+    @group(0) @binding(2) var et : texture_external;
+
+    @fragment
+    fn main() -> @location(0) vec4f {
+      return textureSampleBaseClampToEdge(et, s, vec2f(u));
+    })");
+
+    // Pipeline Creation
+    utils::ComboRenderPipelineDescriptor descriptor;
+    descriptor.vertex.module = wgslModule;
+    descriptor.cFragment.module = wgslModule;
+    wgpu::RenderPipeline pipeline = device.CreateRenderPipeline(&descriptor);
+
+    ASSERT_NE(pipeline.Get(), nullptr);
+}
+
 DAWN_INSTANTIATE_TEST(ExternalTextureTests,
                       D3D11Backend(),
                       D3D12Backend(),