blob: f38e7ee9925e9bdf0104def9057503c6446abf25 [file] [log] [blame]
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