<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_skiplist_rcu_sht_member.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_hp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_hp_lazy.cpp" />\r
- <ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_hrc_lazy.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_nogc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_nogc_lazy.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_ptb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_skiplist_set_rcu_sht.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_hp.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_hp.cpp" />\r
- <ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_hrc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_nogc.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_ptb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_rcu_gpb.cpp" />\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_hp_lazy.cpp">\r
<Filter>intrusive\split_list</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_hrc_lazy.cpp">\r
- <Filter>intrusive\split_list</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_intrusive_splitlist_set_nogc.cpp">\r
<Filter>intrusive\split_list</Filter>\r
</ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_hp.cpp">\r
<Filter>container\split_list</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_hrc.cpp">\r
- <Filter>container\split_list</Filter>\r
- </ClCompile>\r
<ClCompile Include="..\..\..\tests\test-hdr\set\hdr_splitlist_set_lazy_nogc.cpp">\r
<Filter>container\split_list</Filter>\r
</ClCompile>\r
void PTB_member_less_lazy();
void PTB_member_cmpmix_lazy();
- void HRC_base_cmp_lazy();
- void HRC_base_less_lazy();
- void HRC_base_cmpmix_lazy();
-
void RCU_GPI_base_cmp_lazy();
void RCU_GPI_base_less_lazy();
void RCU_GPI_base_cmpmix_lazy();
void split_st_PTB_member_less_lazy();
void split_st_PTB_member_cmpmix_lazy();
- void split_dyn_HRC_base_cmp_lazy();
- void split_dyn_HRC_base_less_lazy();
- void split_dyn_HRC_base_cmpmix_lazy();
- void split_st_HRC_base_cmp_lazy();
- void split_st_HRC_base_less_lazy();
- void split_st_HRC_base_cmpmix_lazy();
-
void split_dyn_RCU_GPI_base_cmp_lazy();
void split_dyn_RCU_GPI_base_less_lazy();
void split_dyn_RCU_GPI_base_cmpmix_lazy();
CPPUNIT_TEST(PTB_member_less_lazy)
CPPUNIT_TEST(PTB_member_cmpmix_lazy)
- CPPUNIT_TEST(HRC_base_cmp_lazy)
- CPPUNIT_TEST(HRC_base_less_lazy)
- CPPUNIT_TEST(HRC_base_cmpmix_lazy)
-
CPPUNIT_TEST(RCU_GPI_base_cmp_lazy)
CPPUNIT_TEST(RCU_GPI_base_less_lazy)
CPPUNIT_TEST(RCU_GPI_base_cmpmix_lazy)
CPPUNIT_TEST(split_st_PTB_member_less_lazy)
CPPUNIT_TEST(split_st_PTB_member_cmpmix_lazy)
- CPPUNIT_TEST(split_dyn_HRC_base_cmp_lazy)
- CPPUNIT_TEST(split_dyn_HRC_base_less_lazy)
- CPPUNIT_TEST(split_dyn_HRC_base_cmpmix_lazy)
- CPPUNIT_TEST(split_st_HRC_base_cmp_lazy)
- CPPUNIT_TEST(split_st_HRC_base_less_lazy)
- CPPUNIT_TEST(split_st_HRC_base_cmpmix_lazy)
-
CPPUNIT_TEST(split_dyn_RCU_GPI_base_cmp_lazy)
CPPUNIT_TEST(split_dyn_RCU_GPI_base_less_lazy)
CPPUNIT_TEST(split_dyn_RCU_GPI_base_cmpmix_lazy)
+++ /dev/null
-//$$CDS-header$$
-
-#include "set/hdr_intrusive_set.h"
-#include <cds/intrusive/lazy_list_hrc.h>
-#include <cds/intrusive/split_list.h>
-
-namespace set {
-
- void IntrusiveHashSetHdrTest::split_dyn_HRC_base_cmp_lazy()
- {
- typedef base_int_item< ci::split_list::node< ci::lazy_list::node<cds::gc::HRC> > > item;
- typedef ci::LazyList< cds::gc::HRC
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::HRC> > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > ord_list;
-
- typedef ci::SplitListSet< cds::gc::HRC, ord_list,
- ci::split_list::make_traits<
- co::hash< hash_int >
- ,ci::split_list::dynamic_bucket_table<true>
- ,co::memory_model<co::v::relaxed_ordering>
- >::type
- > set;
- static_assert( set::options::dynamic_bucket_table, "Set has static bucket table" );
-
- test_int<set>();
- }
-
- void IntrusiveHashSetHdrTest::split_dyn_HRC_base_less_lazy()
- {
- typedef base_int_item< ci::split_list::node< ci::lazy_list::node<cds::gc::HRC> > > item;
- typedef ci::LazyList< cds::gc::HRC
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::HRC> > >
- ,co::less< less<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > ord_list;
-
- typedef ci::SplitListSet< cds::gc::HRC, ord_list,
- ci::split_list::make_traits<
- co::hash< hash_int >
- ,co::memory_model<co::v::sequential_consistent>
- >::type
- > set;
- static_assert( set::options::dynamic_bucket_table, "Set has static bucket table" );
-
- test_int<set>();
- }
-
- void IntrusiveHashSetHdrTest::split_dyn_HRC_base_cmpmix_lazy()
- {
- typedef base_int_item< ci::split_list::node<ci::lazy_list::node<cds::gc::HRC> > > item;
- typedef ci::LazyList< cds::gc::HRC
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::HRC> > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > ord_list;
-
- typedef ci::SplitListSet< cds::gc::HRC, ord_list,
- ci::split_list::make_traits<
- co::hash< hash_int >
- ,co::item_counter< simple_item_counter >
- ,ci::split_list::dynamic_bucket_table<true>
- >::type
- > set;
- static_assert( set::options::dynamic_bucket_table, "Set has static bucket table" );
-
- test_int<set>();
- }
-
- // Static bucket table
- void IntrusiveHashSetHdrTest::split_st_HRC_base_cmp_lazy()
- {
- typedef base_int_item< ci::split_list::node< ci::lazy_list::node<cds::gc::HRC> > > item;
- typedef ci::LazyList< cds::gc::HRC
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::HRC> > >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > ord_list;
-
- typedef ci::SplitListSet< cds::gc::HRC, ord_list,
- ci::split_list::make_traits<
- co::hash< hash_int >
- ,ci::split_list::dynamic_bucket_table<false>
- ,co::memory_model<co::v::relaxed_ordering>
- >::type
- > set;
- static_assert( !set::options::dynamic_bucket_table, "Set has dynamic bucket table" );
-
- test_int<set>();
- }
-
- void IntrusiveHashSetHdrTest::split_st_HRC_base_less_lazy()
- {
- typedef base_int_item< ci::split_list::node< ci::lazy_list::node<cds::gc::HRC> > > item;
- typedef ci::LazyList< cds::gc::HRC
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::HRC> > >
- ,co::less< less<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > ord_list;
-
- typedef ci::SplitListSet< cds::gc::HRC, ord_list,
- ci::split_list::make_traits<
- co::hash< hash_int >
- ,ci::split_list::dynamic_bucket_table<false>
- ,co::memory_model<co::v::sequential_consistent>
- >::type
- > set;
- static_assert( !set::options::dynamic_bucket_table, "Set has dynamic bucket table" );
-
- test_int<set>();
- }
-
- void IntrusiveHashSetHdrTest::split_st_HRC_base_cmpmix_lazy()
- {
- typedef base_int_item< ci::split_list::node<ci::lazy_list::node<cds::gc::HRC> > > item;
- typedef ci::LazyList< cds::gc::HRC
- ,item
- ,ci::lazy_list::make_traits<
- ci::opt::hook< ci::lazy_list::base_hook< co::gc<cds::gc::HRC> > >
- ,co::less< less<item> >
- ,co::compare< cmp<item> >
- ,ci::opt::disposer< faked_disposer >
- >::type
- > ord_list;
-
- typedef ci::SplitListSet< cds::gc::HRC, ord_list,
- ci::split_list::make_traits<
- co::hash< hash_int >
- ,co::item_counter< simple_item_counter >
- ,ci::split_list::dynamic_bucket_table<false>
- >::type
- > set;
- static_assert( !set::options::dynamic_bucket_table, "Set has dynamic bucket table" );
-
- test_int<set>();
- }
-
-} // namespace set
void Lazy_PTB_less();
void Lazy_PTB_cmpmix();
- void Lazy_HRC_cmp();
- void Lazy_HRC_less();
- void Lazy_HRC_cmpmix();
-
void Lazy_RCU_GPI_cmp();
void Lazy_RCU_GPI_less();
void Lazy_RCU_GPI_cmpmix();
void Split_Lazy_PTB_less();
void Split_Lazy_PTB_cmpmix();
- void Split_Lazy_HRC_cmp();
- void Split_Lazy_HRC_less();
- void Split_Lazy_HRC_cmpmix();
-
void Split_Lazy_RCU_GPI_cmp();
void Split_Lazy_RCU_GPI_less();
void Split_Lazy_RCU_GPI_cmpmix();
CPPUNIT_TEST(Lazy_PTB_less)
CPPUNIT_TEST(Lazy_PTB_cmpmix)
- CPPUNIT_TEST(Lazy_HRC_cmp)
- CPPUNIT_TEST(Lazy_HRC_less)
- CPPUNIT_TEST(Lazy_HRC_cmpmix)
-
CPPUNIT_TEST(Lazy_RCU_GPI_cmp)
CPPUNIT_TEST(Lazy_RCU_GPI_less)
CPPUNIT_TEST(Lazy_RCU_GPI_cmpmix)
CPPUNIT_TEST(Split_Lazy_PTB_less)
CPPUNIT_TEST(Split_Lazy_PTB_cmpmix)
- CPPUNIT_TEST(Split_Lazy_HRC_cmp)
- CPPUNIT_TEST(Split_Lazy_HRC_less)
- CPPUNIT_TEST(Split_Lazy_HRC_cmpmix)
-
CPPUNIT_TEST(Split_Lazy_RCU_GPI_cmp)
CPPUNIT_TEST(Split_Lazy_RCU_GPI_less)
CPPUNIT_TEST(Split_Lazy_RCU_GPI_cmpmix)
+++ /dev/null
-//$$CDS-header$$
-
-#include "set/hdr_set.h"
-#include <cds/container/lazy_list_hrc.h>
-#include <cds/container/split_list_set.h>
-
-namespace set {
-
- namespace {
- struct HRC_cmp_traits: public cc::split_list::type_traits
- {
- typedef cc::lazy_list_tag ordered_list;
- typedef HashSetHdrTest::hash_int hash;
- typedef HashSetHdrTest::simple_item_counter item_counter;
- typedef cc::opt::v::relaxed_ordering memory_model;
- enum { dynamic_bucket_table = false };
-
- struct ordered_list_traits: public cc::lazy_list::type_traits
- {
- typedef HashSetHdrTest::cmp<HashSetHdrTest::item> compare;
- };
- };
-
- struct HRC_less_traits: public cc::split_list::type_traits
- {
- typedef cc::lazy_list_tag ordered_list;
- typedef HashSetHdrTest::hash_int hash;
- typedef HashSetHdrTest::simple_item_counter item_counter;
- typedef cc::opt::v::sequential_consistent memory_model;
- enum { dynamic_bucket_table = false };
-
- struct ordered_list_traits: public cc::lazy_list::type_traits
- {
- typedef HashSetHdrTest::less<HashSetHdrTest::item> less;
- };
- };
-
- struct HRC_cmpmix_traits: public cc::split_list::type_traits
- {
- typedef cc::lazy_list_tag ordered_list;
- typedef HashSetHdrTest::hash_int hash;
- typedef HashSetHdrTest::simple_item_counter item_counter;
-
- struct ordered_list_traits: public cc::lazy_list::type_traits
- {
- typedef HashSetHdrTest::cmp<HashSetHdrTest::item> compare;
- typedef HashSetHdrTest::less<HashSetHdrTest::item> less;
- };
- };
- }
-
- void HashSetHdrTest::Split_Lazy_HRC_cmp()
- {
- // traits-based version
- typedef cc::SplitListSet< cds::gc::HRC, item, HRC_cmp_traits > set;
-
- test_int< set >();
-
- // option-based version
- typedef cc::SplitListSet< cds::gc::HRC, item,
- cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::opt::hash< hash_int >
- ,cc::opt::item_counter< simple_item_counter >
- ,cc::opt::memory_model< cc::opt::v::relaxed_ordering >
- ,cc::split_list::dynamic_bucket_table< true >
- ,cc::split_list::ordered_list_traits<
- cc::lazy_list::make_traits<
- cc::opt::compare< cmp<item> >
- >::type
- >
- >::type
- > opt_set;
- test_int< opt_set >();
- }
-
- void HashSetHdrTest::Split_Lazy_HRC_less()
- {
- // traits-based version
- typedef cc::SplitListSet< cds::gc::HRC, item, HRC_less_traits > set;
-
- test_int< set >();
-
- // option-based version
- typedef cc::SplitListSet< cds::gc::HRC, item,
- cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::opt::hash< hash_int >
- ,cc::opt::item_counter< simple_item_counter >
- ,cc::opt::memory_model< cc::opt::v::sequential_consistent >
- ,cc::split_list::dynamic_bucket_table< false >
- ,cc::split_list::ordered_list_traits<
- cc::lazy_list::make_traits<
- cc::opt::less< less<item> >
- >::type
- >
- >::type
- > opt_set;
- test_int< opt_set >();
- }
-
- void HashSetHdrTest::Split_Lazy_HRC_cmpmix()
- {
- // traits-based version
- typedef cc::SplitListSet< cds::gc::HRC, item, HRC_cmpmix_traits > set;
- test_int< set >();
-
- // option-based version
- typedef cc::SplitListSet< cds::gc::HRC, item,
- cc::split_list::make_traits<
- cc::split_list::ordered_list<cc::lazy_list_tag>
- ,cc::opt::hash< hash_int >
- ,cc::opt::item_counter< simple_item_counter >
- ,cc::split_list::ordered_list_traits<
- cc::lazy_list::make_traits<
- cc::opt::less< less<item> >
- ,cc::opt::compare< cmp<item> >
- >::type
- >
- >::type
- > opt_set;
- test_int< opt_set >();
- }
-
-
-} // namespace set
-
-