Commit | Line | Data |
---|---|---|
d001c886 MJ |
1 | # SPDX-FileCopyrightText: 2023 EfficiOS Inc. |
2 | # | |
3 | # SPDX-License-Identifier: MIT | |
4 | ||
01956342 | 5 | AM_CPPFLAGS += -I$(top_srcdir)/src -I$(top_srcdir)/tests/common |
f5ab766e | 6 | |
03c5782e MJ |
7 | TEST_EXTENSIONS = .tap |
8 | TAP_LOG_DRIVER_FLAGS = --merge --comments | |
de6cb9d5 MJ |
9 | TAP_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' \ |
10 | URCU_TESTS_SRCDIR='$(abs_top_srcdir)/tests' \ | |
11 | URCU_TESTS_BUILDDIR='$(abs_top_builddir)/tests' \ | |
12 | $(SHELL) $(top_srcdir)/tests/utils/tap-driver.sh | |
03c5782e | 13 | |
de6cb9d5 | 14 | SCRIPT_LIST = \ |
f356e6f3 MJ |
15 | runpaul-phase1.sh \ |
16 | runpaul-phase2.sh \ | |
17 | runpaul-phase3.sh \ | |
18 | runpaul-phase4.sh \ | |
19 | runpaul-phase5.sh \ | |
20 | runpaul-phase6.sh \ | |
21 | runpaul-phase7.sh \ | |
f356e6f3 MJ |
22 | subphase4.sh |
23 | ||
de6cb9d5 MJ |
24 | dist_noinst_SCRIPTS = \ |
25 | runhash.sh \ | |
26 | runtests-batch.sh \ | |
27 | runtests.sh \ | |
28 | run-urcu-tests.sh \ | |
29 | $(SCRIPT_LIST) | |
f356e6f3 | 30 | |
03c5782e MJ |
31 | dist_noinst_DATA = \ |
32 | hashtable_1_seconds.tap \ | |
33 | urcu_1_seconds.tap | |
34 | hashtable_3_seconds.tap \ | |
35 | urcu_3_seconds.tap | |
36 | hashtable_30_seconds.tap \ | |
37 | urcu_30_seconds.tap | |
67c10597 | 38 | |
f5ab766e MD |
39 | noinst_PROGRAMS = test_urcu test_urcu_dynamic_link test_urcu_timing \ |
40 | test_urcu_signal test_urcu_signal_dynamic_link test_urcu_signal_timing \ | |
41 | test_rwlock_timing test_rwlock test_perthreadlock_timing \ | |
42 | test_perthreadlock test_urcu_yield test_urcu_signal_yield test_urcu_mb \ | |
43 | test_urcu_qsbr_timing test_urcu_qsbr \ | |
44 | test_mutex test_looplen test_urcu_gc test_urcu_signal_gc \ | |
45 | test_urcu_lgc \ | |
46 | test_urcu_mb_gc test_urcu_qsbr_gc test_urcu_qsbr_lgc test_urcu_signal_lgc \ | |
47 | test_urcu_mb_lgc test_urcu_qsbr_dynamic_link test_urcu_defer \ | |
48 | test_urcu_assign test_urcu_assign_dynamic_link \ | |
49 | test_urcu_bp test_urcu_bp_dynamic_link test_cycles_per_loop \ | |
50 | test_urcu_lfq test_urcu_wfq test_urcu_lfs test_urcu_wfs \ | |
51 | test_urcu_lfs_rcu \ | |
52 | test_urcu_wfcq \ | |
53 | test_urcu_wfq_dynlink test_urcu_wfs_dynlink \ | |
54 | test_urcu_wfcq_dynlink \ | |
55 | test_urcu_lfq_dynlink test_urcu_lfs_dynlink test_urcu_hash \ | |
56 | test_urcu_lfs_rcu_dynlink | |
57 | ||
6893800a MJ |
58 | URCU_COMMON_LIB=$(top_builddir)/src/liburcu-common.la |
59 | URCU_LIB=$(top_builddir)/src/liburcu.la | |
60 | URCU_QSBR_LIB=$(top_builddir)/src/liburcu-qsbr.la | |
61 | URCU_MB_LIB=$(top_builddir)/src/liburcu-mb.la | |
62 | URCU_SIGNAL_LIB=$(top_builddir)/src/liburcu-signal.la | |
63 | URCU_BP_LIB=$(top_builddir)/src/liburcu-bp.la | |
64 | URCU_CDS_LIB=$(top_builddir)/src/liburcu-cds.la | |
f5ab766e | 65 | |
2650042a MD |
66 | DEBUG_YIELD_LIB=$(builddir)/../common/libdebug-yield.la |
67 | ||
05a4bc03 MD |
68 | test_urcu_SOURCES = test_urcu.c |
69 | test_urcu_LDADD = $(URCU_LIB) | |
f5ab766e | 70 | |
05a4bc03 MD |
71 | test_urcu_dynamic_link_SOURCES = test_urcu.c |
72 | test_urcu_dynamic_link_LDADD = $(URCU_LIB) | |
f5ab766e MD |
73 | test_urcu_dynamic_link_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) |
74 | ||
05a4bc03 MD |
75 | test_urcu_timing_SOURCES = test_urcu_timing.c |
76 | test_urcu_timing_LDADD = $(URCU_LIB) | |
f5ab766e | 77 | |
05a4bc03 MD |
78 | test_urcu_yield_SOURCES = test_urcu.c |
79 | test_urcu_yield_LDADD = $(URCU_LIB) $(DEBUG_YIELD_LIB) | |
f5ab766e MD |
80 | test_urcu_yield_CFLAGS = -DDEBUG_YIELD $(AM_CFLAGS) |
81 | ||
82 | ||
bb917e0f MD |
83 | test_urcu_qsbr_SOURCES = test_urcu_qsbr.c |
84 | test_urcu_qsbr_LDADD = $(URCU_QSBR_LIB) | |
f5ab766e | 85 | |
bb917e0f MD |
86 | test_urcu_qsbr_timing_SOURCES = test_urcu_qsbr_timing.c |
87 | test_urcu_qsbr_timing_LDADD = $(URCU_QSBR_LIB) | |
f5ab766e MD |
88 | |
89 | ||
30ac8e5e MD |
90 | test_urcu_mb_SOURCES = test_urcu.c |
91 | test_urcu_mb_LDADD = $(URCU_MB_LIB) | |
f5ab766e MD |
92 | test_urcu_mb_CFLAGS = -DRCU_MB $(AM_CFLAGS) |
93 | ||
94 | ||
f368fd4b MD |
95 | test_urcu_signal_SOURCES = test_urcu.c |
96 | test_urcu_signal_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e MD |
97 | test_urcu_signal_CFLAGS = -DRCU_SIGNAL $(AM_CFLAGS) |
98 | ||
f368fd4b MD |
99 | test_urcu_signal_dynamic_link_SOURCES = test_urcu.c |
100 | test_urcu_signal_dynamic_link_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e MD |
101 | test_urcu_signal_dynamic_link_CFLAGS = -DRCU_SIGNAL -DDYNAMIC_LINK_TEST \ |
102 | $(AM_CFLAGS) | |
103 | ||
f368fd4b MD |
104 | test_urcu_signal_timing_SOURCES = test_urcu_timing.c |
105 | test_urcu_signal_timing_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e MD |
106 | test_urcu_signal_timing_CFLAGS= -DRCU_SIGNAL $(AM_CFLAGS) |
107 | ||
f368fd4b MD |
108 | test_urcu_signal_yield_SOURCES = test_urcu.c |
109 | test_urcu_signal_yield_LDADD = $(URCU_SIGNAL_LIB) $(DEBUG_YIELD_LIB) | |
f5ab766e MD |
110 | test_urcu_signal_yield_CFLAGS = -DRCU_SIGNAL -DDEBUG_YIELD $(AM_CFLAGS) |
111 | ||
f368fd4b MD |
112 | test_rwlock_timing_SOURCES = test_rwlock_timing.c |
113 | test_rwlock_timing_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e | 114 | |
f368fd4b MD |
115 | test_rwlock_SOURCES = test_rwlock.c |
116 | test_rwlock_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e | 117 | |
f368fd4b MD |
118 | test_perthreadlock_timing_SOURCES = test_perthreadlock_timing.c |
119 | test_perthreadlock_timing_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e | 120 | |
f368fd4b MD |
121 | test_perthreadlock_SOURCES = test_perthreadlock.c |
122 | test_perthreadlock_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e | 123 | |
05a4bc03 | 124 | test_mutex_SOURCES = test_mutex.c |
f5ab766e MD |
125 | |
126 | test_looplen_SOURCES = test_looplen.c | |
127 | ||
05a4bc03 MD |
128 | test_urcu_gc_SOURCES = test_urcu_gc.c |
129 | test_urcu_gc_LDADD = $(URCU_LIB) | |
f5ab766e | 130 | |
f368fd4b MD |
131 | test_urcu_signal_gc_SOURCES = test_urcu_gc.c |
132 | test_urcu_signal_gc_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e MD |
133 | test_urcu_signal_gc_CFLAGS = -DRCU_SIGNAL $(AM_CFLAGS) |
134 | ||
30ac8e5e MD |
135 | test_urcu_mb_gc_SOURCES = test_urcu_gc.c |
136 | test_urcu_mb_gc_LDADD = $(URCU_MB_LIB) | |
f5ab766e MD |
137 | test_urcu_mb_gc_CFLAGS = -DRCU_MB $(AM_CFLAGS) |
138 | ||
bb917e0f MD |
139 | test_urcu_qsbr_gc_SOURCES = test_urcu_qsbr_gc.c |
140 | test_urcu_qsbr_gc_LDADD = $(URCU_QSBR_LIB) | |
f5ab766e | 141 | |
bb917e0f MD |
142 | test_urcu_qsbr_lgc_SOURCES = test_urcu_qsbr_gc.c |
143 | test_urcu_qsbr_lgc_LDADD = $(URCU_QSBR_LIB) | |
f5ab766e MD |
144 | test_urcu_qsbr_lgc_CFLAGS = -DTEST_LOCAL_GC $(AM_CFLAGS) |
145 | ||
05a4bc03 MD |
146 | test_urcu_lgc_SOURCES = test_urcu_gc.c |
147 | test_urcu_lgc_LDADD = $(URCU_LIB) | |
f5ab766e MD |
148 | test_urcu_lgc_CFLAGS = -DTEST_LOCAL_GC $(AM_CFLAGS) |
149 | ||
f368fd4b MD |
150 | test_urcu_signal_lgc_SOURCES = test_urcu_gc.c |
151 | test_urcu_signal_lgc_LDADD = $(URCU_SIGNAL_LIB) | |
f5ab766e MD |
152 | test_urcu_signal_lgc_CFLAGS = -DRCU_SIGNAL -DTEST_LOCAL_GC $(AM_CFLAGS) |
153 | ||
30ac8e5e MD |
154 | test_urcu_mb_lgc_SOURCES = test_urcu_gc.c |
155 | test_urcu_mb_lgc_LDADD = $(URCU_MB_LIB) | |
f5ab766e MD |
156 | test_urcu_mb_lgc_CFLAGS = -DTEST_LOCAL_GC -DRCU_MB $(AM_CFLAGS) |
157 | ||
bb917e0f MD |
158 | test_urcu_qsbr_dynamic_link_SOURCES = test_urcu_qsbr.c |
159 | test_urcu_qsbr_dynamic_link_LDADD = $(URCU_QSBR_LIB) | |
f5ab766e MD |
160 | test_urcu_qsbr_dynamic_link_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) |
161 | ||
fd76f239 MD |
162 | test_urcu_defer_SOURCES = test_urcu_defer.c |
163 | test_urcu_defer_LDADD = $(URCU_LIB) | |
f5ab766e MD |
164 | |
165 | test_cycles_per_loop_SOURCES = test_cycles_per_loop.c | |
166 | ||
05a4bc03 MD |
167 | test_urcu_assign_SOURCES = test_urcu_assign.c |
168 | test_urcu_assign_LDADD = $(URCU_LIB) | |
f5ab766e | 169 | |
05a4bc03 MD |
170 | test_urcu_assign_dynamic_link_SOURCES = test_urcu_assign.c |
171 | test_urcu_assign_dynamic_link_LDADD = $(URCU_LIB) | |
f5ab766e MD |
172 | test_urcu_assign_dynamic_link_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) |
173 | ||
6a3d2c22 MD |
174 | test_urcu_bp_SOURCES = test_urcu_bp.c |
175 | test_urcu_bp_LDADD = $(URCU_BP_LIB) | |
f5ab766e | 176 | |
6a3d2c22 MD |
177 | test_urcu_bp_dynamic_link_SOURCES = test_urcu_bp.c |
178 | test_urcu_bp_dynamic_link_LDADD = $(URCU_BP_LIB) | |
f5ab766e MD |
179 | test_urcu_bp_dynamic_link_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) |
180 | ||
05a4bc03 MD |
181 | test_urcu_lfq_SOURCES = test_urcu_lfq.c |
182 | test_urcu_lfq_LDADD = $(URCU_LIB) $(URCU_CDS_LIB) | |
f5ab766e | 183 | |
05a4bc03 | 184 | test_urcu_lfq_dynlink_SOURCES = test_urcu_lfq.c |
f5ab766e | 185 | test_urcu_lfq_dynlink_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) |
05a4bc03 | 186 | test_urcu_lfq_dynlink_LDADD = $(URCU_LIB) $(URCU_CDS_LIB) |
f5ab766e | 187 | |
05a1c278 | 188 | test_urcu_wfq_SOURCES = test_urcu_wfq.c |
f5ab766e MD |
189 | test_urcu_wfq_LDADD = $(URCU_COMMON_LIB) |
190 | ||
191 | test_urcu_wfq_dynlink_SOURCES = test_urcu_wfq.c | |
192 | test_urcu_wfq_dynlink_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) | |
193 | test_urcu_wfq_dynlink_LDADD = $(URCU_COMMON_LIB) | |
194 | ||
05a1c278 | 195 | test_urcu_wfcq_SOURCES = test_urcu_wfcq.c |
f5ab766e MD |
196 | test_urcu_wfcq_LDADD = $(URCU_COMMON_LIB) |
197 | ||
198 | test_urcu_wfcq_dynlink_SOURCES = test_urcu_wfcq.c | |
199 | test_urcu_wfcq_dynlink_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) | |
200 | test_urcu_wfcq_dynlink_LDADD = $(URCU_COMMON_LIB) | |
201 | ||
05a4bc03 MD |
202 | test_urcu_lfs_SOURCES = test_urcu_lfs.c |
203 | test_urcu_lfs_LDADD = $(URCU_LIB) $(URCU_CDS_LIB) | |
f5ab766e | 204 | |
05a4bc03 MD |
205 | test_urcu_lfs_rcu_SOURCES = test_urcu_lfs_rcu.c |
206 | test_urcu_lfs_rcu_LDADD = $(URCU_LIB) $(URCU_CDS_LIB) | |
f5ab766e | 207 | |
05a4bc03 | 208 | test_urcu_lfs_dynlink_SOURCES = test_urcu_lfs.c |
f5ab766e | 209 | test_urcu_lfs_dynlink_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) |
05a4bc03 | 210 | test_urcu_lfs_dynlink_LDADD = $(URCU_LIB) $(URCU_CDS_LIB) |
f5ab766e | 211 | |
05a4bc03 | 212 | test_urcu_lfs_rcu_dynlink_SOURCES = test_urcu_lfs_rcu.c |
f5ab766e | 213 | test_urcu_lfs_rcu_dynlink_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) |
05a4bc03 | 214 | test_urcu_lfs_rcu_dynlink_LDADD = $(URCU_LIB) $(URCU_CDS_LIB) |
f5ab766e | 215 | |
05a1c278 | 216 | test_urcu_wfs_SOURCES = test_urcu_wfs.c |
f5ab766e MD |
217 | test_urcu_wfs_LDADD = $(URCU_COMMON_LIB) |
218 | ||
219 | test_urcu_wfs_dynlink_SOURCES = test_urcu_wfs.c | |
220 | test_urcu_wfs_dynlink_CFLAGS = -DDYNAMIC_LINK_TEST $(AM_CFLAGS) | |
221 | test_urcu_wfs_dynlink_LDADD = $(URCU_COMMON_LIB) | |
222 | ||
223 | test_urcu_hash_SOURCES = test_urcu_hash.c test_urcu_hash.h \ | |
05a1c278 | 224 | test_urcu_hash_rw.c test_urcu_hash_unique.c |
f5ab766e | 225 | test_urcu_hash_CFLAGS = -DRCU_QSBR $(AM_CFLAGS) |
05a1c278 | 226 | test_urcu_hash_LDADD = $(URCU_QSBR_LIB) $(URCU_COMMON_LIB) $(URCU_CDS_LIB) |
f5ab766e | 227 | |
f356e6f3 MJ |
228 | all-local: |
229 | @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ | |
de6cb9d5 | 230 | for script in $(SCRIPT_LIST); do \ |
f356e6f3 MJ |
231 | cp -f $(srcdir)/$$script $(builddir); \ |
232 | done; \ | |
233 | fi | |
234 | ||
235 | clean-local: | |
236 | @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ | |
de6cb9d5 | 237 | for script in $(SCRIPT_LIST); do \ |
f356e6f3 MJ |
238 | rm -f $(builddir)/$$script; \ |
239 | done; \ | |
240 | fi | |
241 | ||
ad460058 | 242 | .PHONY: short_bench long_bench regtest |
f5ab766e | 243 | |
03c5782e MJ |
244 | # This empty variable is required to enable the TAP test suite for custom |
245 | # targets like 'regtest' while keeping the default 'check' a noop. | |
246 | TESTS = | |
247 | ||
248 | SHORT_BENCH_TESTS = urcu_3_seconds.tap hashtable_3_seconds.tap | |
249 | LONG_BENCH_TESTS = urcu_30_seconds.tap hashtable_30_seconds.tap | |
250 | REGTEST_TESTS = urcu_1_seconds.tap hashtable_1_seconds.tap | |
251 | ||
ad460058 | 252 | short_bench: |
03c5782e | 253 | $(MAKE) $(AM_MAKEFLAGS) check TESTS="$(SHORT_BENCH_TESTS)" |
ad460058 MD |
254 | |
255 | long_bench: | |
03c5782e | 256 | $(MAKE) $(AM_MAKEFLAGS) check TESTS="$(LONG_BENCH_TESTS)" |
ad460058 MD |
257 | |
258 | regtest: | |
03c5782e | 259 | $(MAKE) $(AM_MAKEFLAGS) check TESTS="$(REGTEST_TESTS)" |