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/UnpackAlignmentTest.cpp b/src/tests/end2end_tests/UnpackAlignmentTest.cpp
index 9e04fda..47f6576 100644
--- a/src/tests/end2end_tests/UnpackAlignmentTest.cpp
+++ b/src/tests/end2end_tests/UnpackAlignmentTest.cpp
@@ -1,15 +1,22 @@
+//
+// 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"
#include <array>
-// Use this to select which configurations (e.g. which renderer, which GLES major version) these tests should be run against.
-ANGLE_TYPED_TEST_CASE(UnpackAlignmentTest, ES2_D3D9, ES2_D3D11, ES2_OPENGL, ES3_OPENGL);
+using namespace angle;
-template<typename T>
+namespace
+{
+
class UnpackAlignmentTest : public ANGLETest
{
-protected:
- UnpackAlignmentTest() : ANGLETest(T::GetGlesMajorVersion(), T::GetPlatform())
+ protected:
+ UnpackAlignmentTest()
{
setWindowWidth(128);
setWindowHeight(128);
@@ -22,7 +29,7 @@
mProgram = 0;
}
- virtual void SetUp()
+ void SetUp() override
{
ANGLETest::SetUp();
@@ -54,7 +61,7 @@
}
}
- virtual void TearDown()
+ void TearDown() override
{
glDeleteProgram(mProgram);
@@ -137,7 +144,7 @@
GLuint mProgram;
};
-TYPED_TEST(UnpackAlignmentTest, DefaultAlignment)
+TEST_P(UnpackAlignmentTest, DefaultAlignment)
{
GLint defaultAlignment;
glGetIntegerv(GL_UNPACK_ALIGNMENT, &defaultAlignment);
@@ -145,165 +152,172 @@
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1RGBAUByte)
+TEST_P(UnpackAlignmentTest, Alignment1RGBAUByte)
{
testAlignment(1, 7 * 4, GL_RGBA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1RGBUByte)
+TEST_P(UnpackAlignmentTest, Alignment1RGBUByte)
{
testAlignment(1, 7 * 3, GL_RGB, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1RGBAUShort4444)
+TEST_P(UnpackAlignmentTest, Alignment1RGBAUShort4444)
{
testAlignment(1, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1RGBAUShort5551)
+TEST_P(UnpackAlignmentTest, Alignment1RGBAUShort5551)
{
testAlignment(1, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1RGBAUShort565)
+TEST_P(UnpackAlignmentTest, Alignment1RGBAUShort565)
{
testAlignment(1, 7 * 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1LAUByte)
+TEST_P(UnpackAlignmentTest, Alignment1LAUByte)
{
testAlignment(1, 7 * 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1LUByte)
+TEST_P(UnpackAlignmentTest, Alignment1LUByte)
{
testAlignment(1, 7, GL_LUMINANCE, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment1AUByte)
+TEST_P(UnpackAlignmentTest, Alignment1AUByte)
{
testAlignment(1, 7, GL_ALPHA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2RGBAUByte)
+TEST_P(UnpackAlignmentTest, Alignment2RGBAUByte)
{
testAlignment(2, 7 * 4, GL_RGBA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2RGBUByte)
+TEST_P(UnpackAlignmentTest, Alignment2RGBUByte)
{
testAlignment(2, 7 * 3 + 1, GL_RGB, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2RGBAUShort4444)
+TEST_P(UnpackAlignmentTest, Alignment2RGBAUShort4444)
{
testAlignment(2, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2RGBAUShort5551)
+TEST_P(UnpackAlignmentTest, Alignment2RGBAUShort5551)
{
testAlignment(2, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2RGBAUShort565)
+TEST_P(UnpackAlignmentTest, Alignment2RGBAUShort565)
{
testAlignment(2, 7 * 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2LAUByte)
+TEST_P(UnpackAlignmentTest, Alignment2LAUByte)
{
testAlignment(2, 7 * 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2LAByte)
+TEST_P(UnpackAlignmentTest, Alignment2LAByte)
{
testAlignment(2, 7 + 1, GL_LUMINANCE, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment2AUByte)
+TEST_P(UnpackAlignmentTest, Alignment2AUByte)
{
testAlignment(2, 7 + 1, GL_ALPHA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4RGBAUByte)
+TEST_P(UnpackAlignmentTest, Alignment4RGBAUByte)
{
testAlignment(4, 7 * 4, GL_RGBA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4RGBUByte)
+TEST_P(UnpackAlignmentTest, Alignment4RGBUByte)
{
testAlignment(4, 7 * 3 + 3, GL_RGB, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4RGBAUShort4444)
+TEST_P(UnpackAlignmentTest, Alignment4RGBAUShort4444)
{
testAlignment(4, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4RGBAUShort5551)
+TEST_P(UnpackAlignmentTest, Alignment4RGBAUShort5551)
{
testAlignment(4, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4RGBAUShort565)
+TEST_P(UnpackAlignmentTest, Alignment4RGBAUShort565)
{
testAlignment(4, 7 * 2 + 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4LAUByte)
+TEST_P(UnpackAlignmentTest, Alignment4LAUByte)
{
testAlignment(4, 7 * 2 + 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4LUByte)
+TEST_P(UnpackAlignmentTest, Alignment4LUByte)
{
testAlignment(4, 7 + 1, GL_LUMINANCE, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment4AUByte)
+TEST_P(UnpackAlignmentTest, Alignment4AUByte)
{
testAlignment(4, 7 + 1, GL_ALPHA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8RGBAUByte)
+TEST_P(UnpackAlignmentTest, Alignment8RGBAUByte)
{
testAlignment(8, 7 * 4 + 4, GL_RGBA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8RGBUByte)
+TEST_P(UnpackAlignmentTest, Alignment8RGBUByte)
{
testAlignment(8, 7 * 3 + 3, GL_RGB, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8RGBAUShort4444)
+TEST_P(UnpackAlignmentTest, Alignment8RGBAUShort4444)
{
testAlignment(8, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8RGBAUShort5551)
+TEST_P(UnpackAlignmentTest, Alignment8RGBAUShort5551)
{
testAlignment(8, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8RGBAUShort565)
+TEST_P(UnpackAlignmentTest, Alignment8RGBAUShort565)
{
testAlignment(8, 7 * 2 + 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8LAUByte)
+TEST_P(UnpackAlignmentTest, Alignment8LAUByte)
{
testAlignment(8, 7 * 2 + 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8LUByte)
+TEST_P(UnpackAlignmentTest, Alignment8LUByte)
{
testAlignment(8, 7 + 1, GL_LUMINANCE, GL_UNSIGNED_BYTE);
}
-TYPED_TEST(UnpackAlignmentTest, Alignment8AUByte)
+TEST_P(UnpackAlignmentTest, Alignment8AUByte)
{
testAlignment(8, 7 + 1, GL_ALPHA, GL_UNSIGNED_BYTE);
}
+
+// Use this to select which configurations (e.g. which renderer, which GLES major version) these tests should be run against.
+INSTANTIATE_TEST_CASE_P(
+ ANGLE, UnpackAlignmentTest,
+ testing::Values(ES2_D3D9(), ES2_D3D11(), ES2_OPENGL(), ES3_OPENGL()));
+
+} // namespace