From: Ian Romanick
Signed-off-by: Ian Romanick
---
tests/util/piglit-util.c | 25 +
tests/util/piglit-util.h | 4
2 files changed, 29 insertions(+)
diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c
index 71d55a7..20015ce 100644
--- a/tests/util/piglit-util.c
+++ b/tests/util/piglit-util.c
@@ -206,6 +206,31 @@ piglit_report_subtest_result(enum piglit_result result,
const char *format, ...)
va_end(ap);
}
+enum piglit_result
+piglit_update_result_from_subtest_result(enum piglit_result result,
+enum piglit_result subtest_result)
+{
+ switch (subtest_result) {
+ case PIGLIT_PASS:
+ if (result == PIGLIT_SKIP)
+ result = PIGLIT_PASS;
+ break;
+ case PIGLIT_FAIL:
+ result = PIGLIT_FAIL;
+ break;
+ case PIGLIT_WARN:
+ if (result != PIGLIT_FAIL)
+ result = PIGLIT_WARN;
+ break;
+ case PIGLIT_SKIP:
+ /* Only report skip if both result and subtest_result are skip.
+*/
+ break;
+ }
+
+ return result;
+}
+
#ifndef HAVE_STRCHRNUL
char *strchrnul(const char *s, int c)
{
diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h
index 52f053e..6c2fb2d 100644
--- a/tests/util/piglit-util.h
+++ b/tests/util/piglit-util.h
@@ -140,6 +140,10 @@ void piglit_report_result(enum piglit_result result);
void piglit_report_subtest_result(enum piglit_result result,
const char *format, ...) PRINTFLIKE(2, 3);
+enum piglit_result
+piglit_update_result_from_subtest_result(enum piglit_result result,
+enum piglit_result subtest_result);
+
#ifndef HAVE_STRCHRNUL
char *strchrnul(const char *s, int c);
#endif
--
1.8.1.4
___
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit