Don't inherit ANGLETest SetUp and TearDown.

Instead of inheriting from testing::Test's SetUp and TearDown we add
new methods 'testSetUp' and 'testTearDown'. This helps prevent a common
error of forgetting to call the base class method.

Also add a check in the ANGLETest destructor that SetUp and TearDown
have been called.

Bug: angleproject:3393
Change-Id: Iab211305cc06ffea9ca649e864ddc9b180f2cba0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1593960
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/tests/gl_tests/AttributeLayoutTest.cpp b/src/tests/gl_tests/AttributeLayoutTest.cpp
index 66b705d..858697f 100644
--- a/src/tests/gl_tests/AttributeLayoutTest.cpp
+++ b/src/tests/gl_tests/AttributeLayoutTest.cpp
@@ -242,10 +242,8 @@
 
     void GetTestCases(void);
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glClearColor(.2f, .2f, .2f, .0f);
         glClear(GL_COLOR_BUFFER_BIT);
 
@@ -277,12 +275,11 @@
         GetTestCases();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         mTestCases.clear();
         glDeleteProgram(mProgram);
         glDeleteBuffers(1, &mIndexBuffer);
-        ANGLETest::TearDown();
     }
 
     virtual bool Skip(const TestCase &) { return false; }
diff --git a/src/tests/gl_tests/BPTCCompressedTextureTest.cpp b/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
index eb433f4..9d71e5a 100644
--- a/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
+++ b/src/tests/gl_tests/BPTCCompressedTextureTest.cpp
@@ -36,10 +36,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -71,12 +69,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mTextureProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mTextureProgram); }
 
     void setupTextureParameters(GLuint texture)
     {
diff --git a/src/tests/gl_tests/BindUniformLocationTest.cpp b/src/tests/gl_tests/BindUniformLocationTest.cpp
index f5baafb..3fb0537 100644
--- a/src/tests/gl_tests/BindUniformLocationTest.cpp
+++ b/src/tests/gl_tests/BindUniformLocationTest.cpp
@@ -29,13 +29,12 @@
         setConfigAlphaBits(8);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram != 0)
         {
             glDeleteProgram(mProgram);
         }
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram = 0;
diff --git a/src/tests/gl_tests/BlendFuncExtendedTest.cpp b/src/tests/gl_tests/BlendFuncExtendedTest.cpp
index 49d434c..a30a082 100644
--- a/src/tests/gl_tests/BlendFuncExtendedTest.cpp
+++ b/src/tests/gl_tests/BlendFuncExtendedTest.cpp
@@ -103,10 +103,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenBuffers(1, &mVBO);
         glBindBuffer(GL_ARRAY_BUFFER, mVBO);
 
@@ -118,7 +116,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mVBO);
         if (mProgram)
@@ -127,8 +125,6 @@
         }
 
         ASSERT_GL_NO_ERROR();
-
-        ANGLETest::TearDown();
     }
 
     void makeProgram(const char *vertSource, const char *fragSource)
@@ -211,9 +207,9 @@
   protected:
     EXTBlendFuncExtendedDrawTestES3() : EXTBlendFuncExtendedDrawTest(), mIsES31OrNewer(false) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        EXTBlendFuncExtendedDrawTest::SetUp();
+        EXTBlendFuncExtendedDrawTest::testSetUp();
         if (getClientMajorVersion() > 3 || getClientMinorVersion() >= 1)
         {
             mIsES31OrNewer = true;
diff --git a/src/tests/gl_tests/BlendMinMaxTest.cpp b/src/tests/gl_tests/BlendMinMaxTest.cpp
index 97aaf59..a2f01bc 100644
--- a/src/tests/gl_tests/BlendMinMaxTest.cpp
+++ b/src/tests/gl_tests/BlendMinMaxTest.cpp
@@ -110,10 +110,8 @@
         }
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
         if (mProgram == 0)
         {
@@ -149,13 +147,11 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteFramebuffers(1, &mFramebuffer);
         glDeleteRenderbuffers(1, &mColorRenderbuffer);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
diff --git a/src/tests/gl_tests/BlitFramebufferANGLETest.cpp b/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
index bca40ea..9fbaf2a 100644
--- a/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
+++ b/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
@@ -61,10 +61,8 @@
         mBGRAMultisampledFBO          = 0;
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mCheckerProgram =
             CompileProgram(essl1_shaders::vs::Passthrough(), essl1_shaders::fs::Checkered());
         mBlueProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::Blue());
@@ -248,7 +246,7 @@
         glBindFramebuffer(GL_FRAMEBUFFER, mOriginalFBO);
     }
 
-    virtual void TearDown()
+    void testTearDown() override
     {
         glDeleteProgram(mCheckerProgram);
         glDeleteProgram(mBlueProgram);
@@ -317,8 +315,6 @@
         {
             glDeleteFramebuffers(1, &mBGRAMultisampledFBO);
         }
-
-        ANGLETest::TearDown();
     }
 
     void multisampleTestHelper(GLuint readFramebuffer, GLuint drawFramebuffer)
diff --git a/src/tests/gl_tests/BufferDataTest.cpp b/src/tests/gl_tests/BufferDataTest.cpp
index 658a6ad..83289e8 100644
--- a/src/tests/gl_tests/BufferDataTest.cpp
+++ b/src/tests/gl_tests/BufferDataTest.cpp
@@ -31,10 +31,8 @@
         mAttribLocation = -1;
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(attribute vec4 position;
 attribute float in_attrib;
 varying float v_attrib;
@@ -69,12 +67,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mBuffer);
         glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mBuffer;
@@ -233,10 +229,8 @@
         setConfigDepthBits(24);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(attribute vec3 in_attrib;
 varying vec3 v_attrib;
 void main()
@@ -273,13 +267,11 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(2, mBuffers);
         glDeleteBuffers(1, &mElementBuffer);
         glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mBuffers[2];
diff --git a/src/tests/gl_tests/BuiltinVariableTest.cpp b/src/tests/gl_tests/BuiltinVariableTest.cpp
index fb68452..6da7875 100644
--- a/src/tests/gl_tests/BuiltinVariableTest.cpp
+++ b/src/tests/gl_tests/BuiltinVariableTest.cpp
@@ -26,10 +26,8 @@
         setConfigDepthBits(24);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             "#version 300 es\n"
             "precision highp float;\n"
@@ -69,14 +67,12 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mPositionBuffer);
         glDeleteBuffers(1, &mExpectedIdBuffer);
         glDeleteBuffers(1, &mIndexBuffer);
         glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
     }
 
     // Renders a primitive using the specified mode, each vertex color will
@@ -204,10 +200,8 @@
 class BuiltinVariableFragDepthClampingFloatRBOTest : public ANGLETest
 {
   protected:
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         // Writes a fixed detph value and green.
         // Section 15.2.3 of the GL 4.5 specification says that conversion is not
         // done but clamping is so the output depth should be in [0.0, 1.0]
@@ -247,12 +241,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     void CheckDepthWritten(float expectedDepth, float fsDepth)
     {
diff --git a/src/tests/gl_tests/ClearTest.cpp b/src/tests/gl_tests/ClearTest.cpp
index 7fadc16..34c8c6d 100644
--- a/src/tests/gl_tests/ClearTest.cpp
+++ b/src/tests/gl_tests/ClearTest.cpp
@@ -50,17 +50,15 @@
         setConfigStencilBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mFBOs.resize(2, 0);
         glGenFramebuffers(2, mFBOs.data());
 
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (!mFBOs.empty())
         {
@@ -71,8 +69,6 @@
         {
             glDeleteTextures(static_cast<GLsizei>(mTextures.size()), mTextures.data());
         }
-
-        ANGLETest::TearDown();
     }
 
     std::vector<GLuint> mFBOs;
@@ -252,10 +248,8 @@
 class VulkanClearTest : public MaskedScissoredClearTestBase
 {
   protected:
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETestWithParam::SetUp();
-
         glBindTexture(GL_TEXTURE_2D, mColorTexture);
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth(), getWindowHeight(), 0, GL_RGBA,
                      GL_UNSIGNED_BYTE, nullptr);
diff --git a/src/tests/gl_tests/ColorMaskTest.cpp b/src/tests/gl_tests/ColorMaskTest.cpp
index 671e72d..6075cf6 100644
--- a/src/tests/gl_tests/ColorMaskTest.cpp
+++ b/src/tests/gl_tests/ColorMaskTest.cpp
@@ -25,22 +25,15 @@
         setConfigDepthBits(24);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
         ASSERT_NE(0u, mProgram) << "shader compilation failed.";
 
         mColorUniform = glGetUniformLocation(mProgram, essl1_shaders::ColorUniform());
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram     = 0;
     GLint mColorUniform = -1;
diff --git a/src/tests/gl_tests/CopyCompressedTextureTest.cpp b/src/tests/gl_tests/CopyCompressedTextureTest.cpp
index 4c96d2b..d2c8915 100644
--- a/src/tests/gl_tests/CopyCompressedTextureTest.cpp
+++ b/src/tests/gl_tests/CopyCompressedTextureTest.cpp
@@ -24,10 +24,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenTextures(2, mTextures);
 
         constexpr char kVS[] =
@@ -59,12 +57,10 @@
         }
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(2, mTextures);
         glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
     }
 
     bool checkExtensions() const
diff --git a/src/tests/gl_tests/CopyTexImageTest.cpp b/src/tests/gl_tests/CopyTexImageTest.cpp
index 511bcf7..e4ce66b 100644
--- a/src/tests/gl_tests/CopyTexImageTest.cpp
+++ b/src/tests/gl_tests/CopyTexImageTest.cpp
@@ -23,10 +23,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             "precision highp float;\n"
             "attribute vec4 position;\n"
@@ -59,12 +57,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mTextureProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mTextureProgram); }
 
     void initializeResources(GLenum format, GLenum type)
     {
diff --git a/src/tests/gl_tests/CopyTexture3DTest.cpp b/src/tests/gl_tests/CopyTexture3DTest.cpp
index b97a2d2..f9a71db 100644
--- a/src/tests/gl_tests/CopyTexture3DTest.cpp
+++ b/src/tests/gl_tests/CopyTexture3DTest.cpp
@@ -26,10 +26,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         const char *vertexShaderSource   = getVertexShaderSource();
         const char *fragmentShaderSource = getFragmentShaderSource();
 
@@ -53,8 +51,6 @@
                "}\n";
     }
 
-    void TearDown() override { ANGLETest::TearDown(); }
-
     bool checkExtensions() const
     {
         if (!IsGLExtensionEnabled("GL_ANGLE_copy_texture_3d"))
diff --git a/src/tests/gl_tests/CopyTextureTest.cpp b/src/tests/gl_tests/CopyTextureTest.cpp
index 2f1fac5..86e10d4 100644
--- a/src/tests/gl_tests/CopyTextureTest.cpp
+++ b/src/tests/gl_tests/CopyTextureTest.cpp
@@ -26,10 +26,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenTextures(2, mTextures);
         glBindTexture(GL_TEXTURE_2D, mTextures[1]);
 
@@ -52,12 +50,10 @@
         }
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(2, mTextures);
         glDeleteFramebuffers(1, &mFramebuffer);
-
-        ANGLETest::TearDown();
     }
 
     bool checkExtensions() const
@@ -210,10 +206,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETestWithParam::SetUp();
-
         glGenTextures(2, mTextures);
         glBindTexture(GL_TEXTURE_2D, mTextures[1]);
 
@@ -236,12 +230,10 @@
         }
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(2, mTextures);
         glDeleteFramebuffers(1, &mFramebuffer);
-
-        ANGLETestWithParam::TearDown();
     }
 
     bool checkExtensions(GLenum sourceFormat, GLenum destFormat) const
diff --git a/src/tests/gl_tests/CubeMapTextureTest.cpp b/src/tests/gl_tests/CubeMapTextureTest.cpp
index 018c3ce..bbf9b81 100644
--- a/src/tests/gl_tests/CubeMapTextureTest.cpp
+++ b/src/tests/gl_tests/CubeMapTextureTest.cpp
@@ -21,10 +21,8 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
         if (mProgram == 0)
         {
@@ -45,12 +43,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram;
     GLint mColorLocation;
diff --git a/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp b/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp
index 7cc5e39..7c4ec33 100644
--- a/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp
+++ b/src/tests/gl_tests/D3D11EmulatedIndexedBufferTest.cpp
@@ -26,9 +26,8 @@
 class D3D11EmulatedIndexedBufferTest : public ANGLETest
 {
   protected:
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
         ASSERT_EQ(EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, GetParam().getRenderer());
 
         mContext                 = static_cast<gl::Context *>(getEGLWindow()->getContext());
@@ -56,11 +55,7 @@
         }
     }
 
-    void TearDown() override
-    {
-        SafeDelete(mSourceBuffer);
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { SafeDelete(mSourceBuffer); }
 
     void createMappableCompareBufferFromEmulatedBuffer(ID3D11Buffer *sourceBuffer,
                                                        GLuint size,
diff --git a/src/tests/gl_tests/D3DImageFormatConversionTest.cpp b/src/tests/gl_tests/D3DImageFormatConversionTest.cpp
index b2193cc..5ca24c7 100644
--- a/src/tests/gl_tests/D3DImageFormatConversionTest.cpp
+++ b/src/tests/gl_tests/D3DImageFormatConversionTest.cpp
@@ -28,10 +28,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -55,12 +53,7 @@
         mTexture2DUniformLocation = glGetUniformLocation(m2DProgram, "tex");
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(m2DProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(m2DProgram); }
 
     // Uses ColorStructType::writeColor to populate initial data for a texture, pass it to
     // glTexImage2D, then render with it. The resulting colors should match the colors passed into
diff --git a/src/tests/gl_tests/D3DTextureTest.cpp b/src/tests/gl_tests/D3DTextureTest.cpp
index b786a1a..a42857b 100644
--- a/src/tests/gl_tests/D3DTextureTest.cpp
+++ b/src/tests/gl_tests/D3DTextureTest.cpp
@@ -33,10 +33,8 @@
         setConfigStencilBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             R"(precision highp float;
             attribute vec4 position;
@@ -123,7 +121,7 @@
         }
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mTextureProgram);
 
@@ -141,8 +139,6 @@
             mD3D9Device->Release();
             mD3D9Device = nullptr;
         }
