| 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 |
| |