4ce2686f9a0225938313c3bf7599954f448f817c
[libcds.git] / tests / test-hdr / ordered_list / hdr_intrusive_lazy_nogc.cpp
1 //$$CDS-header$$
2
3 #include "ordered_list/hdr_intrusive_lazy.h"
4 #include <cds/intrusive/lazy_list_nogc.h>
5
6 namespace ordlist {
7     void IntrusiveLazyListHeaderTest::nogc_base_cmp()
8     {
9         typedef base_int_item< cds::gc::nogc > item;
10         struct traits : public ci::lazy_list::traits {
11             typedef ci::lazy_list::base_hook< co::gc<cds::gc::nogc> > hook;
12             typedef cmp<item> compare;
13             typedef faked_disposer disposer;
14         };
15         typedef ci::LazyList< cds::gc::nogc, item, traits > list;
16         test_nogc_int<list>();
17     }
18
19     void IntrusiveLazyListHeaderTest::nogc_base_less()
20     {
21         typedef base_int_item< cds::gc::nogc > item;
22         struct traits: public
23             ci::lazy_list::make_traits<
24                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::nogc> > >
25                 ,co::less< less<item> >
26                 ,ci::opt::disposer< faked_disposer >
27             >::type
28         {};
29         typedef ci::LazyList< cds::gc::nogc, item, traits > list;
30         test_nogc_int<list>();
31     }
32
33     void IntrusiveLazyListHeaderTest::nogc_base_cmpmix()
34     {
35         typedef base_int_item< cds::gc::nogc > item;
36         typedef ci::LazyList< cds::gc::nogc
37             ,item
38             ,ci::lazy_list::make_traits<
39                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::nogc> > >
40                 ,co::less< less<item> >
41                 ,co::compare< cmp<item> >
42                 ,ci::opt::disposer< faked_disposer >
43             >::type
44         >    list;
45         test_nogc_int<list>();
46     }
47
48     void IntrusiveLazyListHeaderTest::nogc_base_ic()
49     {
50         typedef base_int_item< cds::gc::nogc > item;
51         typedef ci::LazyList< cds::gc::nogc
52             ,item
53             ,ci::lazy_list::make_traits<
54                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::nogc> > >
55                 ,co::less< less<item> >
56                 ,co::compare< cmp<item> >
57                 ,ci::opt::disposer< faked_disposer >
58                 ,co::item_counter< cds::atomicity::item_counter >
59             >::type
60         >    list;
61         test_nogc_int<list>();
62     }
63
64     void IntrusiveLazyListHeaderTest::nogc_base_unord_equal()
65     {
66         typedef base_int_item< cds::gc::nogc > item;
67         struct traits: public
68             ci::lazy_list::make_traits<
69                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::nogc> > >
70                 ,co::sort< false >
71                 ,co::equal_to< equal<item> >
72                 ,ci::opt::disposer< faked_disposer >
73             >::type
74         {};
75         typedef ci::LazyList< cds::gc::nogc, item, traits > list;
76         test_nogc_int<list>();
77     }
78
79     void IntrusiveLazyListHeaderTest::nogc_base_unord_cmp()
80     {
81         typedef base_int_item< cds::gc::nogc > item;
82         struct traits: public
83             ci::lazy_list::make_traits<
84                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::nogc> > >
85                 ,co::sort< false >
86                 ,co::compare< cmp<item> >
87                 ,ci::opt::disposer< faked_disposer >
88             >::type
89         {};
90         typedef ci::LazyList< cds::gc::nogc, item, traits > list;
91         test_nogc_int<list>();
92     }
93
94     void IntrusiveLazyListHeaderTest::nogc_base_unord_less()
95     {
96         typedef base_int_item< cds::gc::nogc > item;
97         struct traits: public
98             ci::lazy_list::make_traits<
99                 ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::nogc> > >
100                 ,co::sort< false >
101                 ,co::less< less<item> >
102                 ,ci::opt::disposer< faked_disposer >
103             >::type
104         {};
105         typedef ci::LazyList< cds::gc::nogc, item, traits > list;
106         test_nogc_int<list>();
107     }
108
109     void IntrusiveLazyListHeaderTest::nogc_member_cmp()
110     {
111         typedef member_int_item< cds::gc::nogc > item;
112         typedef ci::LazyList< cds::gc::nogc
113             ,item
114             ,ci::lazy_list::make_traits<
115                 ci::opt::hook< ci::lazy_list::member_hook<
116                     offsetof( item, hMember ),
117                     co::gc<cds::gc::nogc>
118                 > >
119                 ,co::compare< cmp<item> >
120                 ,ci::opt::disposer< faked_disposer >
121             >::type
122         >    list;
123         test_nogc_int<list>();
124     }
125
126     void IntrusiveLazyListHeaderTest::nogc_member_less()
127     {
128         typedef member_int_item< cds::gc::nogc > item;
129         typedef ci::LazyList< cds::gc::nogc
130             ,item
131             ,ci::lazy_list::make_traits<
132                 ci::opt::hook< ci::lazy_list::member_hook<
133                     offsetof( item, hMember ),
134                     co::gc<cds::gc::nogc>
135                 > >
136                 ,co::less< less<item> >
137                 ,ci::opt::disposer< faked_disposer >
138             >::type
139         >    list;
140         test_nogc_int<list>();
141     }
142
143     void IntrusiveLazyListHeaderTest::nogc_member_cmpmix()
144     {
145         typedef member_int_item< cds::gc::nogc > item;
146         typedef ci::LazyList< cds::gc::nogc
147             ,item
148             ,ci::lazy_list::make_traits<
149                 ci::opt::hook< ci::lazy_list::member_hook<
150                     offsetof( item, hMember ),
151                     co::gc<cds::gc::nogc>
152                 > >
153                 ,co::less< less<item> >
154                 ,co::compare< cmp<item> >
155                 ,ci::opt::disposer< faked_disposer >
156             >::type
157         >    list;
158         test_nogc_int<list>();
159     }
160
161     void IntrusiveLazyListHeaderTest::nogc_member_ic()
162     {
163         typedef member_int_item< cds::gc::nogc > item;
164         typedef ci::LazyList< cds::gc::nogc
165             ,item
166             ,ci::lazy_list::make_traits<
167                 ci::opt::hook< ci::lazy_list::member_hook<
168                     offsetof( item, hMember ),
169                     co::gc<cds::gc::nogc>
170                 > >
171                 ,co::compare< cmp<item> >
172                 ,ci::opt::disposer< faked_disposer >
173                 ,co::item_counter< cds::atomicity::item_counter >
174             >::type
175         >    list;
176         test_nogc_int<list>();
177     }
178
179     void IntrusiveLazyListHeaderTest::nogc_member_unord_equal()
180     {
181         typedef member_int_item< cds::gc::nogc > item;
182         typedef ci::LazyList< cds::gc::nogc
183             ,item
184             ,ci::lazy_list::make_traits<
185                 ci::opt::hook< ci::lazy_list::member_hook<
186                     offsetof( item, hMember ),
187                     co::gc<cds::gc::nogc>
188                 > >
189                 ,co::sort< false >
190                 ,co::equal_to< equal<item> >
191                 ,ci::opt::disposer< faked_disposer >
192             >::type
193         >    list;
194         test_nogc_int<list>();
195     }
196
197     void IntrusiveLazyListHeaderTest::nogc_member_unord_cmp()
198     {
199         typedef member_int_item< cds::gc::nogc > item;
200         typedef ci::LazyList< cds::gc::nogc
201             ,item
202             ,ci::lazy_list::make_traits<
203                 ci::opt::hook< ci::lazy_list::member_hook<
204                     offsetof( item, hMember ),
205                     co::gc<cds::gc::nogc>
206                 > >
207                 ,co::sort< false >
208                 ,co::compare< cmp<item> >
209                 ,ci::opt::disposer< faked_disposer >
210             >::type
211         >    list;
212         test_nogc_int<list>();
213     }
214
215     void IntrusiveLazyListHeaderTest::nogc_member_unord_less()
216     {
217         typedef member_int_item< cds::gc::nogc > item;
218         typedef ci::LazyList< cds::gc::nogc
219             ,item
220             ,ci::lazy_list::make_traits<
221                 ci::opt::hook< ci::lazy_list::member_hook<
222                     offsetof( item, hMember ),
223                     co::gc<cds::gc::nogc>
224                 > >
225                 ,co::sort< false >
226                 ,co::less< less<item> >
227                 ,ci::opt::disposer< faked_disposer >
228             >::type
229         >    list;
230         test_nogc_int<list>();
231     }
232
233 } // namespace ordlist