3 #ifndef __CDSUNIT_INTRUSIVE_STACK_DEFS_H
4 #define __CDSUNIT_INTRUSIVE_STACK_DEFS_H
6 #define CDSUNIT_DECLARE_TreiberStack \
7 TEST_CASE( Treiber_HP, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
8 TEST_CASE( Treiber_HP_seqcst, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
9 /*TEST_CASE( Treiber_HP_yield, cds::intrusive::treiber_stack::node< cds::gc::HP > )*/ \
10 TEST_CASE( Treiber_HP_pause, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
11 TEST_CASE( Treiber_HP_exp, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
12 TEST_CASE( Treiber_HP_stat, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
13 /*TEST_CASE( Treiber_HRC_yield, cds::intrusive::treiber_stack::node< cds::gc::HRC > )*/ \
14 TEST_CASE( Treiber_DHP, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
15 /*TEST_CASE( Treiber_DHP_yield, cds::intrusive::treiber_stack::node< cds::gc::DHP > )*/ \
16 TEST_CASE( Treiber_DHP_pause, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
17 TEST_CASE( Treiber_DHP_exp, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
18 TEST_CASE( Treiber_DHP_stat, cds::intrusive::treiber_stack::node< cds::gc::DHP > )
20 #define CDSUNIT_TEST_TreiberStack \
21 CPPUNIT_TEST( Treiber_HP ) \
22 CPPUNIT_TEST( Treiber_HP_seqcst ) \
23 /*CPPUNIT_TEST( Treiber_HP_yield )*/ \
24 CPPUNIT_TEST( Treiber_HP_pause ) \
25 CPPUNIT_TEST( Treiber_HP_exp ) \
26 CPPUNIT_TEST( Treiber_HP_stat ) \
27 CPPUNIT_TEST( Treiber_DHP ) \
28 /*CPPUNIT_TEST( Treiber_DHP_yield )*/ \
29 CPPUNIT_TEST( Treiber_DHP_pause ) \
30 CPPUNIT_TEST( Treiber_DHP_exp ) \
31 CPPUNIT_TEST( Treiber_DHP_stat )
33 #define CDSUNIT_DECLARE_EliminationStack \
34 TEST_ELIMINATION( Elimination_HP, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
35 TEST_ELIMINATION( Elimination_HP_2ms, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
36 TEST_ELIMINATION( Elimination_HP_2ms_stat, cds::intrusive::treiber_stack::node< cds::gc::HP >) \
37 TEST_ELIMINATION( Elimination_HP_5ms, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
38 TEST_ELIMINATION( Elimination_HP_5ms_stat, cds::intrusive::treiber_stack::node< cds::gc::HP >) \
39 TEST_ELIMINATION( Elimination_HP_10ms, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
40 TEST_ELIMINATION( Elimination_HP_10ms_stat, cds::intrusive::treiber_stack::node< cds::gc::HP >) \
41 TEST_ELIMINATION( Elimination_HP_seqcst, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
42 /*TEST_ELIMINATION( Elimination_HP_yield, cds::intrusive::treiber_stack::node< cds::gc::HP > )*/ \
43 TEST_ELIMINATION( Elimination_HP_pause, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
44 TEST_ELIMINATION( Elimination_HP_exp, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
45 TEST_ELIMINATION( Elimination_HP_stat, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
46 TEST_ELIMINATION( Elimination_HP_dyn, cds::intrusive::treiber_stack::node< cds::gc::HP > ) \
47 TEST_ELIMINATION( Elimination_HP_dyn_stat, cds::intrusive::treiber_stack::node< cds::gc::HP >) \
48 TEST_ELIMINATION( Elimination_DHP, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
49 TEST_ELIMINATION( Elimination_DHP_2ms, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
50 TEST_ELIMINATION( Elimination_DHP_2ms_stat, cds::intrusive::treiber_stack::node< cds::gc::DHP >) \
51 TEST_ELIMINATION( Elimination_DHP_5ms, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
52 TEST_ELIMINATION( Elimination_DHP_5ms_stat, cds::intrusive::treiber_stack::node< cds::gc::DHP >) \
53 TEST_ELIMINATION( Elimination_DHP_10ms, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
54 TEST_ELIMINATION( Elimination_DHP_10ms_stat, cds::intrusive::treiber_stack::node< cds::gc::DHP >) \
55 TEST_ELIMINATION( Elimination_DHP_seqcst, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
56 /*TEST_ELIMINATION( Elimination_DHP_yield, cds::intrusive::treiber_stack::node< cds::gc::DHP > )*/ \
57 TEST_ELIMINATION( Elimination_DHP_pause, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
58 TEST_ELIMINATION( Elimination_DHP_exp, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
59 TEST_ELIMINATION( Elimination_DHP_stat, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
60 TEST_ELIMINATION( Elimination_DHP_dyn, cds::intrusive::treiber_stack::node< cds::gc::DHP > ) \
61 TEST_ELIMINATION( Elimination_DHP_dyn_stat, cds::intrusive::treiber_stack::node< cds::gc::DHP >)
63 #define CDSUNIT_TEST_EliminationStack \
64 CPPUNIT_TEST( Elimination_HP ) \
65 CPPUNIT_TEST( Elimination_HP_2ms ) \
66 CPPUNIT_TEST( Elimination_HP_2ms_stat) \
67 CPPUNIT_TEST( Elimination_HP_5ms ) \
68 CPPUNIT_TEST( Elimination_HP_5ms_stat) \
69 CPPUNIT_TEST( Elimination_HP_10ms ) \
70 CPPUNIT_TEST( Elimination_HP_10ms_stat) \
71 CPPUNIT_TEST( Elimination_HP_seqcst ) \
72 /*CPPUNIT_TEST( Elimination_HP_yield )*/ \
73 CPPUNIT_TEST( Elimination_HP_pause ) \
74 CPPUNIT_TEST( Elimination_HP_exp ) \
75 CPPUNIT_TEST( Elimination_HP_stat ) \
76 CPPUNIT_TEST( Elimination_HP_dyn ) \
77 CPPUNIT_TEST( Elimination_HP_dyn_stat) \
78 CPPUNIT_TEST( Elimination_DHP ) \
79 CPPUNIT_TEST( Elimination_DHP_seqcst ) \
80 CPPUNIT_TEST( Elimination_DHP_2ms ) \
81 CPPUNIT_TEST( Elimination_DHP_2ms_stat) \
82 CPPUNIT_TEST( Elimination_DHP_5ms ) \
83 CPPUNIT_TEST( Elimination_DHP_5ms_stat) \
84 CPPUNIT_TEST( Elimination_DHP_10ms ) \
85 CPPUNIT_TEST( Elimination_DHP_10ms_stat) \
86 /*CPPUNIT_TEST( Elimination_DHP_yield )*/ \
87 CPPUNIT_TEST( Elimination_DHP_pause ) \
88 CPPUNIT_TEST( Elimination_DHP_exp ) \
89 CPPUNIT_TEST( Elimination_DHP_stat ) \
90 CPPUNIT_TEST( Elimination_DHP_dyn ) \
91 CPPUNIT_TEST( Elimination_DHP_dyn_stat)
93 #define CDSUNIT_DECLARE_FCStack \
94 TEST_FCSTACK( FCStack_slist, boost::intrusive::slist_base_hook<> ) \
95 TEST_FCSTACK( FCStack_slist_stat, boost::intrusive::slist_base_hook<> ) \
96 TEST_FCSTACK( FCStack_slist_elimination, boost::intrusive::slist_base_hook<> ) \
97 TEST_FCSTACK( FCStack_slist_elimination_stat, boost::intrusive::slist_base_hook<> ) \
98 TEST_FCSTACK( FCStack_slist_mutex_stat, boost::intrusive::slist_base_hook<> ) \
99 TEST_FCSTACK( FCStack_slist_mutex_elimination, boost::intrusive::slist_base_hook<> ) \
100 TEST_FCSTACK( FCStack_slist_mutex_elimination_stat, boost::intrusive::slist_base_hook<> ) \
101 TEST_FCSTACK( FCStack_list, boost::intrusive::list_base_hook<> ) \
102 TEST_FCSTACK( FCStack_list_stat, boost::intrusive::list_base_hook<> ) \
103 TEST_FCSTACK( FCStack_list_elimination, boost::intrusive::list_base_hook<> ) \
104 TEST_FCSTACK( FCStack_list_elimination_stat, boost::intrusive::list_base_hook<> ) \
105 TEST_FCSTACK( FCStack_list_mutex_stat, boost::intrusive::list_base_hook<> ) \
106 TEST_FCSTACK( FCStack_list_mutex_elimination, boost::intrusive::list_base_hook<> ) \
107 TEST_FCSTACK( FCStack_list_mutex_elimination_stat, boost::intrusive::list_base_hook<> )
109 #define CDSUNIT_TEST_FCStack \
110 CPPUNIT_TEST( FCStack_slist ) \
111 CPPUNIT_TEST( FCStack_slist_stat ) \
112 CPPUNIT_TEST( FCStack_slist_elimination ) \
113 CPPUNIT_TEST( FCStack_slist_elimination_stat ) \
114 CPPUNIT_TEST( FCStack_slist_mutex_stat ) \
115 CPPUNIT_TEST( FCStack_slist_mutex_elimination ) \
116 CPPUNIT_TEST( FCStack_slist_mutex_elimination_stat ) \
117 CPPUNIT_TEST( FCStack_list ) \
118 CPPUNIT_TEST( FCStack_list_stat ) \
119 CPPUNIT_TEST( FCStack_list_elimination ) \
120 CPPUNIT_TEST( FCStack_list_elimination_stat ) \
121 CPPUNIT_TEST( FCStack_list_mutex_stat ) \
122 CPPUNIT_TEST( FCStack_list_mutex_elimination ) \
123 CPPUNIT_TEST( FCStack_list_mutex_elimination_stat )
126 #define CDSUNIT_DECLARE_StdStack \
127 TEST_STDSTACK( StdStack_Deque_Mutex ) \
128 TEST_STDSTACK( StdStack_Deque_Spin ) \
129 TEST_STDSTACK( StdStack_Vector_Mutex ) \
130 TEST_STDSTACK( StdStack_Vector_Spin ) \
131 TEST_STDSTACK( StdStack_List_Mutex ) \
132 TEST_STDSTACK( StdStack_List_Spin )
134 #define CDSUNIT_TEST_StdStack \
135 CPPUNIT_TEST( StdStack_Deque_Mutex ) \
136 CPPUNIT_TEST( StdStack_Deque_Spin ) \
137 CPPUNIT_TEST( StdStack_Vector_Mutex ) \
138 CPPUNIT_TEST( StdStack_Vector_Spin ) \
139 CPPUNIT_TEST( StdStack_List_Mutex ) \
140 CPPUNIT_TEST( StdStack_List_Spin )
142 #endif // #ifndef __CDSUNIT_INTRUSIVE_STACK_DEFS_H