Fixed priority inversion bug in MSPriorityQueue
[libcds.git] / test / unit / pqueue / intrusive_mspqueue.cpp
index c5e29c07de86e5039519718ec1db9944440d0d32..ee95693c69909423db6e6a3956cf16d7cd86a614 100644 (file)
@@ -267,4 +267,32 @@ namespace {
         test( *pq );
     }
 
+    TEST_F( IntrusiveMSPQueue, bit_reverse_counter )
+    {
+        typedef cds::intrusive::MSPriorityQueue< value_type,
+            cds::intrusive::mspriority_queue::make_traits<
+            cds::opt::buffer< dyn_buffer_type >
+            , cds::opt::less< less >
+            , cds::opt::item_counter< cds::bitop::bit_reverse_counter<>>
+            >::type
+        > pqueue;
+
+        pqueue pq( c_nCapacity );
+        test( pq );
+    }
+
+    TEST_F( IntrusiveMSPQueue, monotonic_counter )
+    {
+        typedef cds::intrusive::MSPriorityQueue< value_type,
+            cds::intrusive::mspriority_queue::make_traits<
+            cds::opt::buffer< dyn_buffer_type >
+            , cds::opt::less< less >
+            , cds::opt::item_counter< cds::intrusive::mspriority_queue::monotonic_counter >
+            >::type
+        > pqueue;
+
+        pqueue pq( c_nCapacity );
+        test( pq );
+    }
+
 } // namespace