Use value-paramaterized tests instead of by type.

This should fix our non-standard template use, which causes compile
errors for the tests on GCC/Clang.

BUG=angleproject:997

Change-Id: Id1bb15231eda445f37e53a5b33d4684ec6618d8e
Reviewed-on: https://chromium-review.googlesource.com/269858
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/tests/end2end_tests/TextureTest.cpp b/src/tests/end2end_tests/TextureTest.cpp
index f07abed..f7bee3f 100644
--- a/src/tests/end2end_tests/TextureTest.cpp
+++ b/src/tests/end2end_tests/TextureTest.cpp
@@ -1,13 +1,20 @@
+//
+// Copyright 2015 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
 #include "ANGLETest.h"
 
-// Use this to select which configurations (e.g. which renderer, which GLES major version) these tests should be run against.
-ANGLE_TYPED_TEST_CASE(TextureTest, ES2_D3D9, ES2_D3D11, ES2_D3D11_FL9_3);
+using namespace angle;
 
-template<typename T>
+namespace
+{
+
 class TextureTest : public ANGLETest
 {
   protected:
-    TextureTest() : ANGLETest(T::GetGlesMajorVersion(), T::GetPlatform())
+    TextureTest()
     {
         setWindowWidth(128);
         setWindowHeight(128);
@@ -17,7 +24,7 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp()
+    void SetUp() override
     {
         ANGLETest::SetUp();
         glGenTextures(1, &mTexture2D);
@@ -93,7 +100,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
+    void TearDown() override
     {
         glDeleteTextures(1, &mTexture2D);
         glDeleteTextures(1, &mTextureCube);
@@ -242,7 +249,7 @@
     GLint mTextureScaleUniformLocation;
 };
 
-TYPED_TEST(TextureTest, NegativeAPISubImage)
+TEST_P(TextureTest, NegativeAPISubImage)
 {
     glBindTexture(GL_TEXTURE_2D, mTexture2D);
     EXPECT_GL_ERROR(GL_NO_ERROR);
@@ -252,7 +259,7 @@
     EXPECT_GL_ERROR(GL_INVALID_VALUE);
 }
 
-TYPED_TEST(TextureTest, ZeroSizedUploads)
+TEST_P(TextureTest, ZeroSizedUploads)
 {
     glBindTexture(GL_TEXTURE_2D, mTexture2D);
     EXPECT_GL_ERROR(GL_NO_ERROR);
@@ -275,7 +282,7 @@
 }
 
 // Test drawing with two texture types, to trigger an ANGLE bug in validation
-TYPED_TEST(TextureTest, CubeMapBug)
+TEST_P(TextureTest, CubeMapBug)
 {
     glActiveTexture(GL_TEXTURE0);
     glBindTexture(GL_TEXTURE_2D, mTexture2D);
@@ -295,7 +302,7 @@
 }
 
 // Copy of a test in conformance/textures/texture-mips, to test generate mipmaps
-TYPED_TEST(TextureTest, MipmapsTwice)
+TEST_P(TextureTest, MipmapsTwice)
 {
     int px = getWindowWidth() / 2;
     int py = getWindowHeight() / 2;
@@ -357,7 +364,7 @@
 
 // Test creating a FBO with a cube map render target, to test an ANGLE bug
 // https://code.google.com/p/angleproject/issues/detail?id=849
-TYPED_TEST(TextureTest, CubeMapFBO)
+TEST_P(TextureTest, CubeMapFBO)
 {
     GLuint fbo;
     glGenFramebuffers(1, &fbo);
@@ -374,7 +381,7 @@
 }
 
 // Test that glTexSubImage2D works properly when glTexStorage2DEXT has initialized the image with a default color.
-TYPED_TEST(TextureTest, TexStorage)
+TEST_P(TextureTest, TexStorage)
 {
     int width = getWindowWidth();
     int height = getWindowHeight();
@@ -419,7 +426,7 @@
 }
 
 // Test that glTexSubImage2D combined with a PBO works properly when glTexStorage2DEXT has initialized the image with a default color.
-TYPED_TEST(TextureTest, TexStorageWithPBO)
+TEST_P(TextureTest, TexStorageWithPBO)
 {
     if (extensionEnabled("NV_pixel_buffer_object"))
     {
@@ -470,59 +477,59 @@
 }
 
 // See description on testFloatCopySubImage
-TYPED_TEST(TextureTest, CopySubImageFloat_R_R)
+TEST_P(TextureTest, CopySubImageFloat_R_R)
 {
     testFloatCopySubImage(1, 1);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RG_R)
+TEST_P(TextureTest, CopySubImageFloat_RG_R)
 {
     testFloatCopySubImage(2, 1);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RG_RG)
+TEST_P(TextureTest, CopySubImageFloat_RG_RG)
 {
     testFloatCopySubImage(2, 2);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RGB_R)
+TEST_P(TextureTest, CopySubImageFloat_RGB_R)
 {
     testFloatCopySubImage(3, 1);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RGB_RG)
+TEST_P(TextureTest, CopySubImageFloat_RGB_RG)
 {
     testFloatCopySubImage(3, 2);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RGB_RGB)
+TEST_P(TextureTest, CopySubImageFloat_RGB_RGB)
 {
     testFloatCopySubImage(3, 3);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RGBA_R)
+TEST_P(TextureTest, CopySubImageFloat_RGBA_R)
 {
     testFloatCopySubImage(4, 1);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RGBA_RG)
+TEST_P(TextureTest, CopySubImageFloat_RGBA_RG)
 {
     testFloatCopySubImage(4, 2);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RGBA_RGB)
+TEST_P(TextureTest, CopySubImageFloat_RGBA_RGB)
 {
     testFloatCopySubImage(4, 3);
 }
 
-TYPED_TEST(TextureTest, CopySubImageFloat_RGBA_RGBA)
+TEST_P(TextureTest, CopySubImageFloat_RGBA_RGBA)
 {
     testFloatCopySubImage(4, 4);
 }
 
 // Port of https://www.khronos.org/registry/webgl/conformance-suites/1.0.3/conformance/textures/texture-npot.html
 // Run against GL_ALPHA/UNSIGNED_BYTE format, to ensure that D3D11 Feature Level 9_3 correctly handles GL_ALPHA
-TYPED_TEST(TextureTest, TextureNPOT_GL_ALPHA_UBYTE)
+TEST_P(TextureTest, TextureNPOT_GL_ALPHA_UBYTE)
 {
     const int npotTexSize = 5;
     const int potTexSize = 4; // Should be less than npotTexSize
@@ -602,3 +609,8 @@
     EXPECT_PIXEL_EQ(getWindowWidth() / 2, getWindowHeight() / 2, 0, 0, 0, 64);
     EXPECT_GL_NO_ERROR();
 }
+
+// Use this to select which configurations (e.g. which renderer, which GLES major version) these tests should be run against.
+ANGLE_INSTANTIATE_TEST(TextureTest, ES2_D3D9(), ES2_D3D11(), ES2_D3D11_FL9_3());
+
+} // namespace