testsuite: add test for growing then shrinking a hash

This commit is contained in:
Caio Marcelo de Oliveira Filho 2015-01-21 09:37:21 -02:00 committed by Lucas De Marchi
parent 9c2d39c735
commit 22f602c3c5
1 changed files with 33 additions and 0 deletions

View File

@ -246,4 +246,37 @@ static int test_hash_add_unique(const struct test *t)
DEFINE_TEST(test_hash_add_unique,
.description = "test hash_add_unique with different key orders")
static int test_hash_massive_add_del(const struct test *t)
{
char buf[1024 * 8];
char *k;
struct hash *h;
unsigned int i, N = 1024;
h = hash_new(8, NULL);
k = &buf[0];
for (i = 0; i < N; i++) {
snprintf(k, 8, "k%d", i);
hash_add(h, k, k);
k += 8;
}
assert_return(hash_get_count(h) == N, EXIT_FAILURE);
k = &buf[0];
for (i = 0; i < N; i++) {
hash_del(h, k);
k += 8;
}
assert_return(hash_get_count(h) == 0, EXIT_FAILURE);
hash_free(h);
return 0;
}
DEFINE_TEST(test_hash_massive_add_del,
.description = "test multiple adds followed by multiple dels")
TESTSUITE_MAIN();