---
 tests/util/piglit-util.c |   25 +++++++++++++++++++++++++
 tests/util/piglit-util.h |    1 +
 2 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c
index 9c4f0a5..d834487 100644
--- a/tests/util/piglit-util.c
+++ b/tests/util/piglit-util.c
@@ -421,3 +421,28 @@ piglit_set_rlimit(unsigned long lim)
        printf("Cannot reset rlimit on this platform.\n\n");
 #endif
 }
+
+/* Merges the PASS/FAIL/SKIP for @subtest into the overall result
+ * @all.
+ *
+ * The @all should start out initialized to PIGLIT_SKIP.
+ */
+void
+piglit_merge_result(enum piglit_result *all, enum piglit_result subtest)
+{
+       switch (subtest) {
+       case PIGLIT_FAIL:
+               *all = PIGLIT_FAIL;
+               break;
+       case PIGLIT_WARN:
+               if (*all == PIGLIT_SKIP || *all == PIGLIT_PASS)
+                       *all = PIGLIT_WARN;
+               break;
+       case PIGLIT_PASS:
+               if (*all == PIGLIT_SKIP)
+                       *all = PIGLIT_PASS;
+               break;
+       case PIGLIT_SKIP:
+               break;
+       }
+}
diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h
index 1c8c740..7040432 100755
--- a/tests/util/piglit-util.h
+++ b/tests/util/piglit-util.h
@@ -184,6 +184,7 @@ piglit_check_gl_error(GLenum expected_error);
 void piglit_reset_gl_error(void);
 
 int FindLine(const char *program, int position);
+void piglit_merge_result(enum piglit_result *all, enum piglit_result subtest);
 void piglit_report_result(enum piglit_result result);
 void piglit_require_gl_version(int required_version_times_10);
 void piglit_require_extension(const char *name);
-- 
1.7.7.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to