-
-        ANGLETest::TearDown();
     }
 
     EGLSurface createD3D11PBuffer(size_t width,
diff --git a/src/tests/gl_tests/DXT1CompressedTextureTest.cpp b/src/tests/gl_tests/DXT1CompressedTextureTest.cpp
index 7149789..5dfc8a4 100644
--- a/src/tests/gl_tests/DXT1CompressedTextureTest.cpp
+++ b/src/tests/gl_tests/DXT1CompressedTextureTest.cpp
@@ -24,10 +24,8 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -59,12 +57,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
-    {
-        glDeleteProgram(mTextureProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mTextureProgram); }
 
     GLuint mTextureProgram;
     GLint mTextureUniformLocation;
diff --git a/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp b/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp
index bb3fe16..7ec9a80 100644
--- a/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp
+++ b/src/tests/gl_tests/DXTSRGBCompressedTextureTest.cpp
@@ -31,10 +31,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             "precision highp float;\n"
             "attribute vec4 position;\n"
@@ -62,12 +60,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mTextureProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mTextureProgram); }
 
     void runTestChecks(const TestCase &test)
     {
diff --git a/src/tests/gl_tests/DebugTest.cpp b/src/tests/gl_tests/DebugTest.cpp
index 906da4e..39d295b 100644
--- a/src/tests/gl_tests/DebugTest.cpp
+++ b/src/tests/gl_tests/DebugTest.cpp
@@ -26,10 +26,8 @@
         setDebugEnabled(true);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mDebugExtensionAvailable = IsGLExtensionEnabled("GL_KHR_debug");
         if (mDebugExtensionAvailable)
         {
diff --git a/src/tests/gl_tests/DepthStencilFormatsTest.cpp b/src/tests/gl_tests/DepthStencilFormatsTest.cpp
index 6304f44..78aff7e 100644
--- a/src/tests/gl_tests/DepthStencilFormatsTest.cpp
+++ b/src/tests/gl_tests/DepthStencilFormatsTest.cpp
@@ -64,10 +64,8 @@
         return (glGetError() == GL_NO_ERROR);
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -100,12 +98,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteTextures(1, &mTexture);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
diff --git a/src/tests/gl_tests/DepthStencilTest.cpp b/src/tests/gl_tests/DepthStencilTest.cpp
index 65d1ba3..633d001 100644
--- a/src/tests/gl_tests/DepthStencilTest.cpp
+++ b/src/tests/gl_tests/DepthStencilTest.cpp
@@ -33,10 +33,8 @@
         setConfigStencilBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glBindTexture(GL_TEXTURE_2D, mColorTexture);
         glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, getWindowWidth(), getWindowHeight(), 0, GL_RGBA,
                      GL_UNSIGNED_BYTE, nullptr);
@@ -72,8 +70,6 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override { ANGLETest::TearDown(); }
-
     void bindColorStencilFBO()
     {
         glBindFramebuffer(GL_FRAMEBUFFER, mColorStencilFBO);
diff --git a/src/tests/gl_tests/DifferentStencilMasksTest.cpp b/src/tests/gl_tests/DifferentStencilMasksTest.cpp
index 028dfe9..57de47c 100644
--- a/src/tests/gl_tests/DifferentStencilMasksTest.cpp
+++ b/src/tests/gl_tests/DifferentStencilMasksTest.cpp
@@ -31,10 +31,8 @@
         setWebGLCompatibilityEnabled(true);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Zero(), essl1_shaders::fs::Blue());
         ASSERT_NE(0u, mProgram);
 
@@ -42,13 +40,11 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDisable(GL_STENCIL_TEST);
         if (mProgram != 0)
             glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
diff --git a/src/tests/gl_tests/DrawBuffersTest.cpp b/src/tests/gl_tests/DrawBuffersTest.cpp
index 87cf4bd..4380e86 100644
--- a/src/tests/gl_tests/DrawBuffersTest.cpp
+++ b/src/tests/gl_tests/DrawBuffersTest.cpp
@@ -23,13 +23,11 @@
         setConfigDepthBits(24);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteFramebuffers(1, &mFBO);
         glDeleteFramebuffers(1, &mReadFramebuffer);
         glDeleteTextures(4, mTextures);
-
-        ANGLETest::TearDown();
     }
 
     // We must call a different DrawBuffers method depending on extension support. Use this
diff --git a/src/tests/gl_tests/ETCTextureTest.cpp b/src/tests/gl_tests/ETCTextureTest.cpp
index d270b6c..0596ebb 100644
--- a/src/tests/gl_tests/ETCTextureTest.cpp
+++ b/src/tests/gl_tests/ETCTextureTest.cpp
@@ -27,20 +27,13 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenTextures(1, &mTexture);
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteTextures(1, &mTexture);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteTextures(1, &mTexture); }
 
     GLuint mTexture;
 };
diff --git a/src/tests/gl_tests/ErrorMessages.cpp b/src/tests/gl_tests/ErrorMessages.cpp
index 552ff62..ac159dd 100644
--- a/src/tests/gl_tests/ErrorMessages.cpp
+++ b/src/tests/gl_tests/ErrorMessages.cpp
@@ -68,8 +68,6 @@
         setConfigAlphaBits(8);
         setWebGLCompatibilityEnabled(true);
     }
-
-    void SetUp() override { ANGLETest::SetUp(); }
 };
 
 // Verify functionality of WebGL specific errors using KHR_debug
diff --git a/src/tests/gl_tests/FloatingPointSurfaceTest.cpp b/src/tests/gl_tests/FloatingPointSurfaceTest.cpp
index 1157784..92f64e4 100644
--- a/src/tests/gl_tests/FloatingPointSurfaceTest.cpp
+++ b/src/tests/gl_tests/FloatingPointSurfaceTest.cpp
@@ -24,10 +24,8 @@
         setConfigComponentType(EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kFS[] =
             "precision highp float;\n"
             "void main()\n"
@@ -41,12 +39,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram;
 };
diff --git a/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp b/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp
index 0736719..40727a7 100644
--- a/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp
+++ b/src/tests/gl_tests/FramebufferMixedSamplesTest.cpp
@@ -33,10 +33,8 @@
                IsGLExtensionEnabled("GL_OES_rgb8_rgba8");
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
 
         GLuint position_loc = glGetAttribLocation(mProgram, essl1_shaders::PositionAttrib());
@@ -56,14 +54,12 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mVBO);
         glDeleteProgram(mProgram);
 
         ASSERT_GL_NO_ERROR();
-
-        ANGLETest::TearDown();
     }
 
     void prepareForDraw(SetupFBOType fbo_type)
diff --git a/src/tests/gl_tests/FramebufferMultiviewTest.cpp b/src/tests/gl_tests/FramebufferMultiviewTest.cpp
index bffa7e5..c2ba006 100644
--- a/src/tests/gl_tests/FramebufferMultiviewTest.cpp
+++ b/src/tests/gl_tests/FramebufferMultiviewTest.cpp
@@ -38,7 +38,7 @@
   protected:
     FramebufferMultiviewLayeredClearTest() : mMultiviewFBO(0), mDepthTex(0), mDepthStencilTex(0) {}
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mMultiviewFBO != 0)
         {
@@ -67,7 +67,7 @@
             glDeleteTextures(1, &mDepthTex);
             mDepthTex = 0u;
         }
-        MultiviewTest::TearDown();
+        MultiviewTest::testTearDown();
     }
 
     void initializeFBOs(int width,
diff --git a/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp b/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp
index 5cb7487..b6aa154 100644
--- a/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp
+++ b/src/tests/gl_tests/FramebufferRenderMipmapTest.cpp
@@ -21,10 +21,8 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
         if (mProgram == 0)
         {
@@ -45,12 +43,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram;
     GLint mColorLocation;
diff --git a/src/tests/gl_tests/FramebufferTest.cpp b/src/tests/gl_tests/FramebufferTest.cpp
index 0fa3182..e4d4049 100644
--- a/src/tests/gl_tests/FramebufferTest.cpp
+++ b/src/tests/gl_tests/FramebufferTest.cpp
@@ -148,18 +148,14 @@
         EXPECT_GL_NO_ERROR();
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenFramebuffers(1, &mFramebuffer);
         glBindFramebuffer(GL_FRAMEBUFFER, mFramebuffer);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
-        ANGLETest::TearDown();
-
         if (mTexture != 0)
         {
             glDeleteTextures(1, &mTexture);
diff --git a/src/tests/gl_tests/GLSLTest.cpp b/src/tests/gl_tests/GLSLTest.cpp
index d7fb96e..b30fe31 100644
--- a/src/tests/gl_tests/GLSLTest.cpp
+++ b/src/tests/gl_tests/GLSLTest.cpp
@@ -26,8 +26,6 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp() { ANGLETest::SetUp(); }
-
     std::string GenerateVaryingType(GLint vectorSize)
     {
         char varyingType[10];
@@ -499,14 +497,10 @@
 };
 
 class GLSLTest_ES3 : public GLSLTest
-{
-    void SetUp() override { ANGLETest::SetUp(); }
-};
+{};
 
 class GLSLTest_ES31 : public GLSLTest
-{
-    void SetUp() override { ANGLETest::SetUp(); }
-};
+{};
 
 std::string BuillBigInitialStackShader(int length)
 {
diff --git a/src/tests/gl_tests/ImageTest.cpp b/src/tests/gl_tests/ImageTest.cpp
index fb3cce6..ef28cc2 100644
--- a/src/tests/gl_tests/ImageTest.cpp
+++ b/src/tests/gl_tests/ImageTest.cpp
@@ -40,10 +40,8 @@
         setConfigDepthBits(24);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             "precision highp float;\n"
             "attribute vec4 position;\n"
@@ -133,13 +131,11 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mTextureProgram);
         glDeleteProgram(mTextureExternalProgram);
         glDeleteProgram(mTextureExternalESSL3Program);
-
-        ANGLETest::TearDown();
     }
 
     void createEGLImage2DTextureSource(size_t width,
diff --git a/src/tests/gl_tests/IncompleteTextureTest.cpp b/src/tests/gl_tests/IncompleteTextureTest.cpp
index a2b24ed..73ed876 100644
--- a/src/tests/gl_tests/IncompleteTextureTest.cpp
+++ b/src/tests/gl_tests/IncompleteTextureTest.cpp
@@ -24,10 +24,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -56,12 +54,7 @@
         mTextureUniformLocation = glGetUniformLocation(mProgram, "tex");
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram;
     GLint mTextureUniformLocation;
diff --git a/src/tests/gl_tests/IndexBufferOffsetTest.cpp b/src/tests/gl_tests/IndexBufferOffsetTest.cpp
index cc9575b..52bfbcd 100644
--- a/src/tests/gl_tests/IndexBufferOffsetTest.cpp
+++ b/src/tests/gl_tests/IndexBufferOffsetTest.cpp
@@ -24,10 +24,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             R"(precision highp float;
             attribute vec2 position;
@@ -61,12 +59,11 @@
         glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, mIndexBuffer);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mVertexBuffer);
         glDeleteBuffers(1, &mIndexBuffer);
         glDeleteProgram(mProgram);
-        ANGLETest::TearDown();
     }
 
     void runTest(GLenum type, int typeWidth, void *indexData)
