Merge branch 'integration' of github.com:khizmax/libcds into integration
authorkhizmax <libcds.dev@gmail.com>
Mon, 27 Jun 2016 18:37:12 +0000 (21:37 +0300)
committerkhizmax <libcds.dev@gmail.com>
Mon, 27 Jun 2016 18:37:12 +0000 (21:37 +0300)
test/stress/data/test-debug.conf
test/stress/data/test-express.conf
test/stress/queue/bounded_queue_fulness.cpp
test/stress/queue/intrusive_push_pop.cpp
test/stress/queue/pop.cpp
test/stress/queue/push.cpp
test/stress/queue/push_pop.cpp
test/stress/queue/queue_type.h
test/stress/queue/random.cpp

index d684ed2ad4c33cdb90484d7ffb9d95e0d7eadfe5..c72fb215e418460921e5f22e9781a51d1e9d198d 100644 (file)
@@ -192,7 +192,7 @@ InsertThreadCount=4
 DeleteThreadCount=4\r
 MapSize=5000\r
 GoalItem=2500\r
-AttemptCount=200\r
+AttemptCount=500\r
 MaxLoadFactor=4\r
 \r
 # *** Cuckoo map properties\r
@@ -242,9 +242,9 @@ FeldmanMapArrayBits=4
 InitialMapSize=50000\r
 ThreadCount=4\r
 MaxLoadFactor=8\r
-InsertPercentage=10\r
-DeletePercentage=10\r
-Duration=5\r
+InsertPercentage=20\r
+DeletePercentage=20\r
+Duration=3\r
 \r
 # *** Cuckoo map properties\r
 CuckooInitialSize=256\r
index 15c9e657b33e829184bbbbcc6c582f21fd64ee75..27eef183b4cff4a4731be4d105ae5e7ac26ff756 100644 (file)
@@ -149,7 +149,7 @@ FeldmanMapArrayBits=4
 [map_insdel_int]\r
 InsertThreadCount=4\r
 DeleteThreadCount=4\r
-ThreadPassCount=6\r
+ThreadPassCount=15\r
 MapSize=50000\r
 MaxLoadFactor=4\r
 \r
@@ -186,7 +186,7 @@ InsertThreadCount=4
 DeleteThreadCount=4\r
 MapSize=10000\r
 GoalItem=5000\r
-AttemptCount=3000\r
+AttemptCount=10000\r
 MaxLoadFactor=4\r
 \r
 # *** Cuckoo map properties\r
@@ -202,7 +202,7 @@ FeldmanMapArrayBits=4
 [map_insdel_string]\r
 InsertThreadCount=4\r
 DeleteThreadCount=4\r
-ThreadPassCount=3\r
+ThreadPassCount=6\r
 MapSize=50000\r
 MaxLoadFactor=4\r
 PrintGCStateFlag=1\r
@@ -236,9 +236,9 @@ FeldmanMapArrayBits=4
 InitialMapSize=500000\r
 ThreadCount=8\r
 MaxLoadFactor=4\r
-InsertPercentage=10\r
-DeletePercentage=10\r
-Duration=5\r
+InsertPercentage=20\r
+DeletePercentage=20\r
+Duration=3\r
 \r
 # *** Cuckoo map properties\r
 CuckooInitialSize=1024\r
