Move libcds 1.6.0 from SVN
[libcds.git] / tests / test-hdr / queue / hdr_fcqueue.cpp
1 //$$CDS-header$$
2
3 #include <cds/container/fcqueue.h>
4 #include "queue/queue_test_header.h"
5
6 #include <list>
7
8 namespace queue {
9
10     void Queue_TestHeader::FCQueue_deque()
11     {
12         typedef cds::container::FCQueue<int> queue_type;
13         testFCQueue<queue_type>();
14     }
15
16     void Queue_TestHeader::FCQueue_deque_elimination()
17     {
18         typedef cds::container::FCQueue<int, std::queue< int, std::deque<int> >,
19             cds::container::fcqueue::make_traits<
20                 cds::opt::enable_elimination< true >
21             >::type
22         > queue_type;
23         testFCQueue<queue_type>();
24     }
25
26     void Queue_TestHeader::FCQueue_deque_mutex()
27     {
28         typedef cds::container::FCQueue<int, std::queue< int, std::deque<int> >,
29             cds::container::fcqueue::make_traits<
30                 cds::opt::lock_type< cds_std::mutex >
31             >::type
32         > queue_type;
33         testFCQueue<queue_type>();
34     }
35
36     void Queue_TestHeader::FCQueue_deque_stat()
37     {
38         typedef cds::container::FCQueue<int, std::queue< int, std::deque<int> >,
39             cds::container::fcqueue::make_traits<
40                 cds::opt::stat< cds::container::fcqueue::stat<> >
41             >::type
42         > queue_type;
43         testFCQueue<queue_type>();
44     }
45
46     //
47     void Queue_TestHeader::FCQueue_list()
48     {
49         typedef cds::container::FCQueue<int, std::queue< int, std::list<int> > > queue_type;
50         testFCQueue<queue_type>();
51     }
52
53     void Queue_TestHeader::FCQueue_list_elimination()
54     {
55         typedef cds::container::FCQueue<int, std::queue< int, std::list<int> >,
56             cds::container::fcqueue::make_traits<
57                 cds::opt::enable_elimination< true >
58             >::type
59         > queue_type;
60         testFCQueue<queue_type>();
61     }
62
63     void Queue_TestHeader::FCQueue_list_mutex()
64     {
65         typedef cds::container::FCQueue<int, std::queue<int, std::list<int> >,
66             cds::container::fcqueue::make_traits<
67                 cds::opt::lock_type< cds_std::mutex >
68             >::type
69         > queue_type;
70         testFCQueue<queue_type>();
71     }
72
73     void Queue_TestHeader::FCQueue_list_stat()
74     {
75         typedef cds::container::FCQueue<int, std::queue< int, std::list<int> >,
76             cds::container::fcqueue::make_traits<
77             cds::opt::stat< cds::container::fcqueue::stat<> >
78             >::type
79         > queue_type;
80         testFCQueue<queue_type>();
81     }
82
83 } // namespace queue