summaryrefslogtreecommitdiff
path: root/test/cairo-test.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-06-11 09:12:16 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-06-11 09:14:16 +0100
commitbd3d9ef3d1dbc5364e79e6afb47d9e124cb61ca4 (patch)
treea7c28421bab79a312d60ec7273a593e85572dd8b /test/cairo-test.c
parenteeafeebd2ec8ad8a9e7053aaaa0f845b58563b3b (diff)
test: Distinguish tests that throw an error from a normal fail.
Hitting an error in a test case is almost as bad as crashing, and the severity may be lost amidst "normal" failures. So introduce a new class of ERROR so that we can immediately spot these during a test run, and appropriately log them afterwards.
Diffstat (limited to 'test/cairo-test.c')
-rw-r--r--test/cairo-test.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/test/cairo-test.c b/test/cairo-test.c
index aa8dd3a6..af4487a5 100644
--- a/test/cairo-test.c
+++ b/test/cairo-test.c
@@ -1444,7 +1444,7 @@ REPEAT:
if (cairo_status (cr) != CAIRO_STATUS_SUCCESS) {
cairo_test_log (ctx, "Error: Function under test left cairo status in an error state: %s\n",
cairo_status_to_string (cairo_status (cr)));
- ret = CAIRO_TEST_FAILURE;
+ ret = CAIRO_TEST_ERROR;
goto UNWIND_CAIRO;
}
@@ -1665,6 +1665,21 @@ _cairo_test_context_run_for_target (cairo_test_context_t *ctx,
fail_face, normal_face);
break;
+ case CAIRO_TEST_ERROR:
+ if (print_fail_on_stdout && ctx->thread == 0) {
+ printf ("!!!ERROR!!!\n");
+ } else {
+ /* eat the test name */
+ printf ("\r");
+ fflush (stdout);
+ }
+ cairo_test_log (ctx, "ERROR\n");
+ fprintf (stderr, "%s.%s.%s [%d]%s:\t%s!!!ERROR!!!%s\n",
+ ctx->test_name, target->name,
+ cairo_boilerplate_content_name (target->content), dev_offset, similar ? " (similar)" : "",
+ fail_face, normal_face);
+ break;
+
case CAIRO_TEST_XFAILURE:
if (print_fail_on_stdout && ctx->thread == 0) {
printf ("XFAIL\n");
@@ -1732,6 +1747,9 @@ _cairo_test_context_run_for_target (cairo_test_context_t *ctx,
case CAIRO_TEST_CRASHED:
printf ("!!!CRASHED!!!\n");
break;
+ case CAIRO_TEST_ERROR:
+ printf ("!!!ERRORED!!!\n");
+ break;
case CAIRO_TEST_XFAILURE:
printf ("XFAIL\n");
break;