Fixed use-after-free bug in VyukovMPMCCycleQueue internal buffer.
[libcds.git] / test / unit / stack / treiber_stack_dhp.cpp
index 3eef2fb7534a22cf50f326b5ec6017f2b6cadc0a..d396fb2ef99a3713fbcf02b2427bee47186ca667 100644 (file)
     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
-\r
-#include "test_treiber_stack.h"\r
-\r
-#include <cds/gc/dhp.h>\r
-#include <cds/container/treiber_stack.h>\r
-\r
-namespace {\r
-\r
-    namespace cc = cds::container;\r
-    typedef cds::gc::DHP gc_type;\r
-\r
-    class TreiberStack_DHP : public cds_gtest::TreiberStack\r
-    {\r
-        typedef cds_gtest::TreiberStack base_class;\r
-\r
-    protected:\r
-        void SetUp()\r
-        {\r
-            typedef cc::TreiberStack< gc_type, int > stack_type;\r
-\r
-            cds::gc::dhp::GarbageCollector::Construct( 16, stack_type::c_nHazardPtrCount );\r
-            cds::threading::Manager::attachThread();\r
-        }\r
-\r
-        void TearDown() \r
-        {\r
-            cds::threading::Manager::detachThread();\r
-            cds::gc::dhp::GarbageCollector::Destruct();\r
-        }\r
-\r
-        template <typename Stack>\r
-        void test()\r
-        {\r
-            Stack stack;\r
-            base_class::test( stack );\r
-        }\r
-\r
-        template <typename Stack>\r
-        void test_dyn( size_t elimination_size )\r
-        {\r
-            Stack stack( elimination_size );\r
-            base_class::test( stack );\r
-        }\r
-    };\r
-\r
+
+#include "test_treiber_stack.h"
+
+#include <cds/gc/dhp.h>
+#include <cds/container/treiber_stack.h>
+
+namespace {
+
+    namespace cc = cds::container;
+    typedef cds::gc::DHP gc_type;
+
+    class TreiberStack_DHP : public cds_test::TreiberStack
+    {
+        typedef cds_test::TreiberStack base_class;
+
+    protected:
+        void SetUp()
+        {
+            typedef cc::TreiberStack< gc_type, int > stack_type;
+
+            cds::gc::dhp::GarbageCollector::Construct( 16, stack_type::c_nHazardPtrCount );
+            cds::threading::Manager::attachThread();
+        }
+
+        void TearDown() 
+        {
+            cds::threading::Manager::detachThread();
+            cds::gc::dhp::GarbageCollector::Destruct();
+        }
+
+        template <typename Stack>
+        void test()
+        {
+            Stack stack;
+            base_class::test( stack );
+        }
+
+        template <typename Stack>
+        void test_dyn( size_t elimination_size )
+        {
+            Stack stack( elimination_size );
+            base_class::test( stack );
+        }
+    };
+
     TEST_F( TreiberStack_DHP, defaulted )
     {
         typedef cc::TreiberStack< gc_type, int > stack_type;
 
         test<stack_type>();
     }
-\r
+
     TEST_F( TreiberStack_DHP, backoff )
     {
         typedef cc::TreiberStack< gc_type, int
@@ -89,7 +89,7 @@ namespace {
 
         test<stack_type>();
     }
-\r
+
     TEST_F( TreiberStack_DHP, alloc )
     {
         // allocator must be rebinded for real value type
@@ -111,7 +111,7 @@ namespace {
 
         test<stack_type>();
     }
-\r
+
     TEST_F( TreiberStack_DHP, elimination )
     {
         typedef cc::TreiberStack< gc_type, int
@@ -122,7 +122,7 @@ namespace {
 
         test<stack_type>();
     }
-\r
+
     TEST_F( TreiberStack_DHP, elimination_backoff )
     {
         struct traits : public cc::treiber_stack::traits
@@ -136,19 +136,19 @@ namespace {
 
         test<stack_type>();
     }
-\r
+
     TEST_F( TreiberStack_DHP, elimination_dynamic )
     {
         typedef cc::TreiberStack< gc_type, int
             , typename cc::treiber_stack::make_traits<
                 cds::opt::enable_elimination<true>
-                , cds::opt::buffer< cds::opt::v::dynamic_buffer<void *> >
+                , cds::opt::buffer< cds::opt::v::initialized_dynamic_buffer<void *> >
             >::type
         > stack_type;
 
         test_dyn<stack_type>( 4 );
     }
-\r
+
     TEST_F( TreiberStack_DHP, elimination_stat )
     {
         typedef cc::TreiberStack< gc_type, int
@@ -160,7 +160,7 @@ namespace {
 
         test<stack_type>();
     }
-\r
+
     TEST_F( TreiberStack_DHP, elimination_dynamic_backoff )
     {
         struct traits : public cc::treiber_stack::traits
@@ -168,12 +168,12 @@ namespace {
             enum {
                 enable_elimination = true
             };
-            typedef cds::opt::v::dynamic_buffer<void *> buffer;
+            typedef cds::opt::v::initialized_dynamic_buffer<void *> buffer;
             typedef cds::backoff::yield back_off;
         };
         typedef cc::TreiberStack< gc_type, int, traits > stack_type;
 
         test_dyn<stack_type>( 2 );
     }
-\r
-} // namespace\r
+
+} // namespace