diff --git a/src/tests/gl_tests/IndexedPointsTest.cpp b/src/tests/gl_tests/IndexedPointsTest.cpp
index 27bc2ff..22387b7 100644
--- a/src/tests/gl_tests/IndexedPointsTest.cpp
+++ b/src/tests/gl_tests/IndexedPointsTest.cpp
@@ -27,10 +27,8 @@
 
     float getIndexPositionY(size_t idx) { return (idx == 2 || idx == 3) ? -0.5f : 0.5f; }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec2 position;
 
@@ -100,7 +98,7 @@
         glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), &indices[0], GL_STATIC_DRAW);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mVertexBuffer);
         glDeleteBuffers(1, &mIndexBuffer);
@@ -108,7 +106,6 @@
 
         glDeleteBuffers(1, &mVertexWithColorBuffer);
         glDeleteProgram(mVertexWithColorBufferProgram);
-        ANGLETest::TearDown();
     }
 
     void runTest(GLuint firstIndex, bool useVertexBufferWithColor = false)
diff --git a/src/tests/gl_tests/InstancingTest.cpp b/src/tests/gl_tests/InstancingTest.cpp
index c555299..e65a6f4 100644
--- a/src/tests/gl_tests/InstancingTest.cpp
+++ b/src/tests/gl_tests/InstancingTest.cpp
@@ -46,19 +46,15 @@
         setConfigAlphaBits(8);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mInstanceBuffer);
         glDeleteProgram(mProgram[0]);
         glDeleteProgram(mProgram[1]);
-
-        ANGLETest::TearDown();
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         for (unsigned i = 0; i < kMaxDrawn; ++i)
         {
             mInstanceData[i] = i * kDrawSize;
diff --git a/src/tests/gl_tests/LineLoopTest.cpp b/src/tests/gl_tests/LineLoopTest.cpp
index 4b27ac6..829165b 100644
--- a/src/tests/gl_tests/LineLoopTest.cpp
+++ b/src/tests/gl_tests/LineLoopTest.cpp
@@ -23,10 +23,8 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
         if (mProgram == 0)
         {
@@ -43,12 +41,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     void runTest(GLenum indexType, GLuint indexBuffer, const void *indexPtr)
     {
diff --git a/src/tests/gl_tests/MaxTextureSizeTest.cpp b/src/tests/gl_tests/MaxTextureSizeTest.cpp
index 33bae35..dfcd199 100644
--- a/src/tests/gl_tests/MaxTextureSizeTest.cpp
+++ b/src/tests/gl_tests/MaxTextureSizeTest.cpp
@@ -21,10 +21,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -66,12 +64,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mTextureProgram);
         glDeleteProgram(mBlueProgram);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mTextureProgram;
diff --git a/src/tests/gl_tests/MipmapTest.cpp b/src/tests/gl_tests/MipmapTest.cpp
index e491209..882067a 100644
--- a/src/tests/gl_tests/MipmapTest.cpp
+++ b/src/tests/gl_tests/MipmapTest.cpp
@@ -123,10 +123,8 @@
         ASSERT_NE(0u, mCubeProgram);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         setUp2DProgram();
 
         setUpCubeProgram();
@@ -166,15 +164,13 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(m2DProgram);
         glDeleteProgram(mCubeProgram);
         glDeleteFramebuffers(1, &mOffscreenFramebuffer);
         glDeleteTextures(1, &mTexture2D);
         glDeleteTextures(1, &mTextureCube);
-
-        ANGLETest::TearDown();
     }
 
     std::vector<GLubyte> createRGBInitData(GLint width, GLint height, GLint r, GLint g, GLint b)
@@ -359,10 +355,8 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenTextures(1, &mTexture);
         ASSERT_GL_NO_ERROR();
 
@@ -372,7 +366,7 @@
         setUpCubeProgram();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTexture);
 
@@ -380,8 +374,6 @@
         glDeleteProgram(m3DProgram);
         glDeleteProgram(m2DProgram);
         glDeleteProgram(mCubeProgram);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mTexture;
diff --git a/src/tests/gl_tests/MultisampleCompatibilityTest.cpp b/src/tests/gl_tests/MultisampleCompatibilityTest.cpp
index f382188..404a075 100644
--- a/src/tests/gl_tests/MultisampleCompatibilityTest.cpp
+++ b/src/tests/gl_tests/MultisampleCompatibilityTest.cpp
@@ -32,10 +32,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
 
         GLuint position_loc = glGetAttribLocation(mProgram, essl1_shaders::PositionAttrib());
@@ -52,12 +50,10 @@
         glVertexAttribPointer(position_loc, 2, GL_FLOAT, GL_FALSE, 0, 0);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mVBO);
         glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
     }
 
     void prepareForDraw()
diff --git a/src/tests/gl_tests/MultiviewDrawTest.cpp b/src/tests/gl_tests/MultiviewDrawTest.cpp
index 003cea3..40390b2 100644
--- a/src/tests/gl_tests/MultiviewDrawTest.cpp
+++ b/src/tests/gl_tests/MultiviewDrawTest.cpp
@@ -241,13 +241,26 @@
 {
   protected:
     MultiviewRenderTest() : MultiviewFramebufferTestBase(GetParam(), GetParam().mSamples) {}
-    void SetUp() override { MultiviewFramebufferTestBase::FramebufferTestSetUp(); }
-    void TearDown() override { MultiviewFramebufferTestBase::FramebufferTestTearDown(); }
 
     void overrideWorkaroundsD3D(WorkaroundsD3D *workarounds) override
     {
         workarounds->selectViewInGeometryShader = GetParam().mForceUseGeometryShaderOnD3D;
     }
+
+    virtual void testSetUp() {}
+    virtual void testTearDown() {}
+
+  private:
+    void SetUp() override
+    {
+        MultiviewFramebufferTestBase::FramebufferTestSetUp();
+        testSetUp();
+    }
+    void TearDown() override
+    {
+        testTearDown();
+        MultiviewFramebufferTestBase::FramebufferTestTearDown();
+    }
 };
 
 constexpr char kDualViewVSSource[] = R"(#version 300 es
@@ -274,10 +287,8 @@
   protected:
     MultiviewRenderDualViewTest() : mProgram(0u) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        MultiviewRenderTest::SetUp();
-
         if (!requestMultiviewExtension(isMultisampled()))
         {
             return;
@@ -290,15 +301,13 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram != 0u)
         {
             glDeleteProgram(mProgram);
             mProgram = 0u;
         }
