Added erase_at( iterator ) function to MichaelHashSet/Map and SplitListSet/Map based...
[libcds.git] / test / unit / intrusive-set / CMakeLists.txt
1 include_directories(
2     ${CMAKE_CURRENT_SOURCE_DIR}
3 )
4 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof")
5
6
7 # intrusive::FeldmanHashSet
8 set(UNIT_ISET_FELDMAN unit-iset-feldman)
9 set(UNIT_ISET_FELDMAN_SOURCES
10     ../main.cpp
11     intrusive_feldman_hashset_hp.cpp
12     intrusive_feldman_hashset_dhp.cpp
13     intrusive_feldman_hashset_rcu_gpb.cpp
14     intrusive_feldman_hashset_rcu_gpi.cpp
15     intrusive_feldman_hashset_rcu_gpt.cpp
16     intrusive_feldman_hashset_rcu_shb.cpp
17     intrusive_feldman_hashset_rcu_sht.cpp
18 )
19 add_executable(${UNIT_ISET_FELDMAN} ${UNIT_ISET_FELDMAN_SOURCES})
20 target_link_libraries(${UNIT_ISET_FELDMAN} ${CDS_TEST_LIBRARIES})
21
22 add_test(NAME ${UNIT_ISET_FELDMAN} COMMAND ${UNIT_ISET_FELDMAN} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
23
24 # intrusive::MichaelHashSet<MichaelList>
25 set(UNIT_ISET_MICHAEL unit-iset-michael)
26 set(UNIT_ISET_MICHAEL_SOURCES
27     ../main.cpp
28     intrusive_michael_michael_hp.cpp
29     intrusive_michael_michael_dhp.cpp
30     intrusive_michael_michael_nogc.cpp
31     intrusive_michael_michael_rcu_gpb.cpp
32     intrusive_michael_michael_rcu_gpi.cpp
33     intrusive_michael_michael_rcu_gpt.cpp
34     intrusive_michael_michael_rcu_shb.cpp
35     intrusive_michael_michael_rcu_sht.cpp
36 )
37 add_executable(${UNIT_ISET_MICHAEL} ${UNIT_ISET_MICHAEL_SOURCES})
38 target_link_libraries(${UNIT_ISET_MICHAEL} ${CDS_TEST_LIBRARIES})
39 add_test(NAME ${UNIT_ISET_MICHAEL} COMMAND ${UNIT_ISET_MICHAEL} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
40
41 # intrusive::MichaelHashSet<LazyList>
42 set(UNIT_ISET_MICHAEL_LAZY unit-iset-michael-lazy)
43 set(UNIT_ISET_MICHAEL_LAZY_SOURCES
44     ../main.cpp
45     intrusive_michael_lazy_hp.cpp
46     intrusive_michael_lazy_dhp.cpp
47     intrusive_michael_lazy_nogc.cpp
48     intrusive_michael_lazy_rcu_gpb.cpp
49     intrusive_michael_lazy_rcu_gpi.cpp
50     intrusive_michael_lazy_rcu_gpt.cpp
51     intrusive_michael_lazy_rcu_shb.cpp
52     intrusive_michael_lazy_rcu_sht.cpp
53 )
54 add_executable(${UNIT_ISET_MICHAEL_LAZY} ${UNIT_ISET_MICHAEL_LAZY_SOURCES})
55 target_link_libraries(${UNIT_ISET_MICHAEL_LAZY} ${CDS_TEST_LIBRARIES})
56 add_test(NAME ${UNIT_ISET_MICHAEL_LAZY} COMMAND ${UNIT_ISET_MICHAEL_LAZY} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
57
58 # intrusive::MichaelHashSet<IterableList>
59 set(UNIT_ISET_MICHAEL_ITERABLE unit-iset-michael-iterable)
60 set(UNIT_ISET_MICHAEL_ITERABLE_SOURCES
61     ../main.cpp
62     intrusive_michael_iterable_dhp.cpp
63     intrusive_michael_iterable_hp.cpp
64 )
65 add_executable(${UNIT_ISET_MICHAEL_ITERABLE} ${UNIT_ISET_MICHAEL_ITERABLE_SOURCES})
66 target_link_libraries(${UNIT_ISET_MICHAEL_ITERABLE} ${CDS_TEST_LIBRARIES})
67 add_test(NAME ${UNIT_ISET_MICHAEL_ITERABLE} COMMAND ${UNIT_ISET_MICHAEL_ITERABLE} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
68
69 # intrusive::SkipListSet
70 set(UNIT_ISET_SKIP unit-iset-skip)
71 set(UNIT_ISET_SKIP_SOURCES
72     ../main.cpp
73     intrusive_skiplist_hp.cpp
74     intrusive_skiplist_dhp.cpp
75     intrusive_skiplist_nogc.cpp
76     intrusive_skiplist_rcu_gpb.cpp
77     intrusive_skiplist_rcu_gpi.cpp
78     intrusive_skiplist_rcu_gpt.cpp
79     intrusive_skiplist_rcu_shb.cpp
80     intrusive_skiplist_rcu_sht.cpp
81 )
82 add_executable(${UNIT_ISET_SKIP} ${UNIT_ISET_SKIP_SOURCES})
83 target_link_libraries(${UNIT_ISET_SKIP} ${CDS_TEST_LIBRARIES})
84 add_test(NAME ${UNIT_ISET_SKIP} COMMAND ${UNIT_ISET_SKIP} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
85
86 # intrusive::SplitListSet<MichaelList>
87 set(UNIT_ISET_SPLIT_MICHAEL unit-iset-split-michael)
88 set(UNIT_ISET_SPLIT_MICHAEL_SOURCES
89     ../main.cpp
90     intrusive_split_michael_hp.cpp
91     intrusive_split_michael_dhp.cpp
92     intrusive_split_michael_nogc.cpp
93     intrusive_split_michael_rcu_gpb.cpp
94     intrusive_split_michael_rcu_gpi.cpp
95     intrusive_split_michael_rcu_gpt.cpp
96     intrusive_split_michael_rcu_shb.cpp
97     intrusive_split_michael_rcu_sht.cpp
98 )
99 add_executable(${UNIT_ISET_SPLIT_MICHAEL} ${UNIT_ISET_SPLIT_MICHAEL_SOURCES})
100 target_link_libraries(${UNIT_ISET_SPLIT_MICHAEL} ${CDS_TEST_LIBRARIES})
101 add_test(NAME ${UNIT_ISET_SPLIT_MICHAEL} COMMAND ${UNIT_ISET_SPLIT_MICHAEL} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
102
103 # intrusive::SplitListSet<LazyList>
104 set(UNIT_ISET_SPLIT_LAZY unit-iset-split-lazy)
105 set(UNIT_ISET_SPLIT_LAZY_SOURCES
106     ../main.cpp
107     intrusive_split_lazy_hp.cpp
108     intrusive_split_lazy_dhp.cpp
109     intrusive_split_lazy_nogc.cpp
110     intrusive_split_lazy_rcu_gpb.cpp
111     intrusive_split_lazy_rcu_gpi.cpp
112     intrusive_split_lazy_rcu_gpt.cpp
113     intrusive_split_lazy_rcu_shb.cpp
114     intrusive_split_lazy_rcu_sht.cpp
115 )
116 add_executable(${UNIT_ISET_SPLIT_LAZY} ${UNIT_ISET_SPLIT_LAZY_SOURCES})
117 target_link_libraries(${UNIT_ISET_SPLIT_LAZY} ${CDS_TEST_LIBRARIES})
118 add_test(NAME ${UNIT_ISET_SPLIT_LAZY} COMMAND ${UNIT_ISET_SPLIT_LAZY} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
119
120 # intrusive::SplitListSet<IterableList>
121 set(UNIT_ISET_SPLIT_ITERABLE unit-iset-split-iterable)
122 set(UNIT_ISET_SPLIT_ITERABLE_SOURCES
123     ../main.cpp
124     intrusive_split_iterable_hp.cpp
125     intrusive_split_iterable_dhp.cpp
126 )
127 add_executable(${UNIT_ISET_SPLIT_ITERABLE} ${UNIT_ISET_SPLIT_ITERABLE_SOURCES})
128 target_link_libraries(${UNIT_ISET_SPLIT_ITERABLE} ${CDS_TEST_LIBRARIES})
129 add_test(NAME ${UNIT_ISET_SPLIT_ITERABLE} COMMAND ${UNIT_ISET_SPLIT_ITERABLE} WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
130
131
132
133 add_custom_target( unit-iset
134     DEPENDS
135         ${UNIT_ISET_FELDMAN}
136         ${UNIT_ISET_MICHAEL}
137         ${UNIT_ISET_MICHAEL_ITERABLE}
138         ${UNIT_ISET_MICHAEL_LAZY}
139         ${UNIT_ISET_SKIP_LIST}
140         ${UNIT_ISET_SPLIT_MICHAEL}
141         ${UNIT_ISET_SPLIT_ITERABLE}
142         ${UNIT_ISET_SPLIT_LAZY}
143 )
144
145