3 #include "hdr_intrusive_msqueue.h"
4 #include "hdr_intrusive_singlelink_node.h"
6 #include <cds/intrusive/msqueue.h>
7 #include <cds/gc/hrc.h>
11 #define TEST(X) void IntrusiveQueueHeaderTest::test_##X() { test<X>(); }
16 typedef ci::MSQueue< cds::gc::HRC,
17 base_hook_item<cds::gc::HRC>
19 ci::single_link::base_hook< ci::opt::gc<cds::gc::HRC> >
21 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
24 // HRC base hook + item counter
25 typedef ci::MSQueue< cds::gc::HRC,
26 base_hook_item<cds::gc::HRC>
28 ci::single_link::base_hook< ci::opt::gc<cds::gc::HRC> >
30 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
31 ,co::item_counter< cds::atomicity::item_counter >
32 > MSQueue_HRC_base_ic;
34 // HRC base hook + stat
35 typedef ci::MSQueue< cds::gc::HRC,
36 base_hook_item<cds::gc::HRC>
38 ci::single_link::base_hook< ci::opt::gc<cds::gc::HRC> >
40 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
41 ,co::stat< ci::queue_stat<> >
42 > MSQueue_HRC_base_stat;
44 // HRC base hook + alignment
45 typedef ci::MSQueue< cds::gc::HRC,
46 base_hook_item<cds::gc::HRC>
48 ci::single_link::base_hook< ci::opt::gc<cds::gc::HRC> >
50 ,ci::opt::disposer< IntrusiveQueueHeaderTest::faked_disposer >
52 > MSQueue_HRC_base_align;
55 TEST(MSQueue_HRC_base)
56 TEST(MSQueue_HRC_base_ic)
57 TEST(MSQueue_HRC_base_stat)
58 TEST(MSQueue_HRC_base_align)