[glib] gmessages: fix g_test_expect_message() with NULL domains
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gmessages: fix g_test_expect_message() with NULL domains
- Date: Sat, 31 Aug 2013 15:51:54 +0000 (UTC)
commit f8bb08305cf819502934036e1fcfb7d7c7776097
Author: Dan Winship <danw gnome org>
Date: Sat Aug 31 11:51:07 2013 -0400
gmessages: fix g_test_expect_message() with NULL domains
Allow passing a NULL domain to g_test_expect_message(), and more
importantly, don't crash if a message with a NULL domain gets logged
while there is an expected message.
glib/gmessages.c | 5 ++---
glib/tests/testing.c | 13 +++++++++++++
2 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/glib/gmessages.c b/glib/gmessages.c
index 82733de..928276f 100644
--- a/glib/gmessages.c
+++ b/glib/gmessages.c
@@ -894,7 +894,7 @@ g_logv (const gchar *log_domain,
expected_messages = g_slist_delete_link (expected_messages,
expected_messages);
- if (strcmp (expected->log_domain, log_domain) == 0 &&
+ if (g_strcmp0 (expected->log_domain, log_domain) == 0 &&
((log_level & expected->log_level) == expected->log_level) &&
g_pattern_match_simple (expected->pattern, msg))
{
@@ -1080,7 +1080,7 @@ g_assert_warning (const char *log_domain,
/**
* g_test_expect_message:
- * @log_domain: the log domain of the message
+ * @log_domain: (allow-none): the log domain of the message
* @log_level: the log level of the message
* @pattern: a glob-style
* <link linkend="glib-Glob-style-pattern-matching">pattern</link>
@@ -1123,7 +1123,6 @@ g_test_expect_message (const gchar *log_domain,
{
GTestExpectedMessage *expected;
- g_return_if_fail (log_domain != NULL);
g_return_if_fail (log_level != 0);
g_return_if_fail (pattern != NULL);
diff --git a/glib/tests/testing.c b/glib/tests/testing.c
index 979676a..21f019e 100644
--- a/glib/tests/testing.c
+++ b/glib/tests/testing.c
@@ -373,6 +373,14 @@ test_expected_messages_expected (void)
}
static void
+test_expected_messages_null_domain (void)
+{
+ g_test_expect_message (NULL, G_LOG_LEVEL_WARNING, "no domain");
+ g_log (NULL, G_LOG_LEVEL_WARNING, "no domain");
+ g_test_assert_expected_messages ();
+}
+
+static void
test_expected_messages_extra_warning (void)
{
g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING,
@@ -426,6 +434,10 @@ test_expected_messages (void)
g_test_trap_assert_passed ();
g_test_trap_assert_stderr ("");
+ g_test_trap_subprocess ("/misc/expected-messages/subprocess/null-domain", 0, 0);
+ g_test_trap_assert_passed ();
+ g_test_trap_assert_stderr ("");
+
g_test_trap_subprocess ("/misc/expected-messages/subprocess/extra-warning", 0, 0);
g_test_trap_assert_passed ();
g_test_trap_assert_stderr ("");
@@ -575,6 +587,7 @@ main (int argc,
g_test_add_func ("/misc/expected-messages/subprocess/expect-warning",
test_expected_messages_expect_warning);
g_test_add_func ("/misc/expected-messages/subprocess/wrong-warning", test_expected_messages_wrong_warning);
g_test_add_func ("/misc/expected-messages/subprocess/expected", test_expected_messages_expected);
+ g_test_add_func ("/misc/expected-messages/subprocess/null-domain", test_expected_messages_null_domain);
g_test_add_func ("/misc/expected-messages/subprocess/extra-warning", test_expected_messages_extra_warning);
g_test_add_func ("/misc/expected-messages/subprocess/unexpected-extra-warning",
test_expected_messages_unexpected_extra_warning);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]