From 8a8e0a373d3b16cd9b5c72dc82abbdfe794a39b7 Mon Sep 17 00:00:00 2001
From: Carlos Garcia Campos <cgarcia@igalia.com>
Date: Tue, 28 Nov 2017 12:31:19 +0100
Subject: [PATCH] gtester: do not consider skipped tests as failures

This is happening since f591366eee341f2c40516821e8a5a0bc7a9bd288, that
changed the way tests were skipped to use g_test_skip() instead of just
ignoring them. They are now reported to the log with G_TEST_RUN_SKIPPED
as result.

https://bugzilla.gnome.org/show_bug.cgi?id=790934
---
 glib/gtester.c    | 26 +++++++++++++++++++++-----
 glib/gtestutils.c |  6 ------
 glib/gtestutils.h |  7 +++++++
 3 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/glib/gtester.c b/glib/gtester.c
index 38a7f9610..9451aea56 100644
--- a/glib/gtester.c
+++ b/glib/gtester.c
@@ -102,21 +102,37 @@ testcase_close (long double duration,
                 gint        exit_status,
                 guint       n_forks)
 {
+  gboolean success;
+
   g_return_if_fail (testcase_open > 0);
   test_log_printfe ("%s<duration>%.6Lf</duration>\n", sindent (log_indent), duration);
+  success = exit_status == G_TEST_RUN_SUCCESS || exit_status == G_TEST_RUN_SKIPPED;
   test_log_printfe ("%s<status exit-status=\"%d\" n-forks=\"%d\" result=\"%s\"/>\n",
                     sindent (log_indent), exit_status, n_forks,
-                    exit_status ? "failed" : "success");
+                    success ? "failed" : "success");
   log_indent -= 2;
   test_log_printfe ("%s</testcase>\n", sindent (log_indent));
   testcase_open--;
   if (gtester_verbose)
-    g_print ("%s\n", exit_status ? "FAIL" : "OK");
-  if (exit_status && subtest_last_seed)
+    {
+      switch (exit_status)
+        {
+        case G_TEST_RUN_SUCCESS:
+          g_print ("OK\n");
+          break;
+        case G_TEST_RUN_SKIPPED:
+          g_print ("SKIP\n");
+          break;
+        default:
+          g_print ("FAIL\n");
+          break;
+        }
+    }
+  if (!success && subtest_last_seed)
     g_print ("GTester: last random seed: %s\n", subtest_last_seed);
-  if (exit_status)
+  if (!success)
     testcase_fail_count += 1;
-  if (subtest_mode_fatal && exit_status)
+  if (subtest_mode_fatal && !success)
     terminate();
 }
 
diff --git a/glib/gtestutils.c b/glib/gtestutils.c
index dd8513a5b..4e598e44a 100644
--- a/glib/gtestutils.c
+++ b/glib/gtestutils.c
@@ -731,12 +731,6 @@ static void     gtest_default_log_handler       (const gchar    *log_domain,
                                                  gpointer        unused_data);
 
 
-typedef enum {
-  G_TEST_RUN_SUCCESS,
-  G_TEST_RUN_SKIPPED,
-  G_TEST_RUN_FAILURE,
-  G_TEST_RUN_INCOMPLETE
-} GTestResult;
 static const char * const g_test_result_names[] = {
   "OK",
   "SKIP",
diff --git a/glib/gtestutils.h b/glib/gtestutils.h
index e120562c0..226a2e80b 100644
--- a/glib/gtestutils.h
+++ b/glib/gtestutils.h
@@ -354,6 +354,13 @@ typedef struct {
 GLIB_VAR const GTestConfig * const g_test_config_vars;
 
 /* internal logging API */
+typedef enum {
+  G_TEST_RUN_SUCCESS,
+  G_TEST_RUN_SKIPPED,
+  G_TEST_RUN_FAILURE,
+  G_TEST_RUN_INCOMPLETE
+} GTestResult;
+
 typedef enum {
   G_TEST_LOG_NONE,
   G_TEST_LOG_ERROR,             /* s:msg */
-- 
2.15.0

