[gtk+/gtk-3-6] tests: Add an intersection test for the recent bug
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-6] tests: Add an intersection test for the recent bug
- Date: Sat, 10 Nov 2012 18:08:49 +0000 (UTC)
commit edac0e6c40fab75b5fc11f22001ecb5a4ee8c730
Author: Benjamin Otte <otte redhat com>
Date: Sat Nov 10 18:54:35 2012 +0100
tests: Add an intersection test for the recent bug
Just using the hardcoded bitmasks triggered the bug fixed in commit
e8f2eeac9221d91ba32447bbcbdc5ba057647f8e - so just do that as the test.
gtk/tests/bitmask.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
---
diff --git a/gtk/tests/bitmask.c b/gtk/tests/bitmask.c
index 1d4eaa5..33e4b42 100644
--- a/gtk/tests/bitmask.c
+++ b/gtk/tests/bitmask.c
@@ -237,6 +237,49 @@ test_intersect (void)
}
}
+static void
+test_intersect_hardcoded (void)
+{
+ GtkBitmask *left, *right, *intersection, *expected;
+ const char *left_str, *right_str;
+ guint left_len, right_len;
+ guint i, l, r;
+
+ for (l = 0; l < G_N_ELEMENTS (tests); l++)
+ {
+ for (r = 0; r < G_N_ELEMENTS (tests); r++)
+ {
+ left = masks[l];
+ right = masks[r];
+ left_str = tests[l];
+ right_str = tests[r];
+ left_len = strlen (tests[l]);
+ right_len = strlen (tests[r]);
+
+ expected = _gtk_bitmask_new ();
+ if (left_len > right_len)
+ left_str += left_len - right_len;
+ if (right_len > left_len)
+ right_str += right_len - left_len;
+ i = MIN (right_len, left_len);
+ while (i--)
+ {
+ expected = _gtk_bitmask_set (expected, i, left_str[0] == '1' && right_str[0] == '1');
+ right_str++;
+ left_str++;
+ }
+
+ intersection = _gtk_bitmask_intersect (_gtk_bitmask_copy (left), right);
+
+ assert_cmpmasks (intersection, expected);
+ g_assert_cmpint (_gtk_bitmask_is_empty (expected), ==, !_gtk_bitmask_intersects (left, right));
+
+ _gtk_bitmask_free (intersection);
+ _gtk_bitmask_free (expected);
+ }
+ }
+}
+
#define SWAP(_a, _b) G_STMT_START{ \
guint _tmp = _a; \
_a = _b; \
@@ -331,6 +374,7 @@ main (int argc, char *argv[])
g_test_add_func ("/bitmask/set", test_set);
g_test_add_func ("/bitmask/union", test_union);
g_test_add_func ("/bitmask/intersect", test_intersect);
+ g_test_add_func ("/bitmask/intersect_hardcoded", test_intersect_hardcoded);
g_test_add_func ("/bitmask/invert_range", test_invert_range);
result = g_test_run ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]