3#ifndef HASHTABLES_TEST_UTILS_H
4#define HASHTABLES_TEST_UTILS_H
6#include "internal/hashtable_internal.h"
7#include "internal/data_structure_memory_allocator.h"
8#include "internal/data_structure_string_utils.h"
10typedef unsigned long (*hash_djb2_fn)(
const void *key, hashtable_key_type key_type);
11unsigned long real_hash_djb2(
const void *key, hashtable_key_type key_type);
12extern hash_djb2_fn hash_djb2_mockable;
13void set_hash_djb2(hash_djb2_fn f);
15typedef hashtable *(*hashtable_create_fn)(
size_t size, hashtable_key_type key_type, hashtable_destroy_value_fn_t destroy_value_fn);
16hashtable *real_hashtable_create(
size_t size, hashtable_key_type key_type, hashtable_destroy_value_fn_t destroy_value_fn);
17extern hashtable_create_fn hashtable_create_mockable;
18void set_hashtable_create(hashtable_create_fn f);
20static void hashtable_destroy_entry(
void *item,
void *user_data);
21typedef void (*hashtable_destroy_fn)(
hashtable *ht);
22void real_hashtable_destroy(
hashtable *ht);
23extern hashtable_destroy_fn hashtable_destroy_mockable;
24void set_hashtable_destroy(hashtable_destroy_fn f);
26typedef void *(*hashtable_get_fn)(
const hashtable *ht,
const void *key);
27void *real_hashtable_get(
const hashtable *ht,
const void *key);
28extern hashtable_get_fn hashtable_get_mockable;
29void set_hashtable_get(hashtable_get_fn f);
31typedef int (*hashtable_add_fn)(
hashtable *ht,
const void *key,
void *value);
32int real_hashtable_add(
hashtable *ht,
const void *key,
void *value);
33extern hashtable_add_fn hashtable_add_mockable;
34void set_hashtable_add(hashtable_add_fn f);
36typedef int (*hashtable_reset_value_fn)(
hashtable *ht,
const void *key,
void *value);
37int real_hashtable_reset_value(
hashtable *ht,
const void *key,
void *value);
38extern hashtable_reset_value_fn hashtable_reset_value_mockable;
39void set_hashtable_reset_value(hashtable_reset_value_fn f);
41typedef int (*hashtable_remove_fn)(
hashtable *ht,
const void *key);
42int real_hashtable_remove(
hashtable *ht,
const void *key);
43extern hashtable_remove_fn hashtable_remove_mockable;
44void set_hashtable_remove(hashtable_remove_fn f);
46typedef int (*hashtable_key_is_in_use_fn)(
hashtable *ht,
const void *key);
47int real_hashtable_key_is_in_use(
hashtable *ht,
const void *key);
48extern hashtable_key_is_in_use_fn hashtable_key_is_in_use_mockable;
49void set_hashtable_key_is_in_use(hashtable_key_is_in_use_fn f);
Definition hashtable_internal.h:14