From e7b857a44a23598b18fac3222e42ae40ad0f6409 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 21 Aug 2019 19:39:01 +0300 Subject: [PATCH] gtestutils: Allow g_test_bug() to be used without g_test_bug_base() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since we transitioned from Bugzilla to GitLab, we have two forms of bug references in the GLib source code: old (but still relevant) Bugzilla links, and newer GitLab links. We can’t use a single base for the two, so have to either build incorrect URIs, or provide the full URI in g_test_bug(). It’s always seemed a bit of an over-optimisation to provide the bug base separately from the bug ID, so relax the assertions and documentation around g_test_bug_base() so that g_test_bug() can be used on its own. The old usage patterns are still supported unchanged. Signed-off-by: Philip Withnall --- glib/gtestutils.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/glib/gtestutils.c b/glib/gtestutils.c index 881789087..80f7b4961 100644 --- a/glib/gtestutils.c +++ b/glib/gtestutils.c @@ -150,7 +150,6 @@ * setlocale (LC_ALL, ""); * * g_test_init (&argc, &argv, NULL); - * g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id="); * * // Define the tests. * g_test_add ("/my-object/test1", MyObjectFixture, "some-user-data", @@ -1887,6 +1886,9 @@ g_test_message (const char *format, * portion to @uri_pattern, or by replacing the special string * '\%s' within @uri_pattern if that is present. * + * If g_test_bug_base() is not called, bug URIs are formed solely + * from the value provided by g_test_bug(). + * * Since: 2.16 */ void @@ -1903,7 +1905,9 @@ g_test_bug_base (const char *uri_pattern) * This function adds a message to test reports that * associates a bug URI with a test case. * Bug URIs are constructed from a base URI set with g_test_bug_base() - * and @bug_uri_snippet. + * and @bug_uri_snippet. If g_test_bug_base() has not been called, it is + * assumed to be the empty string, so a full URI can be provided to + * g_test_bug() instead. * * Since: 2.16 * See also: g_test_summary() @@ -1911,12 +1915,12 @@ g_test_bug_base (const char *uri_pattern) void g_test_bug (const char *bug_uri_snippet) { - char *c; + const char *c = NULL; - g_return_if_fail (test_uri_base != NULL); g_return_if_fail (bug_uri_snippet != NULL); - c = strstr (test_uri_base, "%s"); + if (test_uri_base != NULL) + c = strstr (test_uri_base, "%s"); if (c) { char *b = g_strndup (test_uri_base, c - test_uri_base); @@ -1926,7 +1930,8 @@ g_test_bug (const char *bug_uri_snippet) g_free (s); } else - g_test_message ("Bug Reference: %s%s", test_uri_base, bug_uri_snippet); + g_test_message ("Bug Reference: %s%s", + test_uri_base ? test_uri_base : "", bug_uri_snippet); } /**