1 #include "../../../test.h"
2 #include "../../../../src/alloc.h"
3 #include "../../../../src/server/protocol2/champ_chooser/hash.h"
4 
tear_down(void)5 static void tear_down(void)
6 {
7 	hash_delete_all();
8 	alloc_check();
9 }
10 
START_TEST(test_hash_weak_add_alloc_error)11 START_TEST(test_hash_weak_add_alloc_error)
12 {
13 	uint64_t f0=0xFF11223344556699;
14 	alloc_errors=1;
15 	fail_unless(!hash_weak_add(f0));
16 	tear_down();
17 }
18 END_TEST
19 
START_TEST(test_hash_weak_add)20 START_TEST(test_hash_weak_add)
21 {
22 	uint64_t f0=0xFF11223344556699;
23 	uint64_t f1=0xFF11223344556690;
24 	uint64_t f2=0xFF00112233445566;
25 	uint64_t f3=0xFF001122AA445566;
26 	fail_unless(hash_weak_add(f0)!=NULL);
27 	fail_unless(hash_weak_add(f1)!=NULL);
28 	fail_unless(hash_weak_find(f0)!=NULL);
29 	fail_unless(hash_weak_find(f1)!=NULL);
30 	fail_unless(hash_weak_find(f2)==NULL);
31 	fail_unless(hash_weak_find(f3)==NULL);
32 	tear_down();
33 }
34 END_TEST
35 
START_TEST(test_hash_load_fail_to_open)36 START_TEST(test_hash_load_fail_to_open)
37 {
38 	fail_unless(hash_load("champ", "dir")==HASH_RET_TEMP);
39 }
40 END_TEST
41 
suite_server_protocol2_champ_chooser_hash(void)42 Suite *suite_server_protocol2_champ_chooser_hash(void)
43 {
44 	Suite *s;
45 	TCase *tc_core;
46 
47 	s=suite_create("server_protocol2_champ_chooser_hash");
48 
49 	tc_core=tcase_create("Core");
50 
51 	tcase_add_test(tc_core, test_hash_weak_add_alloc_error);
52 	tcase_add_test(tc_core, test_hash_weak_add);
53 	tcase_add_test(tc_core, test_hash_load_fail_to_open);
54 	suite_add_tcase(s, tc_core);
55 
56 	return s;
57 }
58