3 #include "unordered_list/hdr_lazy.h"
4 #include <cds/container/lazy_list_nogc.h>
8 struct NOGC_cmp_traits : public cc::lazy_list::traits
10 typedef UnorderedLazyListTestHeader::cmp<UnorderedLazyListTestHeader::item> compare;
11 static const bool sort = false;
14 void UnorderedLazyListTestHeader::NOGC_cmp()
16 // traits-based version
17 typedef cc::LazyList< cds::gc::nogc, item, NOGC_cmp_traits > list;
20 // option-based version
21 typedef cc::LazyList< cds::gc::nogc, item,
22 cc::lazy_list::make_traits<
23 cc::opt::compare< cmp<item> >
27 nogc_test< opt_list >();
31 struct NOGC_less_traits : public cc::lazy_list::traits
33 typedef UnorderedLazyListTestHeader::lt<UnorderedLazyListTestHeader::item> less;
34 static const bool sort = false;
37 void UnorderedLazyListTestHeader::NOGC_less()
39 // traits-based version
40 typedef cc::LazyList< cds::gc::nogc, item, NOGC_less_traits > list;
43 // option-based version
44 typedef cc::LazyList< cds::gc::nogc, item,
45 cc::lazy_list::make_traits<
46 cc::opt::less< lt<item> >
50 nogc_test< opt_list >();
54 struct NOGC_equal_to_traits : public cc::lazy_list::traits
56 typedef UnorderedLazyListTestHeader::equal_to<UnorderedLazyListTestHeader::item> equal_to;
57 static const bool sort = false;
60 void UnorderedLazyListTestHeader::NOGC_equal_to()
62 // traits-based version
63 typedef cc::LazyList< cds::gc::nogc, item, NOGC_equal_to_traits > list;
66 // option-based version
67 typedef cc::LazyList< cds::gc::nogc, item,
68 cc::lazy_list::make_traits<
69 cc::opt::equal_to< equal_to<item> >
73 nogc_test< opt_list >();
77 struct NOGC_cmpmix_traits : public cc::lazy_list::traits
79 typedef UnorderedLazyListTestHeader::cmp<UnorderedLazyListTestHeader::item> compare;
80 typedef UnorderedLazyListTestHeader::lt<UnorderedLazyListTestHeader::item> less;
81 static const bool sort = false;
84 void UnorderedLazyListTestHeader::NOGC_cmpmix()
86 // traits-based version
87 typedef cc::LazyList< cds::gc::nogc, item, NOGC_cmpmix_traits > list;
90 // option-based version
91 typedef cc::LazyList< cds::gc::nogc, item,
92 cc::lazy_list::make_traits<
93 cc::opt::compare< cmp<item> >
94 ,cc::opt::less< lt<item> >
98 nogc_test< opt_list >();
102 struct NOGC_equal_to_mix_traits : public cc::lazy_list::traits
104 typedef UnorderedLazyListTestHeader::cmp<UnorderedLazyListTestHeader::item> compare;
105 typedef UnorderedLazyListTestHeader::lt<UnorderedLazyListTestHeader::item> less;
106 typedef UnorderedLazyListTestHeader::equal_to<UnorderedLazyListTestHeader::item> equal_to;
107 static const bool sort = false;
110 void UnorderedLazyListTestHeader::NOGC_equal_to_mix()
112 // traits-based version
113 typedef cc::LazyList< cds::gc::nogc, item, NOGC_equal_to_mix_traits > list;
116 // option-based version
117 typedef cc::LazyList< cds::gc::nogc, item,
118 cc::lazy_list::make_traits<
119 cc::opt::compare< cmp<item> >
120 ,cc::opt::less< lt<item> >
121 ,cc::opt::equal_to< equal_to<item> >
122 ,cc::opt::sort<false>
125 nogc_test< opt_list >();
128 struct NOGC_ic_traits : public cc::lazy_list::traits
130 typedef UnorderedLazyListTestHeader::equal_to<UnorderedLazyListTestHeader::item> equal_to;
131 typedef cds::atomicity::item_counter item_counter;
132 static const bool sort = false;
135 void UnorderedLazyListTestHeader::NOGC_ic()
137 // traits-based version
138 typedef cc::LazyList< cds::gc::nogc, item, NOGC_ic_traits > list;
141 // option-based version
142 typedef cc::LazyList< cds::gc::nogc, item,
143 cc::lazy_list::make_traits<
144 cc::opt::equal_to< equal_to<item> >
145 ,cc::opt::item_counter< cds::atomicity::item_counter >
146 ,cc::opt::sort<false>
149 nogc_test< opt_list >();
152 } // namespace unordlist
153 CPPUNIT_TEST_SUITE_REGISTRATION(unordlist::UnorderedLazyListTestHeader);