-
-        MultiviewRenderTest::TearDown();
     }
 
     void checkOutput()
@@ -395,20 +404,15 @@
   protected:
     MultiviewRenderPrimitiveTest() : mVBO(0u) {}
 
-    void SetUp() override
-    {
-        MultiviewRenderTest::SetUp();
-        glGenBuffers(1, &mVBO);
-    }
+    void testSetUp() override { glGenBuffers(1, &mVBO); }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mVBO)
         {
             glDeleteBuffers(1, &mVBO);
             mVBO = 0u;
         }
-        MultiviewRenderTest::TearDown();
     }
 
     void setupGeometry(const std::vector<Vector2> &vertexData)
diff --git a/src/tests/gl_tests/OcclusionQueriesTest.cpp b/src/tests/gl_tests/OcclusionQueriesTest.cpp
index 05b7614..5b25fea 100644
--- a/src/tests/gl_tests/OcclusionQueriesTest.cpp
+++ b/src/tests/gl_tests/OcclusionQueriesTest.cpp
@@ -25,20 +25,13 @@
         setConfigDepthBits(24);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::Red());
         ASSERT_NE(0u, mProgram);
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram;
     RNG mRNG;
diff --git a/src/tests/gl_tests/PBOExtensionTest.cpp b/src/tests/gl_tests/PBOExtensionTest.cpp
index 8ebf19a..10f3ae0 100644
--- a/src/tests/gl_tests/PBOExtensionTest.cpp
+++ b/src/tests/gl_tests/PBOExtensionTest.cpp
@@ -42,10 +42,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         if (IsGLExtensionEnabled("NV_pixel_buffer_object"))
         {
             glGenBuffers(1, &mPBO);
@@ -64,10 +62,8 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
-        ANGLETest::TearDown();
-
         glDeleteBuffers(1, &mPBO);
         glDeleteProgram(mProgram);
     }
diff --git a/src/tests/gl_tests/PackUnpackTest.cpp b/src/tests/gl_tests/PackUnpackTest.cpp
index fd3e1cc..fedac73 100644
--- a/src/tests/gl_tests/PackUnpackTest.cpp
+++ b/src/tests/gl_tests/PackUnpackTest.cpp
@@ -27,10 +27,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         // Fragment Shader source
         constexpr char kSNormFS[] = R"(#version 300 es
 precision mediump float;
@@ -93,15 +91,13 @@
         glClearBufferfv(GL_COLOR, 0, color);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mOffscreenTexture2D);
         glDeleteFramebuffers(1, &mOffscreenFramebuffer);
         glDeleteProgram(mSNormProgram);
         glDeleteProgram(mUNormProgram);
         glDeleteProgram(mHalfProgram);
-
-        ANGLETest::TearDown();
     }
 
     void compareBeforeAfter(GLuint program, float input1, float input2)
diff --git a/src/tests/gl_tests/ParallelShaderCompileTest.cpp b/src/tests/gl_tests/ParallelShaderCompileTest.cpp
index 501ba48..5a505f1 100644
--- a/src/tests/gl_tests/ParallelShaderCompileTest.cpp
+++ b/src/tests/gl_tests/ParallelShaderCompileTest.cpp
@@ -37,10 +37,6 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override { ANGLETest::SetUp(); }
-
-    void TearDown() override { ANGLETest::TearDown(); }
-
     bool ensureParallelShaderCompileExtensionAvailable()
     {
         if (IsGLExtensionRequestable("GL_KHR_parallel_shader_compile"))
diff --git a/src/tests/gl_tests/PathRenderingTest.cpp b/src/tests/gl_tests/PathRenderingTest.cpp
index 8b560c5..291ef06 100644
--- a/src/tests/gl_tests/PathRenderingTest.cpp
+++ b/src/tests/gl_tests/PathRenderingTest.cpp
@@ -1055,20 +1055,17 @@
 
     bool isApplicable() const { return IsGLExtensionEnabled("GL_CHROMIUM_path_rendering"); }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram)
         {
             glDeleteProgram(mProgram);
             ASSERT_GL_NO_ERROR();
         }
-
-        ANGLETest::TearDown();
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
         mBindUniformLocation = reinterpret_cast<PFNGLBINDUNIFORMLOCATIONCHROMIUMPROC>(
             eglGetProcAddress("glBindUniformLocationCHROMIUM"));
     }
diff --git a/src/tests/gl_tests/PbufferTest.cpp b/src/tests/gl_tests/PbufferTest.cpp
index 1c21ce8..5ebabda 100644
--- a/src/tests/gl_tests/PbufferTest.cpp
+++ b/src/tests/gl_tests/PbufferTest.cpp
@@ -23,10 +23,8 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             R"(precision highp float;
             attribute vec4 position;
@@ -93,14 +91,12 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    virtual void TearDown()
+    void testTearDown() override
     {
         glDeleteProgram(mTextureProgram);
 
         EGLWindow *window = getEGLWindow();
         eglDestroySurface(window->getDisplay(), mPbuffer);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mTextureProgram;
diff --git a/src/tests/gl_tests/PointSpritesTest.cpp b/src/tests/gl_tests/PointSpritesTest.cpp
index 5119052..0f9a373 100644
--- a/src/tests/gl_tests/PointSpritesTest.cpp
+++ b/src/tests/gl_tests/PointSpritesTest.cpp
@@ -40,8 +40,6 @@
         setConfigAlphaBits(8);
     }
 
-    virtual void SetUp() { ANGLETest::SetUp(); }
-
     float s2p(float s) { return (s + 1.0f) * 0.5f * (GLfloat)windowWidth; }
 
     void testPointCoordAndPointSizeCompliance(GLProgram program)
diff --git a/src/tests/gl_tests/ProgramBinaryTest.cpp b/src/tests/gl_tests/ProgramBinaryTest.cpp
index cfd1115..ab4b612 100644
--- a/src/tests/gl_tests/ProgramBinaryTest.cpp
+++ b/src/tests/gl_tests/ProgramBinaryTest.cpp
@@ -33,10 +33,8 @@
         forceNewDisplay();
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::Red());
         if (mProgram == 0)
         {
@@ -51,11 +49,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteBuffers(1, &mBuffer);
-        ANGLETest::TearDown();
     }
 
     GLint getAvailableProgramBinaryFormatCount() const
@@ -227,8 +224,7 @@
     ASSERT_GL_NO_ERROR();
 
     // Shutdown and restart GL entirely.
-    TearDown();
-    SetUp();
+    recreateTestFixture();
 
     ANGLE_GL_BINARY_OES_PROGRAM(binaryProgram, binaryBlob, binaryFormat);
     ASSERT_GL_NO_ERROR();
@@ -565,10 +561,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(#version 300 es
 in vec4 inputAttribute;
 out vec4 outputVarying;
@@ -598,12 +592,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLint getAvailableProgramBinaryFormatCount() const
     {
diff --git a/src/tests/gl_tests/ProvokingVertexTest.cpp b/src/tests/gl_tests/ProvokingVertexTest.cpp
index 148aa21..05840a6 100644
--- a/src/tests/gl_tests/ProvokingVertexTest.cpp
+++ b/src/tests/gl_tests/ProvokingVertexTest.cpp
@@ -36,10 +36,8 @@
         setConfigDepthBits(24);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             "#version 300 es\n"
             "in int intAttrib;\n"
@@ -78,7 +76,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram != 0)
         {
@@ -109,8 +107,6 @@
             glDeleteBuffers(1, &mBuffer);
             mBuffer = 0;
         }
-
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
diff --git a/src/tests/gl_tests/ReadPixelsTest.cpp b/src/tests/gl_tests/ReadPixelsTest.cpp
index 649ef3b..069b749 100644
--- a/src/tests/gl_tests/ReadPixelsTest.cpp
+++ b/src/tests/gl_tests/ReadPixelsTest.cpp
@@ -66,10 +66,8 @@
   protected:
     ReadPixelsPBOTest() : mPBO(0), mTexture(0), mFBO(0) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenBuffers(1, &mPBO);
         glGenFramebuffers(1, &mFBO);
 
@@ -94,13 +92,11 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mPBO);
         glDeleteTextures(1, &mTexture);
         glDeleteFramebuffers(1, &mFBO);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mPBO     = 0;
