3 #include "map/hdr_multilevel_hashmap.h"
4 #include <cds/container/multilevel_hashmap_hp.h>
5 #include "unit/print_multilevel_hashset_stat.h"
9 typedef cds::gc::HP gc_type;
12 void MultiLevelHashMapHdrTest::hp_stdhash()
14 typedef cc::MultiLevelHashMap< gc_type, size_t, Item > map_type;
16 test_hp<map_type>(4, 2);
19 void MultiLevelHashMapHdrTest::hp_hash128()
21 struct traits : public cc::multilevel_hashmap::traits {
22 typedef hash128::make hash;
23 typedef hash128::less less;
25 typedef cc::MultiLevelHashMap< gc_type, size_t, Item, traits > map_type;
26 test_hp<map_type>(4, 2);
28 typedef cc::MultiLevelHashMap< gc_type, size_t, Item,
29 typename cc::multilevel_hashmap::make_traits<
30 co::hash< hash128::make >
31 , co::less< hash128::less >
34 test_hp<map_type2>(4, 2);
37 void MultiLevelHashMapHdrTest::hp_stdhash_stat()
39 struct traits : public cc::multilevel_hashmap::traits {
40 typedef cc::multilevel_hashmap::stat<> stat;
42 typedef cc::MultiLevelHashMap< gc_type, size_t, Item, traits > map_type;
43 test_hp<map_type>(4, 2);
45 typedef cc::MultiLevelHashMap< gc_type, size_t, Item,
46 typename cc::multilevel_hashmap::make_traits<
47 co::stat< cc::multilevel_hashmap::stat<>>
50 test_hp<map_type2>(4, 2);
53 void MultiLevelHashMapHdrTest::hp_hash128_stat()
55 struct traits : public cc::multilevel_hashmap::traits {
56 typedef cc::multilevel_hashmap::stat<> stat;
57 typedef hash128::make hash;
58 typedef hash128::cmp compare;
60 typedef cc::MultiLevelHashMap< gc_type, size_t, Item, traits > map_type;
61 test_hp<map_type>(4, 2);
63 typedef cc::MultiLevelHashMap< gc_type, size_t, Item,
64 typename cc::multilevel_hashmap::make_traits<
65 co::stat< cc::multilevel_hashmap::stat<>>
66 , co::hash< hash128::make >
67 , co::compare< hash128::cmp >
70 test_hp<map_type2>(4, 2);
73 void MultiLevelHashMapHdrTest::hp_stdhash_5_3()
75 typedef cc::MultiLevelHashMap< gc_type, size_t, Item > map_type;
77 test_hp<map_type>(5, 3);
80 void MultiLevelHashMapHdrTest::hp_stdhash_5_3_stat()
82 struct traits : public cc::multilevel_hashmap::traits {
83 typedef cc::multilevel_hashmap::stat<> stat;
84 typedef cds::backoff::empty back_off;
86 typedef cc::MultiLevelHashMap< gc_type, size_t, Item, traits > map_type;
87 test_hp<map_type>(5, 3);
89 typedef cc::MultiLevelHashMap< gc_type, size_t, Item,
90 typename cc::multilevel_hashmap::make_traits<
91 co::stat< cc::multilevel_hashmap::stat<>>
92 ,co::back_off< cds::backoff::empty >
95 test_hp<map_type2>(5, 3);
98 void MultiLevelHashMapHdrTest::hp_hash128_4_3()
100 struct traits : public cc::multilevel_hashmap::traits {
101 typedef hash128::make hash;
102 typedef hash128::less less;
104 typedef cc::MultiLevelHashMap< gc_type, size_t, Item, traits > map_type;
105 test_hp<map_type>(4, 3);
107 typedef cc::MultiLevelHashMap< gc_type, size_t, Item,
108 typename cc::multilevel_hashmap::make_traits<
109 co::hash< hash128::make >
110 , co::less< hash128::less >
113 test_hp<map_type2>(4, 3);
116 void MultiLevelHashMapHdrTest::hp_hash128_4_3_stat()
118 struct traits : public cc::multilevel_hashmap::traits {
119 typedef hash128::make hash;
120 typedef hash128::less less;
121 typedef cc::multilevel_hashmap::stat<> stat;
122 typedef co::v::sequential_consistent memory_model;
124 typedef cc::MultiLevelHashMap< gc_type, size_t, Item, traits > map_type;
125 test_hp<map_type>(4, 3);
127 typedef cc::MultiLevelHashMap< gc_type, size_t, Item,
128 typename cc::multilevel_hashmap::make_traits<
129 co::hash< hash128::make >
130 , co::less< hash128::less >
131 , co::stat< cc::multilevel_hashmap::stat<>>
132 , co::memory_model< co::v::sequential_consistent >
135 test_hp<map_type2>(4, 3);
140 CPPUNIT_TEST_SUITE_REGISTRATION(map::MultiLevelHashMapHdrTest);