[Piglit] [PATCH 15/16] tests: enumerate subtests in linestipple
Fabian Bieler
fabianbieler at fastmail.fm
Mon Jan 29 00:22:25 UTC 2018
From: Dylan Baker <dylan at pnwbakers.com>
---
tests/general/linestipple.c | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/tests/general/linestipple.c b/tests/general/linestipple.c
index ba0924e63..96d65a962 100644
--- a/tests/general/linestipple.c
+++ b/tests/general/linestipple.c
@@ -104,9 +104,10 @@ probe_line(const struct stipple_line *line, int v1i, int v2i, GLuint *fragment)
return true;
}
-static bool
-test_line(const struct stipple_line *line)
+static enum piglit_result
+test_line(void *data)
{
+ struct stipple_line *line = data;
GLuint i;
glLineStipple(line->factor, line->pattern);
@@ -121,21 +122,21 @@ test_line(const struct stipple_line *line)
for (i = 0; i + 1 < line->nvertices; i += 2) {
GLuint fragment = 0;
if (!probe_line(line, i, i + 1, &fragment))
- return false;
+ return PIGLIT_FAIL;
}
} else {
GLuint fragment = 0;
for (i = 0; i + 1 < line->nvertices; ++i) {
if (!probe_line(line, i, i + 1, &fragment))
- return false;
+ return PIGLIT_FAIL;
}
if (line->primitive == GL_LINE_LOOP) {
if (!probe_line(line, i, 0, &fragment))
- return false;
+ return PIGLIT_FAIL;
}
}
- return true;
+ return PIGLIT_PASS;
}
static struct vertex BaselineVertices[] = { { 0, 0 },
@@ -198,11 +199,11 @@ static struct stipple_line Lines[] = {
}
};
+
enum piglit_result
piglit_display(void)
{
- int i;
- bool pass = true;
+ enum piglit_result result = PIGLIT_PASS;
piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
@@ -214,20 +215,22 @@ piglit_display(void)
glPushMatrix();
glTranslatef(basex, basey, 0.0);
- for (i = 0; i < ARRAY_SIZE(Lines); ++i) {
- printf("Testing %s:\n", Lines[i].name);
- if (test_line(&Lines[i])) {
- piglit_report_subtest_result(PIGLIT_PASS, "%s", Lines[i].name);
- } else {
- piglit_report_subtest_result(PIGLIT_FAIL, "%s", Lines[i].name);
- pass = false;
- }
+ struct piglit_subtest tests[ARRAY_SIZE(Lines) + 1];
+ for (int i = 0; i < ARRAY_SIZE(Lines); ++i) {
+ tests[i].name = Lines[i].name;
+ tests[i].option = "";
+ tests[i].subtest_func = test_line;
+ tests[i].data = &Lines[i];
}
+ tests[ARRAY_SIZE(Lines)].name = NULL;
+
+ result = piglit_run_selected_subtests(tests, NULL, 0, result);
+
glPopMatrix();
piglit_present_results();
- return pass ? PIGLIT_PASS : PIGLIT_FAIL;
+ return result;
}
void
--
2.15.1
More information about the Piglit
mailing list