mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-02 15:33:39 +02:00
g_parse_debug_string: invert flags given besides "all"
Any flags specified as well as "all" are subtracted from the result, allowing the user to specify FOO_DEBUG="all,bar,baz" to mean "give me debugging information for everything except bar and baz". https://bugzilla.gnome.org/show_bug.cgi?id=642452
This commit is contained in:
committed by
Matthias Clasen
parent
73ffa9034f
commit
5e2a2ef288
@@ -509,10 +509,11 @@ find_first_that(gpointer key,
|
||||
static void
|
||||
test_g_parse_debug_string (void)
|
||||
{
|
||||
GDebugKey keys[3] = {
|
||||
GDebugKey keys[] = {
|
||||
{ "foo", 1 },
|
||||
{ "bar", 2 },
|
||||
{ "baz", 4 }
|
||||
{ "baz", 4 },
|
||||
{ "weird", 8 },
|
||||
};
|
||||
guint n_keys = G_N_ELEMENTS (keys);
|
||||
guint result;
|
||||
@@ -531,6 +532,19 @@ test_g_parse_debug_string (void)
|
||||
|
||||
result = g_parse_debug_string ("all", keys, n_keys);
|
||||
g_assert_cmpuint (result, ==, (1 << n_keys) - 1);
|
||||
|
||||
/* Test subtracting debug flags from "all" */
|
||||
result = g_parse_debug_string ("all:foo", keys, n_keys);
|
||||
g_assert_cmpuint (result, ==, 2 | 4 | 8);
|
||||
|
||||
result = g_parse_debug_string ("foo baz,all", keys, n_keys);
|
||||
g_assert_cmpuint (result, ==, 2 | 8);
|
||||
|
||||
result = g_parse_debug_string ("all,fooo,baz", keys, n_keys);
|
||||
g_assert_cmpuint (result, ==, 1 | 2 | 8);
|
||||
|
||||
result = g_parse_debug_string ("all:weird", keys, n_keys);
|
||||
g_assert_cmpuint (result, ==, 1 | 2 | 4);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user