3 #include "list/hdr_intrusive_michael.h"
4 #include <cds/intrusive/michael_list_hp.h>
7 void IntrusiveMichaelListHeaderTest::HP_base_cmp()
9 typedef base_int_item< cds::gc::HP > item;
10 struct traits : public ci::michael_list::traits {
11 typedef ci::michael_list::base_hook< co::gc<cds::gc::HP> > hook;
12 typedef cmp<item> compare;
13 typedef faked_disposer disposer;
15 typedef ci::MichaelList< cds::gc::HP, item, traits > list;
18 void IntrusiveMichaelListHeaderTest::HP_base_less()
20 typedef base_int_item< cds::gc::HP > item;
21 typedef ci::MichaelList< cds::gc::HP
23 ,ci::michael_list::make_traits<
24 ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::HP> > >
25 ,co::less< less<item> >
26 ,ci::opt::disposer< faked_disposer >
31 void IntrusiveMichaelListHeaderTest::HP_base_cmpmix()
33 typedef base_int_item< cds::gc::HP > item;
34 typedef ci::MichaelList< cds::gc::HP
36 ,ci::michael_list::make_traits<
37 ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::HP> > >
38 ,co::less< less<item> >
39 ,co::compare< cmp<item> >
40 ,ci::opt::disposer< faked_disposer >
45 void IntrusiveMichaelListHeaderTest::HP_base_ic()
47 typedef base_int_item< cds::gc::HP > item;
48 typedef ci::MichaelList< cds::gc::HP
50 ,ci::michael_list::make_traits<
51 ci::opt::hook< ci::michael_list::base_hook< co::gc<cds::gc::HP> > >
52 ,co::less< less<item> >
53 ,co::compare< cmp<item> >
54 ,ci::opt::disposer< faked_disposer >
55 ,co::item_counter< cds::atomicity::item_counter >
60 void IntrusiveMichaelListHeaderTest::HP_member_cmp()
62 typedef member_int_item< cds::gc::HP > item;
63 typedef ci::MichaelList< cds::gc::HP
65 ,ci::michael_list::make_traits<
66 ci::opt::hook< ci::michael_list::member_hook<
67 offsetof( item, hMember ),
70 ,co::compare< cmp<item> >
71 ,ci::opt::disposer< faked_disposer >
76 void IntrusiveMichaelListHeaderTest::HP_member_less()
78 typedef member_int_item< cds::gc::HP > item;
79 typedef ci::MichaelList< cds::gc::HP
81 ,ci::michael_list::make_traits<
82 ci::opt::hook< ci::michael_list::member_hook<
83 offsetof( item, hMember ),
86 ,co::less< less<item> >
87 ,ci::opt::disposer< faked_disposer >
92 void IntrusiveMichaelListHeaderTest::HP_member_cmpmix()
94 typedef member_int_item< cds::gc::HP > item;
95 typedef ci::MichaelList< cds::gc::HP
97 ,ci::michael_list::make_traits<
98 ci::opt::hook< ci::michael_list::member_hook<
99 offsetof( item, hMember ),
102 ,co::less< less<item> >
103 ,co::compare< cmp<item> >
104 ,ci::opt::disposer< faked_disposer >
109 void IntrusiveMichaelListHeaderTest::HP_member_ic()
111 typedef member_int_item< cds::gc::HP > item;
112 typedef ci::MichaelList< cds::gc::HP
114 ,ci::michael_list::make_traits<
115 ci::opt::hook< ci::michael_list::member_hook<
116 offsetof( item, hMember ),
119 ,co::compare< cmp<item> >
120 ,ci::opt::disposer< faked_disposer >
121 ,co::item_counter< cds::atomicity::item_counter >
126 } // namespace ordlist
128 CPPUNIT_TEST_SUITE_REGISTRATION(ordlist::IntrusiveMichaelListHeaderTest);