@@ -282,9 +278,9 @@
   protected:
     ReadPixelsPBODrawTest() : mProgram(0), mPositionVBO(0) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ReadPixelsPBOTest::SetUp();
+        ReadPixelsPBOTest::testSetUp();
 
         constexpr char kVS[] =
             "attribute vec4 aTest; attribute vec2 aPosition; varying vec4 vTest;\n"
@@ -311,11 +307,11 @@
         glBindBuffer(GL_ARRAY_BUFFER, 0);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteBuffers(1, &mPositionVBO);
-        ReadPixelsPBOTest::TearDown();
+        ReadPixelsPBOTest::testTearDown();
     }
 
     GLuint mProgram;
@@ -376,10 +372,8 @@
   protected:
     ReadPixelsMultisampleTest() : mFBO(0), mRBO(0), mPBO(0) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenFramebuffers(1, &mFBO);
         glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
 
@@ -395,10 +389,8 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
-        ANGLETest::TearDown();
-
         glDeleteFramebuffers(1, &mFBO);
         glDeleteRenderbuffers(1, &mRBO);
         glDeleteBuffers(1, &mPBO);
@@ -455,21 +447,17 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenTextures(1, &mTexture);
         glGenFramebuffers(1, &mFBO);
         glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteFramebuffers(1, &mFBO);
         glDeleteTextures(1, &mTexture);
-
-        ANGLETest::TearDown();
     }
 
     void initTexture(GLenum textureTarget,
@@ -667,10 +655,8 @@
   protected:
     ReadPixelsErrorTest() : mTexture(0), mFBO(0) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenTextures(1, &mTexture);
         glBindTexture(GL_TEXTURE_2D, mTexture);
         glTexStorage2D(GL_TEXTURE_2D, 1, GL_RGBA8, 4, 1);
@@ -683,10 +669,8 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
-        ANGLETest::TearDown();
-
         glDeleteTextures(1, &mTexture);
         glDeleteFramebuffers(1, &mFBO);
     }
diff --git a/src/tests/gl_tests/RenderbufferMultisampleTest.cpp b/src/tests/gl_tests/RenderbufferMultisampleTest.cpp
index 688a958..c72fdd5 100644
--- a/src/tests/gl_tests/RenderbufferMultisampleTest.cpp
+++ b/src/tests/gl_tests/RenderbufferMultisampleTest.cpp
@@ -27,21 +27,17 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenRenderbuffers(1, &mRenderbuffer);
 
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteRenderbuffers(1, &mRenderbuffer);
         mRenderbuffer = 0;
-
-        ANGLETest::TearDown();
     }
 
     GLuint mRenderbuffer = 0;
diff --git a/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp b/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp
index 7b2b95e..3629186 100644
--- a/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp
+++ b/src/tests/gl_tests/RobustBufferAccessBehaviorTest.cpp
@@ -34,11 +34,7 @@
         forceNewDisplay();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     bool initExtension()
     {
@@ -48,10 +44,7 @@
         {
             return false;
         }
-
-        ANGLETest::TearDown();
         setRobustAccess(true);
-        ANGLETest::SetUp();
         if (!IsGLExtensionEnabled("GL_KHR_robust_buffer_access_behavior"))
         {
             return false;
diff --git a/src/tests/gl_tests/SRGBFramebufferTest.cpp b/src/tests/gl_tests/SRGBFramebufferTest.cpp
index 9afb372..517e6c1 100644
--- a/src/tests/gl_tests/SRGBFramebufferTest.cpp
+++ b/src/tests/gl_tests/SRGBFramebufferTest.cpp
@@ -25,10 +25,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
         ASSERT_NE(0u, mProgram);
 
@@ -36,12 +34,7 @@
         ASSERT_NE(-1, mColorLocation);
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram      = 0;
     GLint mColorLocation = -1;
diff --git a/src/tests/gl_tests/SRGBTextureTest.cpp b/src/tests/gl_tests/SRGBTextureTest.cpp
index 9592723..b685295 100644
--- a/src/tests/gl_tests/SRGBTextureTest.cpp
+++ b/src/tests/gl_tests/SRGBTextureTest.cpp
@@ -23,10 +23,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             "precision highp float;\n"
             "attribute vec4 position;\n"
@@ -55,12 +53,7 @@
         ASSERT_NE(-1, mTextureLocation);
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLenum getSRGBA8TextureInternalFormat() const
     {
diff --git a/src/tests/gl_tests/SixteenBppTextureTest.cpp b/src/tests/gl_tests/SixteenBppTextureTest.cpp
index 4e18d62..d32a9d4 100644
--- a/src/tests/gl_tests/SixteenBppTextureTest.cpp
+++ b/src/tests/gl_tests/SixteenBppTextureTest.cpp
@@ -46,10 +46,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -73,12 +71,7 @@
         mTexture2DUniformLocation = glGetUniformLocation(m2DProgram, "tex");
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(m2DProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(m2DProgram); }
 
     void simpleValidationBase(GLuint tex)
     {
diff --git a/src/tests/gl_tests/StateChangeTest.cpp b/src/tests/gl_tests/StateChangeTest.cpp
index 60da74e..c7313ca 100644
--- a/src/tests/gl_tests/StateChangeTest.cpp
+++ b/src/tests/gl_tests/StateChangeTest.cpp
@@ -32,10 +32,8 @@
         setNoErrorEnabled(true);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenFramebuffers(1, &mFramebuffer);
         glGenTextures(2, mTextures.data());
         glGenRenderbuffers(1, &mRenderbuffer);
@@ -43,7 +41,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mFramebuffer != 0)
         {
@@ -58,8 +56,6 @@
         }
 
         glDeleteRenderbuffers(1, &mRenderbuffer);
-
-        ANGLETest::TearDown();
     }
 
     GLuint mFramebuffer           = 0;
@@ -607,9 +603,9 @@
   protected:
     StateChangeRenderTest() : mProgram(0), mRenderbuffer(0) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        StateChangeTest::SetUp();
+        StateChangeTest::testSetUp();
 
         constexpr char kVS[] =
             "attribute vec2 position;\n"
@@ -628,12 +624,12 @@
         glGenRenderbuffers(1, &mRenderbuffer);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteRenderbuffers(1, &mRenderbuffer);
 
-        StateChangeTest::TearDown();
+        StateChangeTest::testTearDown();
     }
 
     void setUniformColor(const GLColor &color)
@@ -1279,10 +1275,8 @@
 class SimpleStateChangeTestES31 : public SimpleStateChangeTest
 {
   protected:
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenFramebuffers(1, &mFramebuffer);
         glGenTextures(1, &mTexture);
 
@@ -1312,7 +1306,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mFramebuffer != 0)
         {
@@ -1326,7 +1320,6 @@
             mTexture = 0;
         }
         glDeleteProgram(mProgram);
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
diff --git a/src/tests/gl_tests/SwizzleTest.cpp b/src/tests/gl_tests/SwizzleTest.cpp
index 35ff866..1196ade 100644
--- a/src/tests/gl_tests/SwizzleTest.cpp
+++ b/src/tests/gl_tests/SwizzleTest.cpp
@@ -60,10 +60,8 @@
         }
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(precision highp float;
 attribute vec4 position;
 varying vec2 texcoord;
@@ -93,12 +91,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteTextures(1, &mTexture);
-
-        ANGLETest::TearDown();
     }
 
     template <typename T>
@@ -204,10 +200,8 @@
 class SwizzleIntegerTest : public SwizzleTest
 {
   protected:
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] =
             "#version 300 es\n"
             "precision highp float;\n"
diff --git a/src/tests/gl_tests/SyncQueriesTest.cpp b/src/tests/gl_tests/SyncQueriesTest.cpp
index a58219b..f911550 100644
--- a/src/tests/gl_tests/SyncQueriesTest.cpp
+++ b/src/tests/gl_tests/SyncQueriesTest.cpp
@@ -25,15 +25,13 @@
         setConfigDepthBits(24);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mQuery != 0)
         {
             glDeleteQueriesEXT(1, &mQuery);
             mQuery = 0;
         }
