lexLeo
Loading...
Searching...
No Matches
hashtable_test_utils.h
1// src/foundation/data_structures/include/internal/hashtable_test_utils.h
2
3#ifndef HASHTABLES_TEST_UTILS_H
4#define HASHTABLES_TEST_UTILS_H
5
6#include "internal/hashtable_internal.h"
7#include "internal/data_structure_memory_allocator.h"
8#include "internal/data_structure_string_utils.h"
9
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);
14
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);
19
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);
25
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);
30
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);
35
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);
40
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);
45
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);
50
51#endif //HASHTABLES_TEST_UTILS_H
Definition hashtable_internal.h:14