dbus/dbus-object-tree.c: Add test case for parent removal fix

This commit is contained in:
Thomas Fitzsimmons 2013-03-27 16:16:24 -04:00
parent d4afe1b80f
commit 6d482371af

View file

@ -2138,6 +2138,31 @@ object_tree_test_iteration (void *data)
_dbus_assert (!find_subtree_registered_or_unregistered (tree, path1));
_dbus_assert (find_subtree_registered_or_unregistered (tree, path0));
/* Test freeing multiple children from the same path */
if (!do_register (tree, path3, TRUE, 3, tree_test_data))
goto out;
if (!do_register (tree, path4, TRUE, 4, tree_test_data))
goto out;
_dbus_assert (find_subtree (tree, path3, NULL));
_dbus_assert (find_subtree (tree, path4, NULL));
_dbus_object_tree_unregister_and_unlock (tree, path3);
_dbus_assert (!find_subtree (tree, path3, NULL));
_dbus_assert (!find_subtree_registered_or_unregistered (tree, path3));
_dbus_assert (find_subtree (tree, path4, NULL));
_dbus_assert (find_subtree_registered_or_unregistered (tree, path4));
_dbus_assert (find_subtree_registered_or_unregistered (tree, path2));
_dbus_assert (find_subtree_registered_or_unregistered (tree, path1));
_dbus_object_tree_unregister_and_unlock (tree, path4);
_dbus_assert (!find_subtree (tree, path4, NULL));
_dbus_assert (!find_subtree_registered_or_unregistered (tree, path4));
_dbus_assert (!find_subtree (tree, path3, NULL));
_dbus_assert (!find_subtree_registered_or_unregistered (tree, path3));
_dbus_assert (!find_subtree_registered_or_unregistered (tree, path2));
_dbus_assert (!find_subtree_registered_or_unregistered (tree, path1));
/* Register it all again, and test dispatch */
if (!do_register (tree, path0, TRUE, 0, tree_test_data))