-
-        ANGLETest::TearDown();
     }
 
     GLuint mQuery = 0;
diff --git a/src/tests/gl_tests/TextureMultisampleTest.cpp b/src/tests/gl_tests/TextureMultisampleTest.cpp
index 6081605..539aacd 100644
--- a/src/tests/gl_tests/TextureMultisampleTest.cpp
+++ b/src/tests/gl_tests/TextureMultisampleTest.cpp
@@ -42,24 +42,20 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenFramebuffers(1, &mFramebuffer);
         glGenTextures(1, &mTexture);
 
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteFramebuffers(1, &mFramebuffer);
         mFramebuffer = 0;
         glDeleteTextures(1, &mTexture);
         mTexture = 0;
-
-        ANGLETest::TearDown();
     }
 
     void texStorageMultisample(GLenum target,
diff --git a/src/tests/gl_tests/TextureTest.cpp b/src/tests/gl_tests/TextureTest.cpp
index a4b292e..9de0ea0 100644
--- a/src/tests/gl_tests/TextureTest.cpp
+++ b/src/tests/gl_tests/TextureTest.cpp
@@ -72,20 +72,14 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void SetUp() override
-    {
-        ANGLETest::SetUp();
+    void testSetUp() override { setUpFramebuffer(); }
 
-        setUpFramebuffer();
-    }
-
-    void TearDown() override
+    void testTearDown() override
     {
         glBindFramebuffer(GL_FRAMEBUFFER, 0);
         glDeleteFramebuffers(1, &mFramebuffer);
         glDeleteTextures(1, &mFramebufferColorTexture);
         glDeleteProgram(mProgram);
-        ANGLETest::TearDown();
     }
 
     void setUpFramebuffer()
@@ -155,18 +149,18 @@
         ASSERT_NE(-1, mTexture2DUniformLocation);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
         mTexture2D = create2DTexture();
 
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTexture2D);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     // Tests CopyTexSubImage with floating point textures of various formats.
@@ -350,9 +344,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        Texture2DTest::SetUp();
+        Texture2DTest::testSetUp();
         setUpProgram();
     }
 };
@@ -389,9 +383,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        Texture2DTest::SetUp();
+        Texture2DTest::testSetUp();
         setUpProgram();
     }
 };
@@ -428,9 +422,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        Texture2DTest::SetUp();
+        Texture2DTest::testSetUp();
         setUpProgram();
     }
 };
@@ -456,9 +450,9 @@
             })";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        Texture2DTest::SetUp();
+        Texture2DTest::testSetUp();
 
         setUpProgram();
 
@@ -497,9 +491,9 @@
             })";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        Texture2DTest::SetUp();
+        Texture2DTest::testSetUp();
         setUpProgram();
     }
 };
@@ -530,9 +524,9 @@
             })";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
 
         glGenTextures(1, &mTextureCube);
         glBindTexture(GL_TEXTURE_CUBE_MAP, mTextureCube);
@@ -553,10 +547,10 @@
         ASSERT_NE(-1, mTextureCubeUniformLocation);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTextureCube);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     GLuint mTexture2D;
@@ -595,9 +589,9 @@
             })";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
 
         setUpProgram();
 
@@ -611,11 +605,11 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTexture2DA);
         glDeleteTextures(1, &mTexture2DB);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     void testSamplerArrayDraw()
@@ -705,9 +699,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
 
         setUpProgram();
 
@@ -718,10 +712,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &m2DArrayTexture);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     GLuint m2DArrayTexture;
@@ -755,9 +749,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
 
         setUpProgram();
 
@@ -771,11 +765,11 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTexture2DA);
         glDeleteTextures(1, &mTexture2DB);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     GLuint mTexture2DA;
@@ -814,9 +808,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
 
         glGenTextures(1, &mTexture3D);
 
@@ -826,10 +820,10 @@
         ASSERT_NE(-1, mTexture3DUniformLocation);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTexture3D);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     GLuint mTexture3D;
@@ -876,9 +870,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
 
         glGenTextures(1, &mTexture3D);
 
@@ -896,11 +890,11 @@
         ASSERT_NE(-1, mDepthRefUniformLocation);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTextureShadow);
         glDeleteTextures(1, &mTexture3D);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     GLuint mTextureShadow;
@@ -959,9 +953,9 @@
                "}\n";
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        TexCoordDrawTest::SetUp();
+        TexCoordDrawTest::testSetUp();
 
         glGenTextures(1, &mTexture2D);
         glGenTextures(1, &mTextureCube);
@@ -990,13 +984,13 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(1, &mTexture2D);
         glDeleteTextures(1, &mTextureCube);
         glDeleteTextures(1, &mTexture2DShadow);
         glDeleteTextures(1, &mTextureCubeShadow);
-        TexCoordDrawTest::TearDown();
+        TexCoordDrawTest::testTearDown();
     }
 
     GLuint mTexture2D;
@@ -3390,10 +3384,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &mMaxVertexTextures);
         glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &mMaxFragmentTextures);
         glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &mMaxCombinedTextures);
@@ -3401,7 +3393,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram != 0)
         {
@@ -3413,8 +3405,6 @@
                 glDeleteTextures(static_cast<GLsizei>(mTextures.size()), &mTextures[0]);
             }
         }
-
-        ANGLETest::TearDown();
     }
 
     void compileProgramWithTextureCounts(const std::string &vertexPrefix,
@@ -3703,9 +3693,9 @@
   protected:
     Texture2DNorm16TestES3() : Texture2DTestES3(), mTextures{0, 0, 0}, mFBO(0), mRenderbuffer(0) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        Texture2DTestES3::SetUp();
+        Texture2DTestES3::testSetUp();
 
         glActiveTexture(GL_TEXTURE0);
         glGenTextures(3, mTextures);
@@ -3724,13 +3714,13 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteTextures(3, mTextures);
         glDeleteFramebuffers(1, &mFBO);
         glDeleteRenderbuffers(1, &mRenderbuffer);
 
-        Texture2DTestES3::TearDown();
+        Texture2DTestES3::testTearDown();
     }
 
     void testNorm16Texture(GLint internalformat, GLenum format, GLenum type)
diff --git a/src/tests/gl_tests/TimerQueriesTest.cpp b/src/tests/gl_tests/TimerQueriesTest.cpp
index 1f399fc..e9cb613 100644
--- a/src/tests/gl_tests/TimerQueriesTest.cpp
+++ b/src/tests/gl_tests/TimerQueriesTest.cpp
@@ -28,10 +28,8 @@
         setConfigDepthBits(24);
     }
 
-    virtual void SetUp()
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kCostlyVS[] =
             "attribute highp vec4 position; varying highp vec4 testPos; void main(void)\n"
             "{\n"
@@ -57,11 +55,10 @@
         ASSERT_NE(0u, mProgramCostly) << "shader compilation failed.";
     }
 
-    virtual void TearDown()
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteProgram(mProgramCostly);
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
diff --git a/src/tests/gl_tests/TransformFeedbackTest.cpp b/src/tests/gl_tests/TransformFeedbackTest.cpp
index 1ba3719..e7e908d 100644
--- a/src/tests/gl_tests/TransformFeedbackTest.cpp
+++ b/src/tests/gl_tests/TransformFeedbackTest.cpp
@@ -28,10 +28,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenBuffers(1, &mTransformFeedbackBuffer);
         glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, mTransformFeedbackBuffer);
         glBufferData(GL_TRANSFORM_FEEDBACK_BUFFER, mTransformFeedbackBufferSize, nullptr,
@@ -42,7 +40,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram != 0)
         {
@@ -61,8 +59,6 @@
             glDeleteTransformFeedbacks(1, &mTransformFeedback);
             mTransformFeedback = 0;
         }
-
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
@@ -1044,10 +1040,8 @@
   protected:
     TransformFeedbackLifetimeTest() : mVertexArray(0) {}
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glGenVertexArrays(1, &mVertexArray);
         glBindVertexArray(mVertexArray);
 