index 1677512733a0d83aaf867eddf7485c6ab83bddf5..ed2580615cad0791332692264b362218a0cd4aa9 100644 (file)
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     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.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include "queue_type.h"
@@ -146,9 +146,10 @@ namespace {
     };
 
 #undef CDSSTRESS_Queue_F
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_F( test_fixture, type_name ) \
     { \
+        /*if ( !check_detail_level( level )) return;*/ \
         typedef queue::Types< size_t >::type_name queue_type; \
         queue_type queue( s_nQueueSize ); \
         test( queue ); \
index ea229eaea9173d574cbebbccbbe3216fdc72e5f4..bc5f0526ebe928a25c2299d18db7495601d69b4a 100644 (file)
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     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.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include "intrusive_queue_type.h"
index d77cd4e54626ba23a4d61fd2853c711a6db8333a..1de0ee2a7bd5235a0b18a94a72ff7119c6e2a698 100644 (file)
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     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.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include "queue_type.h"
@@ -176,9 +176,10 @@ namespace {
     CDSSTRESS_StdQueue( queue_pop )
 
 #undef CDSSTRESS_Queue_F
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_F( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef queue::Types< value_type >::type_name queue_type; \
         queue_type queue( s_nQueueSize ); \
         test( queue ); \
@@ -233,9 +234,10 @@ namespace {
         }
     };
 
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_P( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef typename queue::Types<value_type>::type_name queue_type; \
         test< queue_type >(); \
     }
index fc205b93f2461dc2e89184a9ca7a1b416d98a506..d30aec2f6c34bb0873796282062124fcda90a993 100644 (file)
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     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.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include "queue_type.h"
@@ -179,9 +179,10 @@ namespace {
     CDSSTRESS_StdQueue( queue_push )
 
 #undef CDSSTRESS_Queue_F
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_F( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef queue::Types< value_type >::type_name queue_type; \
         queue_type queue( s_nQueueSize ); \
         test( queue ); \
@@ -236,9 +237,10 @@ namespace {
         }
     };
 
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_P( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef typename queue::Types<value_type>::type_name queue_type; \
         test< queue_type >(); \
     }
index fd0db8695eabe59154fb918483d4874dfeb451a1..f34e5a985111f753071cf777d1fa82b3445a10e5 100644 (file)
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     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.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include "queue_type.h"
@@ -328,9 +328,10 @@ namespace {
     CDSSTRESS_StdQueue( queue_push_pop )
 
 #undef CDSSTRESS_Queue_F
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_F( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef queue::Types< value_type >::type_name queue_type; \
         queue_type queue( s_nQueueSize ); \
         test( queue ); \
@@ -388,9 +389,10 @@ namespace {
         }
     };
 
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_P( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef typename queue::Types<value_type>::type_name queue_type; \
         test< queue_type >(); \
     }
index 4d7c3123efe713ce92c990952e9734baafe5ce98..ca0efe934179d9311417f4d03664c037e11e1f4e 100644 (file)
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     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.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #ifndef CDSSTRESS_QUEUE_TYPES_H
@@ -670,150 +670,151 @@ namespace cds_test {
 
 } // namespace cds_test
 
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_F( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef queue::Types< value_type >::type_name queue_type; \
         queue_type queue; \
         test( queue ); \
     }
 
 #define CDSSTRESS_MSQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_stat )
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP,                0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_michaelAlloc,   0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_seqcst,         2 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_ic,             1 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_HP_stat,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP,               0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_michaelAlloc,  0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_seqcst,        2 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_ic,            1 ) \
+    CDSSTRESS_Queue_F( test_fixture, MSQueue_DHP_stat,          0 )
 
 #define CDSSTRESS_MoirQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_stat )
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP,              0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_michaelAlloc, 0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_seqcst,       2 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_ic,           1 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_HP_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP,             0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_michaelAlloc,0 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_seqcst,      2 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_ic,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, MoirQueue_DHP_stat,        0 )
 
 #define CDSSTRESS_OptimsticQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_stat )
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP,                0 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_michaelAlloc,   0 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_seqcst,         2 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_ic,             1 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_HP_stat,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP,               0 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_michaelAlloc,  0 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_seqcst,        2 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_ic,            1 ) \
+    CDSSTRESS_Queue_F( test_fixture, OptimisticQueue_DHP_stat,          0 )
 
 #define CDSSTRESS_BasketQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_seqcst ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_stat )
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP,                0 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_michaelAlloc,   0 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_seqcst,         2 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_ic,             1 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_HP_stat,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP,               0 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_michaelAlloc,  0 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_seqcst,        2 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_ic,            1 ) \
+    CDSSTRESS_Queue_F( test_fixture, BasketQueue_DHP_stat,          0 )
 
 #define CDSSTRESS_FCQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_ss ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_ss_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination ) \
-    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination_stat )
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque,                 0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_stat,            0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_ss,         1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_ss_stat,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm,         1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_sm_stat,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm,         1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_wait_mm_stat,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination,     1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_deque_elimination_stat,0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list,                  0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_stat,             0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_ss_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_sm_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_wait_mm_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination,      1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCQueue_list_elimination_stat, 0 )
 
 #define CDSSTRESS_FCDeque( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_default ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_mutex ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_default ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_mutex ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination ) \
-    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination_stat )
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_default,              0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_mutex,                0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_stat,                 0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_ss_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_sm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_wait_mm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_elimination_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost,                1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_stat,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination,    1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeL_boost_elimination_stat, 1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_default,              0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_mutex,                0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_stat,                 0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_ss_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_sm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm,              1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_wait_mm_stat,         0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination,          1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_elimination_stat,     0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost,                1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_stat,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination,    1 ) \
+    CDSSTRESS_Queue_F( test_fixture, FCDequeR_boost_elimination_stat, 1 )
 
 #define CDSSTRESS_RWQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, RWQueue_Spin ) \
