Fix dlsym(3) to do breadth first search.

dlsym(3) with handle != RTLD_DEFAULT|RTLD_NEXT performs
  breadth first search through the dependency tree.

Bug: 16653281

(cherry picked from commit aa0f2bdbc2)

Change-Id: I0ba8c2034ab341f8a279cdb4e2e7e47f1aef7897
This commit is contained in:
Dmitriy Ivanov
2014-07-28 17:32:20 -07:00
parent 2ea0a58e01
commit 422106a24d
7 changed files with 128 additions and 19 deletions

View File

@@ -95,3 +95,23 @@ TEST(linked_list, simple) {
ASSERT_TRUE(free_called);
ASSERT_EQ("", test_list_to_string(list));
}
TEST(linked_list, push_pop) {
test_list_t list;
list.push_front("b");
list.push_front("a");
ASSERT_EQ("ab", test_list_to_string(list));
list.push_back("c");
ASSERT_EQ("abc", test_list_to_string(list));
ASSERT_EQ("a", list.pop_front());
ASSERT_EQ("bc", test_list_to_string(list));
ASSERT_EQ("b", list.pop_front());
ASSERT_EQ("c", test_list_to_string(list));
ASSERT_EQ("c", list.pop_front());
ASSERT_EQ("", test_list_to_string(list));
ASSERT_TRUE(list.pop_front() == nullptr);
list.push_back("r");
ASSERT_EQ("r", test_list_to_string(list));
ASSERT_EQ("r", list.pop_front());
ASSERT_TRUE(list.pop_front() == nullptr);
}