fix a bug in Vyukov's queue test
[libcds.git] / tests / test-hdr / queue / hdr_vyukov_mpmc_cyclic.cpp
1 //$$CDS-header$$
2
3 #include <cds/container/vyukov_mpmc_cycle_queue.h>
4
5 #include "queue/hdr_queue.h"
6
7 namespace queue {
8     namespace{
9         struct traits_VyukovMPMCCyclicQueue_static : public cds::container::vyukov_queue::traits
10         {
11             typedef cds::opt::v::static_buffer<int, 1024> buffer;
12         };
13         struct traits_VyukovMPMCCyclicQueue_static_ic : public traits_VyukovMPMCCyclicQueue_static
14         {
15             typedef cds::atomicity::item_counter item_counter;
16         };
17     }
18     void HdrTestQueue::VyukovMPMCCycleQueue_static()
19     {
20         typedef cds::container::VyukovMPMCCycleQueue< int, traits_VyukovMPMCCyclicQueue_static > queue_type;
21
22         test_bounded_no_ic< queue_type >();
23     }
24
25     void HdrTestQueue::VyukovMPMCCycleQueue_static_ic()
26     {
27         typedef cds::container::VyukovMPMCCycleQueue< int, traits_VyukovMPMCCyclicQueue_static_ic > queue_type;
28         test_bounded_ic< queue_type >();
29     }
30
31     void HdrTestQueue::VyukovMPMCCycleQueue_dyn()
32     {
33         class queue_type : public cds::container::VyukovMPMCCycleQueue < int >
34         {
35             typedef cds::container::VyukovMPMCCycleQueue < int > base_class;
36         public:
37             queue_type() : base_class( 1024 ) {}
38         };
39         test_bounded_no_ic< queue_type >();
40     }
41
42     void HdrTestQueue::VyukovMPMCCycleQueue_dyn_ic()
43     {
44         class queue_type :
45             public cds::container::VyukovMPMCCycleQueue < int,
46             typename cds::container::vyukov_queue::make_traits <
47             cds::opt::item_counter < cds::atomicity::item_counter >
48             > ::type
49             >
50         {
51             typedef cds::container::VyukovMPMCCycleQueue < int,
52                 typename cds::container::vyukov_queue::make_traits <
53                     cds::opt::item_counter < cds::atomicity::item_counter >
54                 > ::type
55             > base_class;
56         public:
57             queue_type() : base_class( 1024 ) {}
58         };
59         test_bounded_ic< queue_type >();
60     }
61
62 }