Reorgs added benchmarks (put them in misc folder)
[libcds.git] / test / stress / misc / deque_driver.cpp
index da84edb437d7499f98a061b8e5db9c62fceb0a4b..8976c3cdc3eed9a5992b7a5e9012d4f491ea8ad9 100644 (file)
@@ -1,9 +1,10 @@
 #include "common.h"
-#include <cds/container/chase-lev-deque.h>
+#include <cds/misc/chase-lev-deque.h>
 #include <cds_test/stress_test.h>
 #include <cstdlib>
 #include <ctime>
 #include <iostream>
+#include <memory>
 #include <thread>
 
 using namespace std;
@@ -54,15 +55,15 @@ protected:
         }
       }
     }
-    //    while (true) {
-    //      int res = deque->take();
-    //      if (res != EMPTY) {
-    //        sums[index] += res;
-    //        succ_counts[index]++;
-    //      } else {
-    //        break;
-    //      }
-    //    }
+    while (true) {
+      int res = deque->take();
+      if (res != EMPTY) {
+        sums[index] += res;
+        succ_counts[index]++;
+      } else {
+        break;
+      }
+    }
   }
 };
 
@@ -82,7 +83,8 @@ TEST_F(ChaseLevDequeTest, DequePushPopTake) {
   srand(time(NULL));
 
   // Stealer threads
-  std::thread *threads = new std::thread[s_nDequeStealerThreadCount];
+  std::unique_ptr<std::thread[]> threads(
+      new std::thread[s_nDequeStealerThreadCount]);
   for (ullong i = 0; i < s_nDequeStealerThreadCount; i++) {
     threads[i] = std::thread(StealerThread, i);
   }
@@ -103,10 +105,13 @@ TEST_F(ChaseLevDequeTest, DequePushPopTake) {
     received_sum += sums[i];
     overall_count += succ_counts[i];
   }
-  cout << "Sum of push: " << push_sum << "\n";
-  cout << "Received sum:" << received_sum << "\n";
-  cout << "overall_count:" << overall_count << "\n";
-  cout << "push_count=" << push_count << "\n";
+  if (overall_count != push_count || received_sum != push_sum) {
+    cout << "Incorrect deque\n";
+    cout << "Push sum: " << push_sum << "\n";
+    cout << "Received sum:" << received_sum << "\n";
+    cout << "Push count=" << push_count << "\n";
+    cout << "Received count:" << overall_count << "\n";
+  }
 }
 
 } // namespace