From 8f4cba86a56cd69d95b07dda7e002f33cbe6ba62 Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Sun, 19 Apr 2015 02:45:29 -0300 Subject: trie: fixed memory leak when replacing existing key --- tests/check_utils.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'tests') diff --git a/tests/check_utils.c b/tests/check_utils.c index 5f4cb9f..b3bada7 100644 --- a/tests/check_utils.c +++ b/tests/check_utils.c @@ -622,6 +622,39 @@ test_trie_insert(void **state) } +static void +test_trie_insert_duplicated(void **state) +{ + b_trie_t *trie = b_trie_new(free); + + b_trie_insert(trie, "bola", b_strdup("guda")); + assert_true(trie->root->key == 'b'); + assert_null(trie->root->data); + assert_true(trie->root->child->key == 'o'); + assert_null(trie->root->child->data); + assert_true(trie->root->child->child->key == 'l'); + assert_null(trie->root->child->child->data); + assert_true(trie->root->child->child->child->key == 'a'); + assert_null(trie->root->child->child->child->data); + assert_true(trie->root->child->child->child->child->key == '\0'); + assert_string_equal(trie->root->child->child->child->child->data, "guda"); + + b_trie_insert(trie, "bola", b_strdup("asdf")); + assert_true(trie->root->key == 'b'); + assert_null(trie->root->data); + assert_true(trie->root->child->key == 'o'); + assert_null(trie->root->child->data); + assert_true(trie->root->child->child->key == 'l'); + assert_null(trie->root->child->child->data); + assert_true(trie->root->child->child->child->key == 'a'); + assert_null(trie->root->child->child->child->data); + assert_true(trie->root->child->child->child->child->key == '\0'); + assert_string_equal(trie->root->child->child->child->child->data, "asdf"); + + b_trie_free(trie); +} + + static void test_trie_keep_data(void **state) { @@ -781,6 +814,7 @@ main(void) // trie unit_test(test_trie_new), unit_test(test_trie_insert), + unit_test(test_trie_insert_duplicated), unit_test(test_trie_keep_data), unit_test(test_trie_lookup), unit_test(test_trie_size), -- cgit v1.2.3-18-g5258