Parse QPA to get test status
We keep having parsing bugs in the glcts tests due to doing weird stuff with the test status. Today's is:
Test case 'KHR-GL30.shaders30.glsl_constructors.bvec4_from_bool_mat2_vs'..
Fail (Shader compilation failed:
Vertex shader:
#version 330
in vec4 vPosition;
precision mediump int;
precision mediump float;
const vec4 green = vec4(0.0, 1.0, 0.0, 1.0);
const vec4 red = vec4(1.0, 0.0, 0.0, 1.0);
out vec4 vColor;
void main() {
bvec4 v = bvec4(false, mat2(1.0, 2.0, 3.0, 4.0));
if (v[0] == false && v[1] == true && v[2] == true && v[3] == true)
vColor = green;
else
vColor = red;
gl_Position = vPosition;
}
Fragment shader:
#version 330
precision mediump float;
in vec4 vColor;
out vec4 my_FragColor;
void main() {
my_FragColor = vColor;
}
at glcGLSLVectorConstructorTests.cpp:474)
which ends up being a Crash because of the multiline print hiding the closing )
from the parser. We could stop looking for ), but then we're parsing the rest of that multiline detailed description looking for the next test case and maybe that's not great (see also deqp-runner getting confused by mesa debug prints to stdout)
Would it be better to just parse QPAs to detect tests and their results?