@@ -1066,10 +1060,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteVertexArrays(1, &mVertexArray);
-        TransformFeedbackTest::TearDown();
+        TransformFeedbackTest::testTearDown();
     }
 
     GLuint mVertexArray;
diff --git a/src/tests/gl_tests/UniformBufferTest.cpp b/src/tests/gl_tests/UniformBufferTest.cpp
index 01a981f..8554b31 100644
--- a/src/tests/gl_tests/UniformBufferTest.cpp
+++ b/src/tests/gl_tests/UniformBufferTest.cpp
@@ -25,10 +25,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mkFS = R"(#version 300 es
 precision highp float;
 uniform uni { vec4 color; };
@@ -49,11 +47,10 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteBuffers(1, &mUniformBuffer);
         glDeleteProgram(mProgram);
-        ANGLETest::TearDown();
     }
 
     const char *mkFS;
diff --git a/src/tests/gl_tests/UniformTest.cpp b/src/tests/gl_tests/UniformTest.cpp
index 0d98653..e96cae2 100644
--- a/src/tests/gl_tests/UniformTest.cpp
+++ b/src/tests/gl_tests/UniformTest.cpp
@@ -322,10 +322,8 @@
         setConfigAlphaBits(8);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = "void main() { gl_Position = vec4(1); }";
         constexpr char kFS[] =
             "precision mediump float;\n"
@@ -357,11 +355,7 @@
         ASSERT_GL_NO_ERROR();
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram;
     GLint mUniformFLocation;
@@ -677,15 +671,13 @@
   protected:
     UniformTestES3() : mProgram(0) {}
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram != 0)
         {
             glDeleteProgram(mProgram);
             mProgram = 0;
         }
-
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
@@ -1100,15 +1092,13 @@
   protected:
     UniformTestES31() : mProgram(0) {}
 
-    void TearDown() override
+    void testTearDown() override
     {
         if (mProgram != 0)
         {
             glDeleteProgram(mProgram);
             mProgram = 0;
         }
-
-        ANGLETest::TearDown();
     }
 
     GLuint mProgram;
diff --git a/src/tests/gl_tests/UnpackAlignmentTest.cpp b/src/tests/gl_tests/UnpackAlignmentTest.cpp
index ce5876c..698f1c0 100644
--- a/src/tests/gl_tests/UnpackAlignmentTest.cpp
+++ b/src/tests/gl_tests/UnpackAlignmentTest.cpp
@@ -27,10 +27,8 @@
         mProgram = 0;
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kFS[] = R"(uniform sampler2D tex;
 void main()
 {
@@ -44,12 +42,7 @@
         }
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     void getPixelSize(GLenum format, GLenum type, unsigned int *size)
     {
diff --git a/src/tests/gl_tests/UnpackRowLength.cpp b/src/tests/gl_tests/UnpackRowLength.cpp
index ffd09b9..a5168ff 100644
--- a/src/tests/gl_tests/UnpackRowLength.cpp
+++ b/src/tests/gl_tests/UnpackRowLength.cpp
@@ -27,10 +27,8 @@
         mProgram = 0;
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kFS[] = R"(uniform sampler2D tex;
 void main()
 {
@@ -44,12 +42,7 @@
         }
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     void testRowLength(int texSize, int rowLength)
     {
diff --git a/src/tests/gl_tests/VertexAttributeTest.cpp b/src/tests/gl_tests/VertexAttributeTest.cpp
index a561f9e..75e5eb6 100644
--- a/src/tests/gl_tests/VertexAttributeTest.cpp
+++ b/src/tests/gl_tests/VertexAttributeTest.cpp
@@ -186,10 +186,8 @@
         }
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         glClearColor(0, 0, 0, 0);
         glClearDepthf(0.0);
         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -199,13 +197,11 @@
         glGenBuffers(1, &mBuffer);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
         glDeleteProgram(mProgram);
         glDeleteBuffers(1, &mBuffer);
         glDeleteBuffers(1, &mQuadBuffer);
-
-        ANGLETest::TearDown();
     }
 
     // Override a feature to force emulation of attribute formats.
@@ -1041,9 +1037,9 @@
         glEnableVertexAttribArray(mExpectedAttrib);
     }
 
-    void TearDown() override
+    void testTearDown() override
     {
-        VertexAttributeTestES3::TearDown();
+        VertexAttributeTestES3::testTearDown();
 
         glDeleteBuffers(1, &mExpectedBuffer);
         glDeleteVertexArrays(1, &mVAO);
@@ -1530,7 +1526,7 @@
   protected:
     VertexAttributeCachingTest() {}
 
-    void SetUp() override;
+    void testSetUp() override;
 
     template <typename DestT>
     static std::vector<GLfloat> GetExpectedData(const std::vector<GLubyte> &srcData,
@@ -1625,9 +1621,9 @@
     return expectedData;
 }
 
-void VertexAttributeCachingTest::SetUp()
+void VertexAttributeCachingTest::testSetUp()
 {
-    VertexAttributeTest::SetUp();
+    VertexAttributeTest::testSetUp();
 
     glBindBuffer(GL_ARRAY_BUFFER, mBuffer);
 
diff --git a/src/tests/gl_tests/ViewportTest.cpp b/src/tests/gl_tests/ViewportTest.cpp
index 574b0ff..6ce7644 100644
--- a/src/tests/gl_tests/ViewportTest.cpp
+++ b/src/tests/gl_tests/ViewportTest.cpp
@@ -122,10 +122,8 @@
         }
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         mProgram = CompileProgram(essl1_shaders::vs::Simple(), essl1_shaders::fs::Red());
         if (mProgram == 0)
         {
@@ -145,12 +143,7 @@
         glDisable(GL_DEPTH_TEST);
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     GLuint mProgram;
 };
diff --git a/src/tests/gl_tests/WebGLCompatibilityTest.cpp b/src/tests/gl_tests/WebGLCompatibilityTest.cpp
index 8939251..77c6c32 100644
--- a/src/tests/gl_tests/WebGLCompatibilityTest.cpp
+++ b/src/tests/gl_tests/WebGLCompatibilityTest.cpp
@@ -67,9 +67,8 @@
         setWebGLCompatibilityEnabled(true);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
         glRequestExtensionANGLE = reinterpret_cast<PFNGLREQUESTEXTENSIONANGLEPROC>(
             eglGetProcAddress("glRequestExtensionANGLE"));
     }
diff --git a/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp b/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp
index fd4d35f..db8c613 100644
--- a/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp
+++ b/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp
@@ -231,10 +231,8 @@
         setWebGLCompatibilityEnabled(true);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
-
         constexpr char kVS[] = R"(
 attribute vec3 a_position;
 varying vec2 v_texCoord;
@@ -266,11 +264,7 @@
         drawQuad(mProgram, "a_position", 0.0f, 1.0f, true);
     }
 
-    void TearDown() override
-    {
-        glDeleteProgram(mProgram);
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { glDeleteProgram(mProgram); }
 
     using TestFunc = void (WebGLReadOutsideFramebufferTest::*)(int x,
                                                                int y,
diff --git a/src/tests/gl_tests/gles1/DrawTextureTest.cpp b/src/tests/gl_tests/gles1/DrawTextureTest.cpp
index 5a39af5..d5e4ef2 100644
--- a/src/tests/gl_tests/gles1/DrawTextureTest.cpp
+++ b/src/tests/gl_tests/gles1/DrawTextureTest.cpp
@@ -28,19 +28,14 @@
         setConfigDepthBits(24);
     }
 
-    void SetUp() override
+    void testSetUp() override
     {
-        ANGLETest::SetUp();
         mTexture.reset(new GLTexture());
         glEnable(GL_TEXTURE_2D);
         glBindTexture(GL_TEXTURE_2D, mTexture->get());
     }
 
-    void TearDown() override
-    {
-        mTexture.reset();
-        ANGLETest::TearDown();
-    }
+    void testTearDown() override { mTexture.reset(); }
 
     std::unique_ptr<GLTexture> mTexture;
 };