| 239 | } |
| 240 | |
| 241 | static void t_alloc(struct hashmap *map, unsigned int ignore_case) |
| 242 | { |
| 243 | struct test_entry *entry, *removed; |
| 244 | |
| 245 | for (int i = 1; i <= 51; i++) { |
| 246 | char *key = xstrfmt("key%d", i); |
| 247 | char *value = xstrfmt("value%d", i); |
| 248 | entry = alloc_test_entry(key, value, ignore_case); |
| 249 | cl_assert_equal_p(hashmap_put_entry(map, entry, ent), NULL); |
| 250 | free(key); |
| 251 | free(value); |
| 252 | } |
| 253 | cl_assert_equal_i(map->tablesize, 64); |
| 254 | cl_assert_equal_i(hashmap_get_size(map), 51); |
| 255 | |
| 256 | entry = alloc_test_entry("key52", "value52", ignore_case); |
| 257 | cl_assert_equal_p(hashmap_put_entry(map, entry, ent), NULL); |
| 258 | cl_assert_equal_i(map->tablesize, 256); |
| 259 | cl_assert_equal_i(hashmap_get_size(map), 52); |
| 260 | |
| 261 | for (int i = 1; i <= 12; i++) { |
| 262 | char *key = xstrfmt("key%d", i); |
| 263 | char *value = xstrfmt("value%d", i); |
| 264 | |
| 265 | entry = alloc_test_entry(key, "", ignore_case); |
| 266 | removed = hashmap_remove_entry(map, entry, ent, key); |
| 267 | cl_assert(removed != NULL); |
| 268 | cl_assert_equal_s(value, get_value(removed)); |
| 269 | free(key); |
| 270 | free(value); |
| 271 | free(entry); |
| 272 | free(removed); |
| 273 | } |
| 274 | cl_assert_equal_i(map->tablesize, 256); |
| 275 | cl_assert_equal_i(hashmap_get_size(map), 40); |
| 276 | |
| 277 | entry = alloc_test_entry("key40", "", ignore_case); |
| 278 | removed = hashmap_remove_entry(map, entry, ent, "key40"); |
| 279 | cl_assert(removed != NULL); |
| 280 | cl_assert_equal_s("value40", get_value(removed)); |
| 281 | cl_assert_equal_i(map->tablesize, 64); |
| 282 | cl_assert_equal_i(hashmap_get_size(map), 39); |
| 283 | free(entry); |
| 284 | free(removed); |
| 285 | } |
| 286 | |
| 287 | void test_hashmap__intern(void) |
| 288 | { |
nothing calls this directly
no test coverage detected