Add a test for flat shader 'provoking vertex'.

The provoking vertex, or leading vertex, is the vertex in a triangle
which produces the value that gets used for a flat-shaded triangle.
Flat shading means the same value gets used for the entire triangle.

It seems as though D3D and OpenGL have different definitions of which
vertex is the leading/provoking one; GL says it is the *last* vertex
of a primitive, while while D3D says it is the first.

Additional complexity comes about from triangle strips, which switch
winding order, and primitive restart, which defines new primitives in
the middle of prior primitives.

BUG=angleproject:754

Change-Id: If1217cba33dabf3b1e4ad13fd639d049cb16fe44
Reviewed-on: https://chromium-review.googlesource.com/309152
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/tests/test_utils/ANGLETest.cpp b/src/tests/test_utils/ANGLETest.cpp
index af124eb..0bb1973 100644
--- a/src/tests/test_utils/ANGLETest.cpp
+++ b/src/tests/test_utils/ANGLETest.cpp
@@ -292,6 +292,12 @@
     return (rendererString.find("NVIDIA") != std::string::npos);
 }
 
+bool ANGLETest::isD3D11() const
+{
+    std::string rendererString(reinterpret_cast<const char *>(glGetString(GL_RENDERER)));
+    return (rendererString.find("Direct3D11 vs_5_0") != std::string::npos);
+}
+
 EGLint ANGLETest::getPlatformRenderer() const
 {
     assert(mEGLWindow);