Configure Google Tests to run against multiple renderers/GLES versions

BUG=angle:611

Change-Id: I7d43612171c439045038db9ae82fd8716c0b31c6
Reviewed-on: https://chromium-review.googlesource.com/220400
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
diff --git a/tests/angle_tests/ReadPixelsTest.cpp b/tests/angle_tests/ReadPixelsTest.cpp
index a2b3218..886e995 100644
--- a/tests/angle_tests/ReadPixelsTest.cpp
+++ b/tests/angle_tests/ReadPixelsTest.cpp
@@ -1,11 +1,15 @@
 #include "ANGLETest.h"
 
+// Use this to select which configurations (e.g. which renderer, which GLES major version) these tests should be run against.
+typedef ::testing::Types<TFT<Gles::Three, Rend::D3D11>> TestFixtureTypes;
+TYPED_TEST_CASE(ReadPixelsTest, TestFixtureTypes);
+
+template<typename T>
 class ReadPixelsTest : public ANGLETest
 {
 protected:
-    ReadPixelsTest()
+    ReadPixelsTest() : ANGLETest(T::GetGlesMajorVersion(), T::GetRequestedRenderer())
     {
-        setClientVersion(3);
         setWindowWidth(32);
         setWindowHeight(32);
         setConfigRedBits(8);
@@ -84,7 +88,7 @@
     GLuint mPositionVBO;
 };
 
-TEST_F(ReadPixelsTest, OutOfBounds)
+TYPED_TEST(ReadPixelsTest, OutOfBounds)
 {
     glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
     glClear(GL_COLOR_BUFFER_BIT);
@@ -117,7 +121,7 @@
     }
 }
 
-TEST_F(ReadPixelsTest, PBOWithOtherTarget)
+TYPED_TEST(ReadPixelsTest, PBOWithOtherTarget)
 {
     glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
     glClear(GL_COLOR_BUFFER_BIT);
@@ -142,7 +146,7 @@
     EXPECT_GL_NO_ERROR();
 }
 
-TEST_F(ReadPixelsTest, PBOWithExistingData)
+TYPED_TEST(ReadPixelsTest, PBOWithExistingData)
 {
     // Clear backbuffer to red
     glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
@@ -180,7 +184,7 @@
     EXPECT_GL_NO_ERROR();
 }
 
-TEST_F(ReadPixelsTest, PBOAndSubData)
+TYPED_TEST(ReadPixelsTest, PBOAndSubData)
 {
     glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
     glClear(GL_COLOR_BUFFER_BIT);
@@ -208,7 +212,7 @@
     EXPECT_GL_NO_ERROR();
 }
 
-TEST_F(ReadPixelsTest, PBOAndSubDataOffset)
+TYPED_TEST(ReadPixelsTest, PBOAndSubDataOffset)
 {
     glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
     glClear(GL_COLOR_BUFFER_BIT);
@@ -241,7 +245,7 @@
     EXPECT_GL_NO_ERROR();
 }
 
-TEST_F(ReadPixelsTest, DrawWithPBO)
+TYPED_TEST(ReadPixelsTest, DrawWithPBO)
 {
     unsigned char data[4] = { 1, 2, 3, 4 };
 
@@ -294,7 +298,7 @@
     EXPECT_EQ(4, data[3]);
 }
 
-TEST_F(ReadPixelsTest, MultisampledPBO)
+TYPED_TEST(ReadPixelsTest, MultisampledPBO)
 {
     GLuint fbo;
     glGenFramebuffers(1, &fbo);