Added wait strategies to flat combining technique
[libcds.git] / test / unit / pqueue / fcpqueue_boost_stable_vector.cpp
index 91044795a052865e746b07529fbe36b0dac08398..cb51b44527bb234d2f75326ae22b6bb7505acf34 100644 (file)
@@ -68,6 +68,63 @@ namespace cds_test {
         test( pq );
     }
 
+    TEST_F( FCPQueue, stable_vector_empty_wait_strategy )
+    {
+        typedef cds::container::FCPriorityQueue<
+            value_type
+            ,std::priority_queue<
+                value_type
+                ,boost::container::stable_vector<value_type>
+                ,less
+            >
+            ,cds::container::fcpqueue::make_traits<
+                cds::opt::stat< cds::container::fcpqueue::stat<> >
+                , cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::empty >
+            >::type
+        > pqueue_type;
+
+        pqueue_type pq;
+        test( pq );
+    }
+
+    TEST_F( FCPQueue, stable_vector_single_mutex_single_condvar )
+    {
+        typedef cds::container::FCPriorityQueue<
+            value_type
+            ,std::priority_queue<
+                value_type
+                ,boost::container::stable_vector<value_type>
+                ,less
+            >
+            ,cds::container::fcpqueue::make_traits<
+                cds::opt::stat< cds::container::fcpqueue::stat<> >
+                , cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::single_mutex_single_condvar<>>
+            >::type
+        > pqueue_type;
+
+        pqueue_type pq;
+        test( pq );
+    }
+
+    TEST_F( FCPQueue, stable_vector_single_mutex_multi_condvar )
+    {
+        typedef cds::container::FCPriorityQueue<
+            value_type
+            ,std::priority_queue<
+                value_type
+                ,boost::container::stable_vector<value_type>
+                ,less
+            >
+            ,cds::container::fcpqueue::make_traits<
+                cds::opt::stat< cds::container::fcpqueue::stat<> >
+                , cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::single_mutex_multi_condvar<4>>
+            >::type
+        > pqueue_type;
+
+        pqueue_type pq;
+        test( pq );
+    }
+
     TEST_F( FCPQueue, boost_deque )
     {
         typedef cds::container::FCPriorityQueue<
@@ -101,4 +158,42 @@ namespace cds_test {
         test( pq );
     }
 
+    TEST_F( FCPQueue, boost_deque_empty_wait_strategy )
+    {
+        typedef cds::container::FCPriorityQueue<
+            value_type
+            ,std::priority_queue<
+                value_type
+                ,boost::container::deque<value_type>
+                ,less
+            >
+            ,cds::container::fcpqueue::make_traits<
+                cds::opt::stat< cds::container::fcpqueue::stat<> >
+                ,cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::empty >
+            >::type
+        > pqueue_type;
+
+        pqueue_type pq;
+        test( pq );
+    }
+
+    TEST_F( FCPQueue, boost_deque_multi_mutex_multi_condvar )
+    {
+        typedef cds::container::FCPriorityQueue<
+            value_type
+            ,std::priority_queue<
+                value_type
+                ,boost::container::deque<value_type>
+                ,less
+            >
+            ,cds::container::fcpqueue::make_traits<
+                cds::opt::stat< cds::container::fcpqueue::stat<> >
+                ,cds::opt::wait_strategy< cds::algo::flat_combining::wait_strategy::multi_mutex_multi_condvar<6>>
+            >::type
+        > pqueue_type;
+
+        pqueue_type pq;
+        test( pq );
+    }
+
 } // namespace cds_test