D3D: Work around HLSL integer pow folding bug.

BUG=angleproject:851

Change-Id: I68a47b8343a29e42c0a69ca3f2a6cb5054d03782
Reviewed-on: https://chromium-review.googlesource.com/362775
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/tests/gl_tests/GLSLTest.cpp b/src/tests/gl_tests/GLSLTest.cpp
index 3fc0bf1..f8b77a9 100644
--- a/src/tests/gl_tests/GLSLTest.cpp
+++ b/src/tests/gl_tests/GLSLTest.cpp
@@ -8,6 +8,7 @@
 
 #include "libANGLE/Context.h"
 #include "libANGLE/Program.h"
+#include "test_utils/gl_raii.h"
 
 using namespace angle;
 
@@ -1607,9 +1608,8 @@
 }
 
 // Covers the WebGL test 'glsl/bugs/pow-of-small-constant-in-user-defined-function'
-// See https://code.google.com/p/angleproject/issues/detail?id=851
-// TODO(jmadill): ANGLE constant folding can fix this
-TEST_P(GLSLTest, DISABLED_PowOfSmallConstant)
+// See http://anglebug.com/851
+TEST_P(GLSLTest, PowOfSmallConstant)
 {
     const std::string &fragmentShaderSource = SHADER_SOURCE
     (
@@ -1639,11 +1639,10 @@
         }
     );
 
-    GLuint program = CompileProgram(mSimpleVSSource, fragmentShaderSource);
-    EXPECT_NE(0u, program);
+    ANGLE_GL_PROGRAM(program, mSimpleVSSource, fragmentShaderSource);
 
-    drawQuad(program, "inputAttribute", 0.5f);
-    EXPECT_PIXEL_EQ(0, 0, 0, 255, 0, 255);
+    drawQuad(program.get(), "inputAttribute", 0.5f);
+    EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
     EXPECT_GL_NO_ERROR();
 }