Merge branch 'integration' into dev
[libcds.git] / tests / unit / set2 / set_defs.h
1 //$$CDS-header$$
2
3 #ifndef CDSUNIT_SET_DEFS_H
4 #define CDSUNIT_SET_DEFS_H
5
6 #define CDSUNIT_DECLARE_StdSet \
7     CDSUNIT_DECLARE_TEST(StdSet_Spin) \
8     CDSUNIT_DECLARE_TEST(StdHashSet_Spin)
9
10 #define CDSUNIT_DEFINE_StdSet(IMPL, C) \
11     TEST_SET(IMPL, C, StdSet_Spin) \
12     TEST_SET(IMPL, C, StdHashSet_Spin)
13
14 #define CDSUNIT_TEST_StdSet \
15     CPPUNIT_TEST(StdSet_Spin) \
16     CPPUNIT_TEST(StdHashSet_Spin)
17
18 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
19 #   define CDSUNIT_DECLARE_MichaelSet_RCU_signal  \
20     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_SHB_cmp_stdAlloc) \
21     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_SHB_less_michaelAlloc) \
22     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_SHT_cmp_stdAlloc) \
23     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_SHT_less_michaelAlloc) \
24     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_SHB_cmp_stdAlloc) \
25     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_SHB_less_michaelAlloc) \
26     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_SHT_cmp_stdAlloc) \
27     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_SHT_less_michaelAlloc)
28
29 #   define CDSUNIT_DEFINE_MichaelSet_RCU_signal(IMPL, C )  \
30     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_SHB_cmp_stdAlloc) \
31     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_SHB_less_michaelAlloc) \
32     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_SHT_cmp_stdAlloc) \
33     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_SHT_less_michaelAlloc) \
34     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_SHB_cmp_stdAlloc) \
35     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_SHB_less_michaelAlloc) \
36     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_SHT_cmp_stdAlloc) \
37     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_SHT_less_michaelAlloc)
38
39 #   define CDSUNIT_TEST_MichaelSet_RCU_signal  \
40     CPPUNIT_TEST(MichaelSet_RCU_SHB_cmp_stdAlloc) \
41     CPPUNIT_TEST(MichaelSet_RCU_SHB_less_michaelAlloc) \
42     CPPUNIT_TEST(MichaelSet_RCU_SHT_cmp_stdAlloc) \
43     CPPUNIT_TEST(MichaelSet_RCU_SHT_less_michaelAlloc) \
44     CPPUNIT_TEST(MichaelSet_Lazy_RCU_SHB_cmp_stdAlloc) \
45     CPPUNIT_TEST(MichaelSet_Lazy_RCU_SHB_less_michaelAlloc) \
46     CPPUNIT_TEST(MichaelSet_Lazy_RCU_SHT_cmp_stdAlloc) \
47     CPPUNIT_TEST(MichaelSet_Lazy_RCU_SHT_less_michaelAlloc)
48 #else
49 #   define CDSUNIT_DECLARE_MichaelSet_RCU_signal
50 #   define CDSUNIT_DEFINE_MichaelSet_RCU_signal(IMPL, C )
51 #   define CDSUNIT_TEST_MichaelSet_RCU_signal
52 #endif
53
54
55 #define CDSUNIT_DECLARE_MichaelSet  \
56     CDSUNIT_DECLARE_TEST(MichaelSet_HP_cmp_stdAlloc) \
57     CDSUNIT_DECLARE_TEST(MichaelSet_HP_less_michaelAlloc) \
58     CDSUNIT_DECLARE_TEST(MichaelSet_DHP_cmp_stdAlloc) \
59     CDSUNIT_DECLARE_TEST(MichaelSet_DHP_less_michaelAlloc) \
60     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_GPI_cmp_stdAlloc) \
61     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_GPI_less_michaelAlloc) \
62     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_GPB_cmp_stdAlloc) \
63     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_GPB_less_michaelAlloc) \
64     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_GPT_cmp_stdAlloc) \
65     CDSUNIT_DECLARE_TEST(MichaelSet_RCU_GPT_less_michaelAlloc) \
66     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_HP_cmp_stdAlloc) \
67     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_HP_less_michaelAlloc) \
68     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_DHP_cmp_stdAlloc) \
69     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_DHP_less_michaelAlloc) \
70     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_GPI_cmp_stdAlloc) \
71     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_GPI_less_michaelAlloc) \
72     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_GPB_cmp_stdAlloc) \
73     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_GPB_less_michaelAlloc) \
74     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_GPT_cmp_stdAlloc) \
75     CDSUNIT_DECLARE_TEST(MichaelSet_Lazy_RCU_GPT_less_michaelAlloc) \
76     CDSUNIT_DECLARE_MichaelSet_RCU_signal
77
78 #define CDSUNIT_DEFINE_MichaelSet( IMPL, C )  \
79     TEST_SET_EXTRACT(IMPL, C, MichaelSet_HP_cmp_stdAlloc) \
80     TEST_SET_EXTRACT(IMPL, C, MichaelSet_HP_less_michaelAlloc) \
81     TEST_SET_EXTRACT(IMPL, C, MichaelSet_DHP_cmp_stdAlloc) \
82     TEST_SET_EXTRACT(IMPL, C, MichaelSet_DHP_less_michaelAlloc) \
83     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_GPI_cmp_stdAlloc) \
84     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_GPI_less_michaelAlloc) \
85     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_GPB_cmp_stdAlloc) \
86     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_GPB_less_michaelAlloc) \
87     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_GPT_cmp_stdAlloc) \
88     TEST_SET_EXTRACT(IMPL, C, MichaelSet_RCU_GPT_less_michaelAlloc) \
89     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_HP_cmp_stdAlloc) \
90     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_HP_less_michaelAlloc) \
91     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_DHP_cmp_stdAlloc) \
92     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_DHP_less_michaelAlloc) \
93     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_GPI_cmp_stdAlloc) \
94     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_GPI_less_michaelAlloc) \
95     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_GPB_cmp_stdAlloc) \
96     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_GPB_less_michaelAlloc) \
97     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_GPT_cmp_stdAlloc) \
98     TEST_SET_EXTRACT(IMPL, C, MichaelSet_Lazy_RCU_GPT_less_michaelAlloc) \
99     CDSUNIT_DEFINE_MichaelSet_RCU_signal(IMPL, C)
100
101 #define CDSUNIT_TEST_MichaelSet  \
102     CPPUNIT_TEST(MichaelSet_HP_cmp_stdAlloc) \
103     CPPUNIT_TEST(MichaelSet_HP_less_michaelAlloc) \
104     CPPUNIT_TEST(MichaelSet_DHP_cmp_stdAlloc) \
105     CPPUNIT_TEST(MichaelSet_DHP_less_michaelAlloc) \
106     CPPUNIT_TEST(MichaelSet_RCU_GPI_cmp_stdAlloc) \
107     CPPUNIT_TEST(MichaelSet_RCU_GPI_less_michaelAlloc) \
108     CPPUNIT_TEST(MichaelSet_RCU_GPB_cmp_stdAlloc) \
109     CPPUNIT_TEST(MichaelSet_RCU_GPB_less_michaelAlloc) \
110     CPPUNIT_TEST(MichaelSet_RCU_GPT_cmp_stdAlloc) \
111     CPPUNIT_TEST(MichaelSet_RCU_GPT_less_michaelAlloc) \
112     CPPUNIT_TEST(MichaelSet_Lazy_HP_cmp_stdAlloc) \
113     CPPUNIT_TEST(MichaelSet_Lazy_HP_less_michaelAlloc) \
114     CPPUNIT_TEST(MichaelSet_Lazy_DHP_cmp_stdAlloc) \
115     CPPUNIT_TEST(MichaelSet_Lazy_DHP_less_michaelAlloc) \
116     CPPUNIT_TEST(MichaelSet_Lazy_RCU_GPI_cmp_stdAlloc) \
117     CPPUNIT_TEST(MichaelSet_Lazy_RCU_GPI_less_michaelAlloc) \
118     CPPUNIT_TEST(MichaelSet_Lazy_RCU_GPB_cmp_stdAlloc) \
119     CPPUNIT_TEST(MichaelSet_Lazy_RCU_GPB_less_michaelAlloc) \
120     CPPUNIT_TEST(MichaelSet_Lazy_RCU_GPT_cmp_stdAlloc) \
121     CPPUNIT_TEST(MichaelSet_Lazy_RCU_GPT_less_michaelAlloc) \
122     CDSUNIT_TEST_MichaelSet_RCU_signal
123
124
125 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
126 #   define CDSUNIT_DECLARE_SplitList_RCU_signal  \
127     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHB_dyn_cmp)\
128     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
129     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHB_st_cmp)\
130     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHB_dyn_less)\
131     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHB_st_less)\
132     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHB_st_less_stat)\
133     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHT_dyn_cmp)\
134     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
135     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHT_st_cmp)\
136     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHT_dyn_less)\
137     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHT_st_less)\
138     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_SHT_st_less_stat)\
139     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp)\
140     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
141     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHB_st_cmp)\
142     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHB_dyn_less)\
143     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHB_st_less)\
144     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHB_st_less_stat)\
145     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp)\
146     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
147     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHT_st_cmp)\
148     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHT_dyn_less)\
149     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHT_st_less)\
150     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_SHT_st_less_stat)
151
152 #   define CDSUNIT_DEFINE_SplitList_RCU_signal( IMPL, C )  \
153     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHB_dyn_cmp)\
154     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
155     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHB_st_cmp)\
156     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHB_dyn_less)\
157     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHB_st_less)\
158     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHB_st_less_stat)\
159     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHT_dyn_cmp)\
160     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
161     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHT_st_cmp)\
162     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHT_dyn_less)\
163     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHT_st_less)\
164     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_SHT_st_less_stat)\
165     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHB_dyn_cmp)\
166     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
167     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHB_st_cmp)\
168     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHB_dyn_less)\
169     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHB_st_less)\
170     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHB_st_less_stat)\
171     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHT_dyn_cmp)\
172     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
173     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHT_st_cmp)\
174     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHT_dyn_less)\
175     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHT_st_less)\
176     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_SHT_st_less_stat)
177
178 #   define CDSUNIT_TEST_SplitList_RCU_signal  \
179     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp)\
180     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_cmp_stat)\
181     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_cmp)\
182     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_dyn_less)\
183     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less)\
184     CPPUNIT_TEST(SplitList_Michael_RCU_SHB_st_less_stat)\
185     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp)\
186     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_cmp_stat)\
187     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_cmp)\
188     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_dyn_less)\
189     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less)\
190     CPPUNIT_TEST(SplitList_Michael_RCU_SHT_st_less_stat)\
191     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp)\
192     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_cmp_stat)\
193     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_cmp)\
194     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_dyn_less)\
195     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less)\
196     CPPUNIT_TEST(SplitList_Lazy_RCU_SHB_st_less_stat)\
197     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp)\
198     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_cmp_stat)\
199     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_cmp)\
200     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_dyn_less)\
201     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less)\
202     CPPUNIT_TEST(SplitList_Lazy_RCU_SHT_st_less_stat)
203
204 #else
205 #   define CDSUNIT_DECLARE_SplitList_RCU_signal
206 #   define CDSUNIT_DEFINE_SplitList_RCU_signal( IMPL, C )
207 #   define CDSUNIT_TEST_SplitList_RCU_signal
208 #endif
209
210 #define CDSUNIT_DECLARE_SplitList  \
211     CDSUNIT_DECLARE_TEST(SplitList_Michael_HP_dyn_cmp)\
212     CDSUNIT_DECLARE_TEST(SplitList_Michael_HP_dyn_cmp_stat)\
213     CDSUNIT_DECLARE_TEST(SplitList_Michael_HP_st_cmp)\
214     CDSUNIT_DECLARE_TEST(SplitList_Michael_HP_dyn_less)\
215     CDSUNIT_DECLARE_TEST(SplitList_Michael_HP_st_less)\
216     CDSUNIT_DECLARE_TEST(SplitList_Michael_HP_st_less_stat)\
217     CDSUNIT_DECLARE_TEST(SplitList_Michael_DHP_dyn_cmp)\
218     CDSUNIT_DECLARE_TEST(SplitList_Michael_DHP_dyn_cmp_stat)\
219     CDSUNIT_DECLARE_TEST(SplitList_Michael_DHP_st_cmp)\
220     CDSUNIT_DECLARE_TEST(SplitList_Michael_DHP_dyn_less)\
221     CDSUNIT_DECLARE_TEST(SplitList_Michael_DHP_st_less)\
222     CDSUNIT_DECLARE_TEST(SplitList_Michael_DHP_st_less_stat)\
223     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPI_dyn_cmp)\
224     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
225     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPI_st_cmp)\
226     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPI_dyn_less)\
227     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPI_st_less)\
228     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPI_st_less_stat)\
229     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPB_dyn_cmp)\
230     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
231     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPB_st_cmp)\
232     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPB_dyn_less)\
233     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPB_st_less)\
234     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPB_st_less_stat)\
235     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPT_dyn_cmp)\
236     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
237     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPT_st_cmp)\
238     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPT_dyn_less)\
239     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPT_st_less)\
240     CDSUNIT_DECLARE_TEST(SplitList_Michael_RCU_GPT_st_less_stat)\
241     CDSUNIT_DECLARE_TEST(SplitList_Lazy_HP_dyn_cmp)\
242     CDSUNIT_DECLARE_TEST(SplitList_Lazy_HP_dyn_cmp_stat)\
243     CDSUNIT_DECLARE_TEST(SplitList_Lazy_HP_st_cmp)\
244     CDSUNIT_DECLARE_TEST(SplitList_Lazy_HP_dyn_less)\
245     CDSUNIT_DECLARE_TEST(SplitList_Lazy_HP_st_less)\
246     CDSUNIT_DECLARE_TEST(SplitList_Lazy_HP_st_less_stat)\
247     CDSUNIT_DECLARE_TEST(SplitList_Lazy_DHP_dyn_cmp)\
248     CDSUNIT_DECLARE_TEST(SplitList_Lazy_DHP_dyn_cmp_stat)\
249     CDSUNIT_DECLARE_TEST(SplitList_Lazy_DHP_st_cmp)\
250     CDSUNIT_DECLARE_TEST(SplitList_Lazy_DHP_dyn_less)\
251     CDSUNIT_DECLARE_TEST(SplitList_Lazy_DHP_st_less)\
252     CDSUNIT_DECLARE_TEST(SplitList_Lazy_DHP_st_less_stat)\
253     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp)\
254     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
255     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPI_st_cmp)\
256     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPI_dyn_less)\
257     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPI_st_less)\
258     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPI_st_less_stat)\
259     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp)\
260     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
261     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPB_st_cmp)\
262     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPB_dyn_less)\
263     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPB_st_less)\
264     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPB_st_less_stat)\
265     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp)\
266     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
267     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPT_st_cmp)\
268     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPT_dyn_less)\
269     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPT_st_less)\
270     CDSUNIT_DECLARE_TEST(SplitList_Lazy_RCU_GPT_st_less_stat)\
271     CDSUNIT_DECLARE_SplitList_RCU_signal
272
273 #define CDSUNIT_DEFINE_SplitList( IMPL, C ) \
274     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_HP_dyn_cmp)\
275     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_HP_dyn_cmp_stat)\
276     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_HP_st_cmp)\
277     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_HP_dyn_less)\
278     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_HP_st_less)\
279     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_HP_st_less_stat)\
280     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_DHP_dyn_cmp)\
281     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_DHP_dyn_cmp_stat)\
282     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_DHP_st_cmp)\
283     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_DHP_dyn_less)\
284     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_DHP_st_less)\
285     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_DHP_st_less_stat)\
286     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPI_dyn_cmp)\
287     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
288     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPI_st_cmp)\
289     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPI_dyn_less)\
290     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPI_st_less)\
291     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPI_st_less_stat)\
292     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPB_dyn_cmp)\
293     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
294     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPB_st_cmp)\
295     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPB_dyn_less)\
296     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPB_st_less)\
297     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPB_st_less_stat)\
298     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPT_dyn_cmp)\
299     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
300     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPT_st_cmp)\
301     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPT_dyn_less)\
302     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPT_st_less)\
303     TEST_SET_EXTRACT( IMPL, C, SplitList_Michael_RCU_GPT_st_less_stat)\
304     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_HP_dyn_cmp)\
305     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_HP_dyn_cmp_stat)\
306     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_HP_st_cmp)\
307     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_HP_dyn_less)\
308     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_HP_st_less)\
309     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_HP_st_less_stat)\
310     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_DHP_dyn_cmp)\
311     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_DHP_dyn_cmp_stat)\
312     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_DHP_st_cmp)\
313     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_DHP_dyn_less)\
314     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_DHP_st_less)\
315     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_DHP_st_less_stat)\
316     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPI_dyn_cmp)\
317     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
318     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPI_st_cmp)\
319     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPI_dyn_less)\
320     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPI_st_less)\
321     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPI_st_less_stat)\
322     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPB_dyn_cmp)\
323     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
324     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPB_st_cmp)\
325     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPB_dyn_less)\
326     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPB_st_less)\
327     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPB_st_less_stat)\
328     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPT_dyn_cmp)\
329     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
330     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPT_st_cmp)\
331     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPT_dyn_less)\
332     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPT_st_less)\
333     TEST_SET_EXTRACT( IMPL, C, SplitList_Lazy_RCU_GPT_st_less_stat)\
334     CDSUNIT_DEFINE_SplitList_RCU_signal( IMPL, C )
335
336 #define CDSUNIT_TEST_SplitList  \
337     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp)\
338     CPPUNIT_TEST(SplitList_Michael_HP_dyn_cmp_stat)\
339     CPPUNIT_TEST(SplitList_Michael_HP_st_cmp)\
340     CPPUNIT_TEST(SplitList_Michael_HP_dyn_less)\
341     CPPUNIT_TEST(SplitList_Michael_HP_st_less)\
342     CPPUNIT_TEST(SplitList_Michael_HP_st_less_stat)\
343     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp)\
344     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_cmp_stat)\
345     CPPUNIT_TEST(SplitList_Michael_DHP_st_cmp)\
346     CPPUNIT_TEST(SplitList_Michael_DHP_dyn_less)\
347     CPPUNIT_TEST(SplitList_Michael_DHP_st_less)\
348     CPPUNIT_TEST(SplitList_Michael_DHP_st_less_stat)\
349     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp)\
350     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_cmp_stat)\
351     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_cmp)\
352     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_dyn_less)\
353     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less)\
354     CPPUNIT_TEST(SplitList_Michael_RCU_GPI_st_less_stat)\
355     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp)\
356     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_cmp_stat)\
357     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_cmp)\
358     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_dyn_less)\
359     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less)\
360     CPPUNIT_TEST(SplitList_Michael_RCU_GPB_st_less_stat)\
361     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp)\
362     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_cmp_stat)\
363     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_cmp)\
364     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_dyn_less)\
365     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less)\
366     CPPUNIT_TEST(SplitList_Michael_RCU_GPT_st_less_stat)\
367     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp)\
368     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_cmp_stat)\
369     CPPUNIT_TEST(SplitList_Lazy_HP_st_cmp)\
370     CPPUNIT_TEST(SplitList_Lazy_HP_dyn_less)\
371     CPPUNIT_TEST(SplitList_Lazy_HP_st_less)\
372     CPPUNIT_TEST(SplitList_Lazy_HP_st_less_stat)\
373     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_cmp)\
374     CPPUNIT_TEST(SplitList_Lazy_HP_st_less_stat)\
375     CPPUNIT_TEST(SplitList_Lazy_DHP_st_cmp)\
376     CPPUNIT_TEST(SplitList_Lazy_DHP_dyn_less)\
377     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less)\
378     CPPUNIT_TEST(SplitList_Lazy_DHP_st_less_stat)\
379     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp)\
380     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_cmp_stat)\
381     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_cmp)\
382     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_dyn_less)\
383     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less)\
384     CPPUNIT_TEST(SplitList_Lazy_RCU_GPI_st_less_stat)\
385     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp)\
386     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_cmp_stat)\
387     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_cmp)\
388     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_dyn_less)\
389     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less)\
390     CPPUNIT_TEST(SplitList_Lazy_RCU_GPB_st_less_stat)\
391     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp)\
392     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_cmp_stat)\
393     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_cmp)\
394     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_dyn_less)\
395     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less)\
396     CPPUNIT_TEST(SplitList_Lazy_RCU_GPT_st_less_stat)\
397     CDSUNIT_TEST_SplitList_RCU_signal
398
399
400 #define CDSUNIT_DECLARE_CuckooSet \
401     CDSUNIT_DECLARE_TEST(CuckooStripedSet_list_unord)\
402     CDSUNIT_DECLARE_TEST(CuckooStripedSet_list_unord_stat)\
403     CDSUNIT_DECLARE_TEST(CuckooStripedSet_list_ord)\
404     CDSUNIT_DECLARE_TEST(CuckooStripedSet_list_ord_stat)\
405     CDSUNIT_DECLARE_TEST(CuckooStripedSet_vector_unord)\
406     CDSUNIT_DECLARE_TEST(CuckooStripedSet_vector_ord)\
407     CDSUNIT_DECLARE_TEST(CuckooStripedSet_vector_unord_stat)\
408     CDSUNIT_DECLARE_TEST(CuckooStripedSet_vector_ord_stat)\
409     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_list_unord)\
410     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_list_ord)\
411     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_list_unord_stat)\
412     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_list_ord_stat)\
413     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_vector_unord)\
414     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_vector_unord_stat)\
415     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_vector_ord) \
416     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_vector_ord_stat) \
417     CDSUNIT_DECLARE_TEST(CuckooStripedSet_list_unord_storehash)\
418     CDSUNIT_DECLARE_TEST(CuckooStripedSet_list_ord_storehash)\
419     CDSUNIT_DECLARE_TEST(CuckooStripedSet_vector_unord_storehash)\
420     CDSUNIT_DECLARE_TEST(CuckooStripedSet_vector_ord_storehash)\
421     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_list_unord_storehash)\
422     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_list_ord_storehash)\
423     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_vector_unord_storehash)\
424     CDSUNIT_DECLARE_TEST(CuckooRefinableSet_vector_ord_storehash)
425
426 #define CDSUNIT_DEFINE_CuckooSet(IMPL, C) \
427     TEST_SET(IMPL, C, CuckooStripedSet_list_unord)\
428     TEST_SET(IMPL, C, CuckooStripedSet_list_unord_stat)\
429     TEST_SET(IMPL, C, CuckooStripedSet_list_ord)\
430     TEST_SET(IMPL, C, CuckooStripedSet_list_ord_stat)\
431     TEST_SET(IMPL, C, CuckooStripedSet_vector_unord)\
432     TEST_SET(IMPL, C, CuckooStripedSet_vector_ord)\
433     TEST_SET(IMPL, C, CuckooStripedSet_vector_unord_stat)\
434     TEST_SET(IMPL, C, CuckooStripedSet_vector_ord_stat)\
435     TEST_SET(IMPL, C, CuckooRefinableSet_list_unord)\
436     TEST_SET(IMPL, C, CuckooRefinableSet_list_ord)\
437     TEST_SET(IMPL, C, CuckooRefinableSet_list_unord_stat)\
438     TEST_SET(IMPL, C, CuckooRefinableSet_list_ord_stat)\
439     TEST_SET(IMPL, C, CuckooRefinableSet_vector_unord)\
440     TEST_SET(IMPL, C, CuckooRefinableSet_vector_unord_stat)\
441     TEST_SET(IMPL, C, CuckooRefinableSet_vector_ord) \
442     TEST_SET(IMPL, C, CuckooRefinableSet_vector_ord_stat) \
443     TEST_SET(IMPL, C, CuckooStripedSet_list_unord_storehash)\
444     TEST_SET(IMPL, C, CuckooStripedSet_list_ord_storehash)\
445     TEST_SET(IMPL, C, CuckooStripedSet_vector_unord_storehash)\
446     TEST_SET(IMPL, C, CuckooStripedSet_vector_ord_storehash)\
447     TEST_SET(IMPL, C, CuckooRefinableSet_list_unord_storehash)\
448     TEST_SET(IMPL, C, CuckooRefinableSet_list_ord_storehash)\
449     TEST_SET(IMPL, C, CuckooRefinableSet_vector_unord_storehash)\
450     TEST_SET(IMPL, C, CuckooRefinableSet_vector_ord_storehash)
451
452
453 #define CDSUNIT_TEST_CuckooSet \
454     CPPUNIT_TEST(CuckooStripedSet_list_unord)\
455     CPPUNIT_TEST(CuckooStripedSet_list_unord_stat)\
456     CPPUNIT_TEST(CuckooStripedSet_list_unord_storehash)\
457     CPPUNIT_TEST(CuckooStripedSet_list_ord)\
458     CPPUNIT_TEST(CuckooStripedSet_list_ord_stat)\
459     CPPUNIT_TEST(CuckooStripedSet_list_ord_storehash)\
460     CPPUNIT_TEST(CuckooStripedSet_vector_unord)\
461     CPPUNIT_TEST(CuckooStripedSet_vector_unord_stat)\
462     CPPUNIT_TEST(CuckooStripedSet_vector_unord_storehash)\
463     CPPUNIT_TEST(CuckooStripedSet_vector_ord)\
464     CPPUNIT_TEST(CuckooStripedSet_vector_ord_stat)\
465     CPPUNIT_TEST(CuckooStripedSet_vector_ord_storehash)\
466     CPPUNIT_TEST(CuckooRefinableSet_list_unord)\
467     CPPUNIT_TEST(CuckooRefinableSet_list_unord_stat)\
468     CPPUNIT_TEST(CuckooRefinableSet_list_unord_storehash)\
469     CPPUNIT_TEST(CuckooRefinableSet_list_ord)\
470     CPPUNIT_TEST(CuckooRefinableSet_list_ord_stat)\
471     CPPUNIT_TEST(CuckooRefinableSet_list_ord_storehash)\
472     CPPUNIT_TEST(CuckooRefinableSet_vector_unord)\
473     CPPUNIT_TEST(CuckooRefinableSet_vector_unord_stat)\
474     CPPUNIT_TEST(CuckooRefinableSet_vector_unord_storehash)\
475     CPPUNIT_TEST(CuckooRefinableSet_vector_ord) \
476     CPPUNIT_TEST(CuckooRefinableSet_vector_ord_stat) \
477     CPPUNIT_TEST(CuckooRefinableSet_vector_ord_storehash)
478
479
480
481 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
482 #   define CDSUNIT_DECLARE_SkipListSet_RCU_signal \
483     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_shb_less_pascal)\
484     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_shb_cmp_pascal_stat)\
485     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_shb_less_xorshift)\
486     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_shb_cmp_xorshift_stat)\
487     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_sht_less_pascal)\
488     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_sht_cmp_pascal_stat)\
489     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_sht_less_xorshift)\
490     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_sht_cmp_xorshift_stat)
491
492 #   define CDSUNIT_DEFINE_SkipListSet_RCU_signal( IMPL, C ) \
493     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_shb_less_pascal)\
494     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_shb_cmp_pascal_stat)\
495     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_shb_less_xorshift)\
496     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_shb_cmp_xorshift_stat)\
497     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_sht_less_pascal)\
498     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_sht_cmp_pascal_stat)\
499     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_sht_less_xorshift)\
500     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_sht_cmp_xorshift_stat)
501
502 #   define CDSUNIT_TEST_SkipListSet_RCU_signal \
503     CPPUNIT_TEST(SkipListSet_rcu_shb_less_pascal)\
504     CPPUNIT_TEST(SkipListSet_rcu_shb_cmp_pascal_stat)\
505     CPPUNIT_TEST(SkipListSet_rcu_shb_less_xorshift)\
506     CPPUNIT_TEST(SkipListSet_rcu_shb_cmp_xorshift_stat)\
507     CPPUNIT_TEST(SkipListSet_rcu_sht_less_pascal)\
508     CPPUNIT_TEST(SkipListSet_rcu_sht_cmp_pascal_stat)\
509     CPPUNIT_TEST(SkipListSet_rcu_sht_less_xorshift)\
510     CPPUNIT_TEST(SkipListSet_rcu_sht_cmp_xorshift_stat)
511
512 #else
513 #   define CDSUNIT_DECLARE_SkipListSet_RCU_signal
514 #   define CDSUNIT_DEFINE_SkipListSet_RCU_signal( IMPL, C )
515 #   define CDSUNIT_TEST_SkipListSet_RCU_signal
516 #endif
517
518 #define CDSUNIT_DECLARE_SkipListSet \
519     CDSUNIT_DECLARE_TEST(SkipListSet_hp_less_pascal)\
520     CDSUNIT_DECLARE_TEST(SkipListSet_hp_cmp_pascal_stat)\
521     CDSUNIT_DECLARE_TEST(SkipListSet_hp_less_xorshift)\
522     CDSUNIT_DECLARE_TEST(SkipListSet_hp_cmp_xorshift_stat)\
523     CDSUNIT_DECLARE_TEST(SkipListSet_dhp_less_pascal)\
524     CDSUNIT_DECLARE_TEST(SkipListSet_dhp_cmp_pascal_stat)\
525     CDSUNIT_DECLARE_TEST(SkipListSet_dhp_less_xorshift)\
526     CDSUNIT_DECLARE_TEST(SkipListSet_dhp_cmp_xorshift_stat)\
527     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpi_less_pascal)\
528     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpi_cmp_pascal_stat)\
529     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpi_less_xorshift)\
530     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpi_cmp_xorshift_stat)\
531     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpb_less_pascal)\
532     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpb_cmp_pascal_stat)\
533     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpb_less_xorshift)\
534     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpb_cmp_xorshift_stat)\
535     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpt_less_pascal)\
536     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpt_cmp_pascal_stat)\
537     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpt_less_xorshift)\
538     CDSUNIT_DECLARE_TEST(SkipListSet_rcu_gpt_cmp_xorshift_stat)\
539     CDSUNIT_DECLARE_SkipListSet_RCU_signal
540
541 #define CDSUNIT_DEFINE_SkipListSet(IMPL, C) \
542     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_hp_less_pascal)\
543     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_hp_cmp_pascal_stat)\
544     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_hp_less_xorshift)\
545     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_hp_cmp_xorshift_stat)\
546     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_dhp_less_pascal)\
547     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_dhp_cmp_pascal_stat)\
548     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_dhp_less_xorshift)\
549     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_dhp_cmp_xorshift_stat)\
550     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpi_less_pascal)\
551     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpi_cmp_pascal_stat)\
552     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpi_less_xorshift)\
553     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpi_cmp_xorshift_stat)\
554     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpb_less_pascal)\
555     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpb_cmp_pascal_stat)\
556     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpb_less_xorshift)\
557     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpb_cmp_xorshift_stat)\
558     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpt_less_pascal)\
559     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpt_cmp_pascal_stat)\
560     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpt_less_xorshift)\
561     TEST_SET_NOLF_EXTRACT(IMPL, C, SkipListSet_rcu_gpt_cmp_xorshift_stat)\
562     CDSUNIT_DEFINE_SkipListSet_RCU_signal( IMPL, C )
563
564 #define CDSUNIT_TEST_SkipListSet \
565     CPPUNIT_TEST(SkipListSet_hp_less_pascal)\
566     CPPUNIT_TEST(SkipListSet_hp_cmp_pascal_stat)\
567     CPPUNIT_TEST(SkipListSet_hp_less_xorshift)\
568     CPPUNIT_TEST(SkipListSet_hp_cmp_xorshift_stat)\
569     CPPUNIT_TEST(SkipListSet_dhp_less_pascal)\
570     CPPUNIT_TEST(SkipListSet_dhp_cmp_pascal_stat)\
571     CPPUNIT_TEST(SkipListSet_dhp_less_xorshift)\
572     CPPUNIT_TEST(SkipListSet_dhp_cmp_xorshift_stat)\
573     CPPUNIT_TEST(SkipListSet_rcu_gpi_less_pascal)\
574     CPPUNIT_TEST(SkipListSet_rcu_gpi_cmp_pascal_stat)\
575     CPPUNIT_TEST(SkipListSet_rcu_gpi_less_xorshift)\
576     CPPUNIT_TEST(SkipListSet_rcu_gpi_cmp_xorshift_stat)\
577     CPPUNIT_TEST(SkipListSet_rcu_gpb_less_pascal)\
578     CPPUNIT_TEST(SkipListSet_rcu_gpb_cmp_pascal_stat)\
579     CPPUNIT_TEST(SkipListSet_rcu_gpb_less_xorshift)\
580     CPPUNIT_TEST(SkipListSet_rcu_gpb_cmp_xorshift_stat)\
581     CPPUNIT_TEST(SkipListSet_rcu_gpt_less_pascal)\
582     CPPUNIT_TEST(SkipListSet_rcu_gpt_cmp_pascal_stat)\
583     CPPUNIT_TEST(SkipListSet_rcu_gpt_less_xorshift)\
584     CPPUNIT_TEST(SkipListSet_rcu_gpt_cmp_xorshift_stat)\
585     CDSUNIT_TEST_SkipListSet_RCU_signal
586
587
588 #ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
589 #   define CDSUNIT_DECLARE_EllenBinTreeSet_RCU_signal \
590         CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_shb)\
591         CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_shb_stat)\
592         CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_sht)\
593         CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_sht_stat)
594
595 #   define CDSUNIT_DEFINE_EllenBinTreeSet_RCU_signal( IMPL, C ) \
596         TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_shb)\
597         TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_shb_stat)\
598         TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_sht)\
599         TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_sht_stat)
600
601 #   define CDSUNIT_TEST_EllenBinTreeSet_RCU_signal \
602         CPPUNIT_TEST(EllenBinTreeSet_rcu_shb)\
603         CPPUNIT_TEST(EllenBinTreeSet_rcu_shb_stat)\
604         CPPUNIT_TEST(EllenBinTreeSet_rcu_sht)\
605         CPPUNIT_TEST(EllenBinTreeSet_rcu_sht_stat)
606 #else
607 #   define CDSUNIT_DECLARE_EllenBinTreeSet_RCU_signal
608 #   define CDSUNIT_DEFINE_EllenBinTreeSet_RCU_signal( IMPL, C )
609 #   define CDSUNIT_TEST_EllenBinTreeSet_RCU_signal
610 #endif
611
612 #define CDSUNIT_DECLARE_EllenBinTreeSet \
613     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_hp)\
614     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_yield_hp)\
615     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_hp_stat)\
616     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_dhp)\
617     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_yield_dhp)\
618     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_dhp_stat)\
619     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_gpi)\
620     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_gpi_stat)\
621     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_gpb)\
622     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_yield_rcu_gpb)\
623     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_gpb_stat)\
624     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_gpt)\
625     CDSUNIT_DECLARE_TEST(EllenBinTreeSet_rcu_gpt_stat)\
626     CDSUNIT_DECLARE_EllenBinTreeSet_RCU_signal
627
628 #define CDSUNIT_DEFINE_EllenBinTreeSet( IMPL, C ) \
629     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_hp)\
630     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_yield_hp)\
631     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_hp_stat)\
632     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_dhp)\
633     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_yield_dhp)\
634     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_dhp_stat)\
635     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_gpi)\
636     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_gpi_stat)\
637     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_gpb)\
638     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_yield_rcu_gpb)\
639     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_gpb_stat)\
640     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_gpt)\
641     TEST_SET_NOLF_EXTRACT(IMPL, C, EllenBinTreeSet_rcu_gpt_stat)\
642     CDSUNIT_DEFINE_EllenBinTreeSet_RCU_signal(IMPL, C)
643
644 #define CDSUNIT_TEST_EllenBinTreeSet \
645     CPPUNIT_TEST(EllenBinTreeSet_hp)\
646     CPPUNIT_TEST(EllenBinTreeSet_yield_hp)\
647     CPPUNIT_TEST(EllenBinTreeSet_hp_stat)\
648     CPPUNIT_TEST(EllenBinTreeSet_dhp)\
649     CPPUNIT_TEST(EllenBinTreeSet_yield_dhp)\
650     CPPUNIT_TEST(EllenBinTreeSet_dhp_stat)\
651     CPPUNIT_TEST(EllenBinTreeSet_rcu_gpi)\
652     /*CPPUNIT_TEST(EllenBinTreeSet_rcu_gpi_stat)*/\
653     CPPUNIT_TEST(EllenBinTreeSet_rcu_gpb)\
654     CPPUNIT_TEST(EllenBinTreeSet_yield_rcu_gpb)\
655     CPPUNIT_TEST(EllenBinTreeSet_rcu_gpb_stat)\
656     CPPUNIT_TEST(EllenBinTreeSet_rcu_gpt)\
657     CPPUNIT_TEST(EllenBinTreeSet_rcu_gpt_stat)\
658     CDSUNIT_TEST_EllenBinTreeSet_RCU_signal
659
660
661
662 #define CDSUNIT_DECLARE_StripedSet_common \
663     CDSUNIT_DECLARE_TEST(StripedSet_list) \
664     CDSUNIT_DECLARE_TEST(StripedSet_vector) \
665     CDSUNIT_DECLARE_TEST(StripedSet_set) \
666     CDSUNIT_DECLARE_TEST(StripedSet_hashset) \
667     CDSUNIT_DECLARE_TEST(StripedSet_boost_unordered_set)
668
669 #define CDSUNIT_DEFINE_StripedSet_common( IMPL, C ) \
670     TEST_SET(IMPL, C, StripedSet_list) \
671     TEST_SET(IMPL, C, StripedSet_vector) \
672     TEST_SET(IMPL, C, StripedSet_set) \
673     TEST_SET(IMPL, C, StripedSet_hashset) \
674     TEST_SET(IMPL, C, StripedSet_boost_unordered_set)
675
676 #define CDSUNIT_TEST_StripedSet_common \
677     CPPUNIT_TEST(StripedSet_list) \
678     CPPUNIT_TEST(StripedSet_vector) \
679     CPPUNIT_TEST(StripedSet_set) \
680     CPPUNIT_TEST(StripedSet_hashset) \
681     CPPUNIT_TEST(StripedSet_boost_unordered_set)
682
683 #if BOOST_VERSION >= 104800
684 #   define CDSUNIT_DECLARE_StripedSet_boost_container \
685     CDSUNIT_DECLARE_TEST(StripedSet_boost_list) \
686     CDSUNIT_DECLARE_TEST(StripedSet_boost_slist) \
687     CDSUNIT_DECLARE_TEST(StripedSet_boost_vector) \
688     CDSUNIT_DECLARE_TEST(StripedSet_boost_stable_vector) \
689     CDSUNIT_DECLARE_TEST(StripedSet_boost_set)
690
691 #   define CDSUNIT_DEFINE_StripedSet_boost_container( IMPL, C ) \
692     TEST_SET(IMPL, C, StripedSet_boost_list) \
693     TEST_SET(IMPL, C, StripedSet_boost_slist) \
694     TEST_SET(IMPL, C, StripedSet_boost_vector) \
695     TEST_SET(IMPL, C, StripedSet_boost_stable_vector) \
696     TEST_SET(IMPL, C, StripedSet_boost_set)
697
698 #   define CDSUNIT_TEST_StripedSet_boost_container \
699     CPPUNIT_TEST(StripedSet_boost_list) \
700     CPPUNIT_TEST(StripedSet_boost_slist) \
701     CPPUNIT_TEST(StripedSet_boost_vector) \
702     CPPUNIT_TEST(StripedSet_boost_stable_vector) \
703     CPPUNIT_TEST(StripedSet_boost_set)
704 #else
705 #   define CDSUNIT_DECLARE_StripedSet_boost_container
706 #   define CDSUNIT_DEFINE_StripedSet_boost_container( IMPL, C )
707 #   define CDSUNIT_TEST_StripedSet_boost_container
708 #endif
709
710 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_SET_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
711 #   define CDSUNIT_DECLARE_StripedSet_boost_flat_container \
712     CDSUNIT_DECLARE_TEST(StripedSet_boost_flat_set)
713 #   define CDSUNIT_DEFINE_StripedSet_boost_flat_container( IMPL, C ) \
714     TEST_SET(IMPL, C, StripedSet_boost_flat_set)
715 #   define CDSUNIT_TEST_StripedSet_boost_flat_container \
716     CPPUNIT_TEST(StripedSet_boost_flat_set)
717 #else
718 #   define CDSUNIT_DECLARE_StripedSet_boost_flat_container
719 #   define CDSUNIT_DEFINE_StripedSet_boost_flat_container( IMPL, C )
720 #   define CDSUNIT_TEST_StripedSet_boost_flat_container
721 #endif
722
723 #define CDSUNIT_DECLARE_StripedSet \
724     CDSUNIT_DECLARE_StripedSet_common \
725     CDSUNIT_DECLARE_StripedSet_boost_container \
726     CDSUNIT_DECLARE_StripedSet_boost_flat_container
727 #define CDSUNIT_DEFINE_StripedSet( IMPL, C ) \
728     CDSUNIT_DEFINE_StripedSet_common( IMPL, C ) \
729     CDSUNIT_DEFINE_StripedSet_boost_container( IMPL, C ) \
730     CDSUNIT_DEFINE_StripedSet_boost_flat_container( IMPL, C )
731 #define CDSUNIT_TEST_StripedSet \
732     CDSUNIT_TEST_StripedSet_common \
733     CDSUNIT_TEST_StripedSet_boost_container \
734     CDSUNIT_TEST_StripedSet_boost_flat_container
735
736
737 #define CDSUNIT_DECLARE_RefinableSet_common \
738     CDSUNIT_DECLARE_TEST(RefinableSet_list) \
739     CDSUNIT_DECLARE_TEST(RefinableSet_vector) \
740     CDSUNIT_DECLARE_TEST(RefinableSet_set) \
741     CDSUNIT_DECLARE_TEST(RefinableSet_hashset) \
742     CDSUNIT_DECLARE_TEST(RefinableSet_boost_unordered_set)
743 #define CDSUNIT_DEFINE_RefinableSet_common(IMPL, C) \
744     TEST_SET(IMPL, C, RefinableSet_list) \
745     TEST_SET(IMPL, C, RefinableSet_vector) \
746     TEST_SET(IMPL, C, RefinableSet_set) \
747     TEST_SET(IMPL, C, RefinableSet_hashset) \
748     TEST_SET(IMPL, C, RefinableSet_boost_unordered_set)
749 #define CDSUNIT_TEST_RefinableSet_common \
750     CPPUNIT_TEST(RefinableSet_list) \
751     CPPUNIT_TEST(RefinableSet_vector) \
752     CPPUNIT_TEST(RefinableSet_set) \
753     CPPUNIT_TEST(RefinableSet_hashset) \
754     CPPUNIT_TEST(RefinableSet_boost_unordered_set)
755
756 #if BOOST_VERSION >= 104800
757 #   define CDSUNIT_DECLARE_RefinableSet_boost_container \
758     CDSUNIT_DECLARE_TEST(RefinableSet_boost_list) \
759     CDSUNIT_DECLARE_TEST(RefinableSet_boost_slist) \
760     CDSUNIT_DECLARE_TEST(RefinableSet_boost_vector) \
761     CDSUNIT_DECLARE_TEST(RefinableSet_boost_stable_vector) \
762     CDSUNIT_DECLARE_TEST(RefinableSet_boost_set)
763 #   define CDSUNIT_DEFINE_RefinableSet_boost_container( IMPL, C ) \
764     TEST_SET(IMPL, C, RefinableSet_boost_list) \
765     TEST_SET(IMPL, C, RefinableSet_boost_slist) \
766     TEST_SET(IMPL, C, RefinableSet_boost_vector) \
767     TEST_SET(IMPL, C, RefinableSet_boost_stable_vector) \
768     TEST_SET(IMPL, C, RefinableSet_boost_set)
769 #   define CDSUNIT_TEST_RefinableSet_boost_container \
770     CPPUNIT_TEST(RefinableSet_boost_list) \
771     CPPUNIT_TEST(RefinableSet_boost_slist) \
772     CPPUNIT_TEST(RefinableSet_boost_vector) \
773     CPPUNIT_TEST(RefinableSet_boost_stable_vector) \
774     CPPUNIT_TEST(RefinableSet_boost_set)
775 #else
776 #   define CDSUNIT_DECLARE_RefinableSet_boost_container
777 #   define CDSUNIT_DEFINE_RefinableSet_boost_container( IMPL, C ) \
778 #   define CDSUNIT_TEST_RefinableSet_boost_container
779 #endif
780
781 #if BOOST_VERSION >= 104800 && defined(CDS_UNIT_SET_TYPES_ENABLE_BOOST_FLAT_CONTAINERS)
782 #   define CDSUNIT_DECLARE_RefinableSet_boost_flat_container \
783     CDSUNIT_DECLARE_TEST(RefinableSet_boost_flat_set)
784 #   define CDSUNIT_DEFINE_RefinableSet_boost_flat_container( IMPL, C ) \
785     TEST_SET(IMPL, C, RefinableSet_boost_flat_set)
786 #   define CDSUNIT_TEST_RefinableSet_boost_flat_container \
787     CPPUNIT_TEST(RefinableSet_boost_flat_set)
788 #else
789 #   define CDSUNIT_DECLARE_RefinableSet_boost_flat_container
790 #   define CDSUNIT_DEFINE_RefinableSet_boost_flat_container( IMPL, C )
791 #   define CDSUNIT_TEST_RefinableSet_boost_flat_container
792 #endif
793
794 #define CDSUNIT_DECLARE_RefinableSet \
795     CDSUNIT_DECLARE_RefinableSet_common \
796     CDSUNIT_DECLARE_RefinableSet_boost_container \
797     CDSUNIT_DECLARE_RefinableSet_boost_flat_container
798 #define CDSUNIT_DEFINE_RefinableSet( IMPL, C ) \
799     CDSUNIT_DEFINE_RefinableSet_common( IMPL, C ) \
800     CDSUNIT_DEFINE_RefinableSet_boost_container( IMPL, C ) \
801     CDSUNIT_DEFINE_RefinableSet_boost_flat_container( IMPL, C )
802 #define CDSUNIT_TEST_RefinableSet \
803     CDSUNIT_TEST_RefinableSet_common \
804     CDSUNIT_TEST_RefinableSet_boost_container \
805     CDSUNIT_TEST_RefinableSet_boost_flat_container
806
807 #endif // #ifndef CDSUNIT_SET_DEFS_H