-#include <chrono>
-#include <cassert>
-#include <iostream>
-#include <memory>
-
-namespace {
-
-const char* kTestName = "EnqueueDequeue";
-
-// Unbounded queue
-size_t kUnboundedQueueEnqueueStride = 10000;
-size_t kUSPSCQueueEnqueueCount = 1200000000;
-const char* kUSPSCQueueBenchmarkName = "FollyUnboundedQueue_SPSC";
-size_t kUMPSCQueueEnqueueCount = 320000000;
-const char* kUMPSCQueueBenchmarkName = "FollyUnboundedQueue_MPSC";
-size_t kUSPMCQueueEnqueueCount = 320000000;
-const char* kUSPMCQueueBenchmarkName = "FollyUnboundedQueue_SPMC";
-size_t kUMPMCQueueEnqueueCount = 320000000;
-const char* kUMPMCQueueBenchmarkName = "FollyUnboundedQueue_MPMC";
-
-typedef folly::USPSCQueue<size_t, false> USPSCQueue;
-typedef folly::UMPSCQueue<size_t, false> UMPSCQueue;
-typedef folly::USPMCQueue<size_t, false> USPMCQueue;
-typedef folly::UMPMCQueue<size_t, false> UMPMCQueue;
-
-// Dynamic bounded queue
-size_t kDynamicBoundedQueueEnqueueStride = 50000;
-size_t kDynamicBoundedQueueCapacity = 200000;
-size_t kDSPSCQueueEnqueueCount = 1200000000;
-const char* kDSPSCQueueBenchmarkName = "FollyDynamicBoundedQueue_SPSC";
-size_t kDMPSCQueueEnqueueCount = 320000000;
-const char* kDMPSCQueueBenchmarkName = "FollyDynamicBoundedQueue_MPSC";
-size_t kDSPMCQueueEnqueueCount = 320000000;
-const char* kDSPMCQueueBenchmarkName = "FollyDynamicBoundedQueue_SPMC";
-size_t kDMPMCQueueEnqueueCount = 320000000;
-const char* kDMPMCQueueBenchmarkName = "FollyDynamicBoundedQueue_MPMC";
-
-typedef folly::DSPSCQueue<size_t, false> DSPSCQueue;
-typedef folly::DMPSCQueue<size_t, false> DMPSCQueue;
-typedef folly::DSPMCQueue<size_t, false> DSPMCQueue;
-typedef folly::DMPMCQueue<size_t, false> DMPMCQueue;
-
-// AtomicLinkedList
-size_t kAtomicLinkedListSize = 50000;
-size_t kAtomicLinkedListPassCount = 10000;
-const char* kAtomicLinkedListBenchmarkName = "FollyAtomicLinkedList";
-typedef folly::AtomicLinkedList<size_t> AtomicLinkedList;
-
-// MPMC Queue (linearizable)
-size_t kMPMCQueueEnqueueStride = 10000;
-size_t kMPMCQueueCapacity = 50000;
-size_t kMPMCQueueEnqueueCount = 500000000;
-const char* kMPMCQueueBenchmarkName = "FollyMPMCQueue";
-typedef folly::MPMCQueue<size_t> MPMCQueue;
+ // AtomicLinkedList
+ static size_t s_nAtomicLinkedListSize;
+ static size_t s_nAtomicLinkedListPassCount;
+
+ // MPMC Queue (linearizable)
+ static size_t s_nMPMCQueueEnqueueStride;
+ static size_t s_nMPMCQueueCapacity;
+ static size_t s_nMPMCQueueEnqueueCount;
+
+ static void SetUpTestCase() {
+ const cds_test::config &cfg = get_config("SequentialFollyQueue");
+ // Unbounded queue
+ GetConfigNonZeroExpected(UnboundedQueueEnqueueStride, 10000);
+ GetConfigNonZeroExpected(USPSCQueueEnqueueCount, 1200000000);
+ GetConfigNonZeroExpected(UMPSCQueueEnqueueCount, 320000000);
+ GetConfigNonZeroExpected(USPMCQueueEnqueueCount, 320000000);
+ GetConfigNonZeroExpected(UMPMCQueueEnqueueCount, 320000000);
+ // Dynamic bounded queue
+ GetConfigNonZeroExpected(DynamicBoundedQueueEnqueueStride, 50000);
+ GetConfigNonZeroExpected(DynamicBoundedQueueCapacity, 200000);
+ GetConfigNonZeroExpected(DSPSCQueueEnqueueCount, 1200000000);
+ GetConfigNonZeroExpected(DMPSCQueueEnqueueCount, 320000000);
+ GetConfigNonZeroExpected(DSPMCQueueEnqueueCount, 320000000);
+ GetConfigNonZeroExpected(DMPMCQueueEnqueueCount, 320000000);
+ // AtomicLinkedList
+ GetConfigNonZeroExpected(AtomicLinkedListSize, 50000);
+ GetConfigNonZeroExpected(AtomicLinkedListPassCount, 10000);
+ // MPMC Queue (linearizable)
+ GetConfigNonZeroExpected(MPMCQueueEnqueueStride, 10000);
+ GetConfigNonZeroExpected(MPMCQueueCapacity, 50000);
+ GetConfigNonZeroExpected(MPMCQueueEnqueueCount, 500000000);
+ }