-    CDSSTRESS_Queue_F( test_fixture, RWQueue_Spin_ic ) \
-    CDSSTRESS_Queue_F( test_fixture, RWQueue_mutex )
+    CDSSTRESS_Queue_F( test_fixture, RWQueue_Spin,      0 ) \
+    CDSSTRESS_Queue_F( test_fixture, RWQueue_Spin_ic,   1 ) \
+    CDSSTRESS_Queue_F( test_fixture, RWQueue_mutex,     0 )
 
 #define CDSSTRESS_SegmentedQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_spin ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_spin_padding ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_spin_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_mutex ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_mutex_padding ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_mutex_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_spin ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_spin_padding ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_spin_stat ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_mutex ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_mutex_padding ) \
-    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_mutex_stat )
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_spin,            0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_spin_padding,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_spin_stat,       0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_mutex,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_mutex_padding,   1 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_HP_mutex_stat,      0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_spin,           0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_spin_padding,   1 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_spin_stat,      0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_mutex,          0 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_mutex_padding,  1 ) \
+    CDSSTRESS_Queue_F( test_fixture, SegmentedQueue_DHP_mutex_stat,     0 )
 
 
 #define CDSSTRESS_TsigasQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, TsigasCycleQueue_dyn ) \
-    CDSSTRESS_Queue_F( test_fixture, TsigasCycleQueue_dyn_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, TsigasCycleQueue_dyn_ic )
+    CDSSTRESS_Queue_F( test_fixture, TsigasCycleQueue_dyn,              0 ) \
+    CDSSTRESS_Queue_F( test_fixture, TsigasCycleQueue_dyn_michaelAlloc, 0 ) \
+    CDSSTRESS_Queue_F( test_fixture, TsigasCycleQueue_dyn_ic,           1 )
 
 #define CDSSTRESS_VyukovQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, VyukovMPMCCycleQueue_dyn ) \
-    CDSSTRESS_Queue_F( test_fixture, VyukovMPMCCycleQueue_dyn_michaelAlloc ) \
-    CDSSTRESS_Queue_F( test_fixture, VyukovMPMCCycleQueue_dyn_ic )
+    CDSSTRESS_Queue_F( test_fixture, VyukovMPMCCycleQueue_dyn,              0 ) \
+    CDSSTRESS_Queue_F( test_fixture, VyukovMPMCCycleQueue_dyn_michaelAlloc, 0 ) \
+    CDSSTRESS_Queue_F( test_fixture, VyukovMPMCCycleQueue_dyn_ic,           1 )
 
 #define CDSSTRESS_StdQueue( test_fixture ) \
-    CDSSTRESS_Queue_F( test_fixture, StdQueue_deque_Spinlock ) \
-    CDSSTRESS_Queue_F( test_fixture, StdQueue_list_Spinlock ) \
-    CDSSTRESS_Queue_F( test_fixture, StdQueue_deque_Mutex ) \
-    CDSSTRESS_Queue_F( test_fixture, StdQueue_list_Mutex )
+    CDSSTRESS_Queue_F( test_fixture, StdQueue_deque_Spinlock,   0 ) \
+    CDSSTRESS_Queue_F( test_fixture, StdQueue_list_Spinlock,    0 ) \
+    CDSSTRESS_Queue_F( test_fixture, StdQueue_deque_Mutex,      1 ) \
+    CDSSTRESS_Queue_F( test_fixture, StdQueue_list_Mutex,       1 )
 
 #endif // #ifndef CDSSTRESS_QUEUE_TYPES_H
index f444f6369deae3d6abd5cc979dda4d14b864d44f..1f499841ad0dd7744ee13ca9b9a1725fd5867021 100644 (file)
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     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.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include "queue_type.h"
@@ -243,9 +243,10 @@ namespace {
     CDSSTRESS_StdQueue( queue_random )
 
 #undef CDSSTRESS_Queue_F
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_F( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef queue::Types< value_type >::type_name queue_type; \
         queue_type queue( s_nQueueSize ); \
         test( queue ); \
@@ -315,9 +316,10 @@ namespace {
         }
     };
 
-#define CDSSTRESS_Queue_F( test_fixture, type_name ) \
+#define CDSSTRESS_Queue_F( test_fixture, type_name, level ) \
     TEST_P( test_fixture, type_name ) \
     { \
+        if ( !check_detail_level( level )) return; \
         typedef typename queue::Types<value_type>::type_name queue_type; \
         test< queue_type >(); \
     }