dirvote: Handling adding vote and signature if module is disabled
[tor.git] / src / test / include.am
blobeb61d74893eceee9c8b712e45ea6e811e06d4d09
1 # When the day comes that Tor requires Automake >= 1.12 change
2 # TESTS_ENVIRONMENT to AM_TESTS_ENVIRONMENT because the former is reserved for
3 # users while the later is reserved for developers.
4 TESTS_ENVIRONMENT = \
5         export PYTHON="$(PYTHON)"; \
6         export SHELL="$(SHELL)"; \
7         export abs_top_srcdir="$(abs_top_srcdir)"; \
8         export abs_top_builddir="$(abs_top_builddir)"; \
9         export builddir="$(builddir)"; \
10         export TESTING_TOR_BINARY="$(TESTING_TOR_BINARY)"; \
11         export CARGO="$(CARGO)"; \
12         export CARGO_ONLINE="$(CARGO_ONLINE)";
14 TESTSCRIPTS = \
15         src/test/fuzz_static_testcases.sh \
16         src/test/test_zero_length_keys.sh \
17         src/test/test_workqueue_cancel.sh \
18         src/test/test_workqueue_efd.sh \
19         src/test/test_workqueue_efd2.sh \
20         src/test/test_workqueue_pipe.sh \
21         src/test/test_workqueue_pipe2.sh \
22         src/test/test_workqueue_socketpair.sh \
23         src/test/test_switch_id.sh
25 if USE_RUST
26 TESTSCRIPTS += \
27         src/test/test_rust.sh
28 endif
30 if USEPYTHON
31 TESTSCRIPTS += src/test/test_ntor.sh src/test/test_hs_ntor.sh src/test/test_bt.sh
32 endif
34 TESTS += src/test/test src/test/test-slow src/test/test-memwipe \
35         src/test/test_workqueue \
36         src/test/test_keygen.sh \
37         src/test/test_key_expiration.sh \
38         src/test/test-timers \
39         $(TESTSCRIPTS)
41 # These flavors are run using automake's test-driver and test-network.sh
42 TEST_CHUTNEY_FLAVORS = basic-min bridges-min hs-v2-min hs-v3-min \
43         single-onion-v23
44 # only run if we can ping6 ::1 (localhost)
45 # IPv6-only v3 single onion services don't work yet, so we don't test the
46 # single-onion-v23-ipv6-md flavor
47 TEST_CHUTNEY_FLAVORS_IPV6 = bridges+ipv6-min ipv6-exit-min hs-v23-ipv6-md \
48         single-onion-ipv6-md
49 # only run if we can find a stable (or simply another) version of tor
50 TEST_CHUTNEY_FLAVORS_MIXED = mixed+hs-v23
52 ### This is a lovely feature, but it requires automake >= 1.12, and Tor
53 ###  doesn't require that yet.
54 ###
55 # TEST_EXTENSIONS = .sh
56 # SH_LOG_COMPILER = $(SHELL)
58 noinst_PROGRAMS+= src/test/bench
59 if UNITTESTS_ENABLED
60 noinst_PROGRAMS+= \
61         src/test/test \
62         src/test/test-slow \
63         src/test/test-memwipe \
64         src/test/test-child \
65         src/test/test_workqueue \
66         src/test/test-switch-id \
67         src/test/test-timers
68 endif
70 src_test_AM_CPPFLAGS = -DSHARE_DATADIR="\"$(datadir)\"" \
71         -DLOCALSTATEDIR="\"$(localstatedir)\"" \
72         -DBINDIR="\"$(bindir)\""               \
73         -I"$(top_srcdir)/src/or" -I"$(top_srcdir)/src/ext" \
74         -I"$(top_srcdir)/src/trunnel" \
75         -I"$(top_srcdir)/src/ext/trunnel" \
76         -DTOR_UNIT_TESTS
78 # -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
79 # This seems to matter nowhere but on Windows, but I assure you that it
80 # matters a lot there, and is quite hard to debug if you forget to do it.
82 src_test_test_SOURCES = \
83         src/test/log_test_helpers.c \
84         src/test/hs_test_helpers.c \
85         src/test/rend_test_helpers.c \
86         src/test/test.c \
87         src/test/test_accounting.c \
88         src/test/test_addr.c \
89         src/test/test_address.c \
90         src/test/test_address_set.c \
91         src/test/test_bridges.c \
92         src/test/test_buffers.c \
93         src/test/test_bwmgt.c \
94         src/test/test_cell_formats.c \
95         src/test/test_cell_queue.c \
96         src/test/test_channel.c \
97         src/test/test_channelpadding.c \
98         src/test/test_channeltls.c \
99         src/test/test_checkdir.c \
100         src/test/test_circuitlist.c \
101         src/test/test_circuitmux.c \
102         src/test/test_circuitbuild.c \
103         src/test/test_circuituse.c \
104         src/test/test_circuitstats.c \
105         src/test/test_compat_libevent.c \
106         src/test/test_config.c \
107         src/test/test_connection.c \
108         src/test/test_conscache.c \
109         src/test/test_consdiff.c \
110         src/test/test_consdiffmgr.c \
111         src/test/test_containers.c \
112         src/test/test_controller.c \
113         src/test/test_controller_events.c \
114         src/test/test_crypto.c \
115         src/test/test_crypto_openssl.c \
116         src/test/test_data.c \
117         src/test/test_dir.c \
118         src/test/test_dir_common.c \
119         src/test/test_dir_handle_get.c \
120         src/test/test_dos.c \
121         src/test/test_entryconn.c \
122         src/test/test_entrynodes.c \
123         src/test/test_geoip.c \
124         src/test/test_guardfraction.c \
125         src/test/test_extorport.c \
126         src/test/test_hs.c \
127         src/test/test_hs_common.c \
128         src/test/test_hs_config.c \
129         src/test/test_hs_cell.c \
130         src/test/test_hs_ntor.c \
131         src/test/test_hs_service.c \
132         src/test/test_hs_client.c  \
133         src/test/test_hs_intropoint.c \
134         src/test/test_hs_control.c \
135         src/test/test_handles.c \
136         src/test/test_hs_cache.c \
137         src/test/test_hs_descriptor.c \
138         src/test/test_introduce.c \
139         src/test/test_keypin.c \
140         src/test/test_link_handshake.c \
141         src/test/test_logging.c \
142         src/test/test_microdesc.c \
143         src/test/test_nodelist.c \
144         src/test/test_oom.c \
145         src/test/test_oos.c \
146         src/test/test_options.c \
147         src/test/test_periodic_event.c \
148         src/test/test_policy.c \
149         src/test/test_procmon.c \
150         src/test/test_proto_http.c \
151         src/test/test_proto_misc.c \
152         src/test/test_protover.c \
153         src/test/test_pt.c \
154         src/test/test_pubsub.c \
155         src/test/test_relay.c \
156         src/test/test_relaycell.c \
157         src/test/test_relaycrypt.c \
158         src/test/test_rendcache.c \
159         src/test/test_replay.c \
160         src/test/test_router.c \
161         src/test/test_routerkeys.c \
162         src/test/test_routerlist.c \
163         src/test/test_routerset.c \
164         src/test/test_scheduler.c \
165         src/test/test_shared_random.c \
166         src/test/test_socks.c \
167         src/test/test_status.c \
168         src/test/test_storagedir.c \
169         src/test/test_threads.c \
170         src/test/test_tortls.c \
171         src/test/test_util.c \
172         src/test/test_util_format.c \
173         src/test/test_util_process.c \
174         src/test/test_helpers.c \
175         src/test/test_dns.c \
176         src/test/testing_common.c \
177         src/test/testing_rsakeys.c \
178         src/ext/tinytest.c
180 src_test_test_slow_SOURCES = \
181         src/test/test_slow.c \
182         src/test/test_crypto_slow.c \
183         src/test/test_util_slow.c \
184         src/test/testing_common.c \
185         src/test/testing_rsakeys.c \
186         src/ext/tinytest.c
188 src_test_test_memwipe_SOURCES = \
189         src/test/test-memwipe.c
191 src_test_test_timers_SOURCES = \
192         src/test/test-timers.c
194 src_test_test_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
196 src_test_test_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
198 src_test_bench_SOURCES = \
199         src/test/bench.c
201 src_test_test_workqueue_SOURCES = \
202         src/test/test_workqueue.c
203 src_test_test_workqueue_CPPFLAGS= $(src_test_AM_CPPFLAGS)
204 src_test_test_workqueue_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
206 src_test_test_switch_id_SOURCES = \
207         src/test/test_switch_id.c
208 src_test_test_switch_id_CPPFLAGS= $(src_test_AM_CPPFLAGS)
209 src_test_test_switch_id_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
210 src_test_test_switch_id_LDFLAGS = @TOR_LDFLAGS_zlib@
211 src_test_test_switch_id_LDADD = \
212         src/common/libor-testing.a \
213         src/common/libor-ctime-testing.a \
214         $(rust_ldadd) \
215         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
216         @TOR_LIB_WS32@ @TOR_LIB_USERENV@ \
217         @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
219 src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
220         @TOR_LDFLAGS_libevent@
221 src_test_test_LDADD = src/or/libtor-testing.a \
222         src/common/libor-crypto-testing.a \
223         $(LIBKECCAK_TINY) \
224         $(LIBDONNA) \
225         src/common/libor-testing.a \
226         src/common/libor-ctime-testing.a \
227         src/common/libor-event-testing.a \
228         src/trunnel/libor-trunnel-testing.a \
229         src/trace/libor-trace.a \
230         $(rust_ldadd) \
231         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
232         @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
233         @CURVE25519_LIBS@ \
234         @TOR_SYSTEMD_LIBS@ @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
236 src_test_test_slow_CPPFLAGS = $(src_test_test_CPPFLAGS)
237 src_test_test_slow_CFLAGS = $(src_test_test_CFLAGS)
238 src_test_test_slow_LDADD = $(src_test_test_LDADD)
239 src_test_test_slow_LDFLAGS = $(src_test_test_LDFLAGS)
241 src_test_test_memwipe_CPPFLAGS = $(src_test_test_CPPFLAGS)
242 # Don't use bugtrap cflags here: memwipe tests require memory violations.
243 src_test_test_memwipe_CFLAGS = $(TEST_CFLAGS)
244 src_test_test_memwipe_LDADD = $(src_test_test_LDADD)
245 # The LDFLAGS need to include the bugtrap cflags, or else we won't link
246 # successfully with the libraries built with them.
247 src_test_test_memwipe_LDFLAGS = $(src_test_test_LDFLAGS) @CFLAGS_BUGTRAP@
249 src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
250         @TOR_LDFLAGS_libevent@
251 src_test_bench_LDADD = src/or/libtor.a src/common/libor.a \
252         src/common/libor-ctime.a \
253         src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
254         src/common/libor-event.a src/trunnel/libor-trunnel.a \
255         src/trace/libor-trace.a \
256         $(rust_ldadd) \
257         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
258         @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
259         @CURVE25519_LIBS@ \
260         @TOR_SYSTEMD_LIBS@ @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
262 src_test_test_workqueue_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
263         @TOR_LDFLAGS_libevent@
264 src_test_test_workqueue_LDADD = src/or/libtor-testing.a \
265         src/common/libor-testing.a \
266         src/common/libor-ctime-testing.a \
267         src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
268         src/common/libor-event-testing.a \
269         src/trace/libor-trace.a \
270         $(rust_ldadd) \
271         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
272         @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
273         @CURVE25519_LIBS@ \
274         @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
276 src_test_test_timers_CPPFLAGS = $(src_test_test_CPPFLAGS)
277 src_test_test_timers_CFLAGS = $(src_test_test_CFLAGS)
278 src_test_test_timers_LDADD = \
279         src/common/libor-testing.a \
280         src/common/libor-ctime-testing.a \
281         src/common/libor-event-testing.a \
282         src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
283         $(rust_ldadd) \
284         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
285         @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
286         @CURVE25519_LIBS@ \
287         @TOR_LZMA_LIBS@
288 src_test_test_timers_LDFLAGS = $(src_test_test_LDFLAGS)
290 noinst_HEADERS+= \
291         src/test/fakechans.h \
292         src/test/hs_test_helpers.h \
293         src/test/log_test_helpers.h \
294         src/test/rend_test_helpers.h \
295         src/test/test.h \
296         src/test/test_helpers.h \
297         src/test/test_dir_common.h \
298         src/test/test_connection.h \
299         src/test/test_descriptors.inc \
300         src/test/example_extrainfo.inc \
301         src/test/failing_routerdescs.inc \
302         src/test/ed25519_vectors.inc \
303         src/test/test_descriptors.inc \
304         src/test/test_hs_descriptor.inc \
305         src/test/vote_descriptors.inc
307 noinst_PROGRAMS+= src/test/test-ntor-cl
308 noinst_PROGRAMS+= src/test/test-hs-ntor-cl
309 src_test_test_ntor_cl_SOURCES  = src/test/test_ntor_cl.c
310 src_test_test_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
311 src_test_test_ntor_cl_LDADD = src/or/libtor.a src/common/libor.a \
312         src/common/libor-ctime.a \
313         src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
314         src/trace/libor-trace.a \
315         $(rust_ldadd) \
316         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
317         @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
318         @CURVE25519_LIBS@ @TOR_LZMA_LIBS@
319 src_test_test_ntor_cl_AM_CPPFLAGS =            \
320         -I"$(top_srcdir)/src/or"
322 src_test_test_hs_ntor_cl_SOURCES  = src/test/test_hs_ntor_cl.c
323 src_test_test_hs_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
324 src_test_test_hs_ntor_cl_LDADD = src/or/libtor.a src/common/libor.a \
325         src/common/libor-ctime.a \
326         src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
327         @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
328         @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
329 src_test_test_hs_ntor_cl_AM_CPPFLAGS =         \
330         -I"$(top_srcdir)/src/or"
333 noinst_PROGRAMS += src/test/test-bt-cl
334 src_test_test_bt_cl_SOURCES = src/test/test_bt_cl.c
335 src_test_test_bt_cl_LDADD = src/common/libor-testing.a \
336         src/common/libor-ctime-testing.a \
337         src/trace/libor-trace.a \
338         $(rust_ldadd) \
339         @TOR_LIB_MATH@ \
340         @TOR_LIB_WS32@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ 
341 src_test_test_bt_cl_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
342 src_test_test_bt_cl_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
344 EXTRA_DIST += \
345         src/test/bt_test.py \
346         src/test/geoip_dummy \
347         src/test/ntor_ref.py \
348         src/test/hs_ntor_ref.py \
349         src/test/hs_build_address.py \
350         src/test/hs_indexes.py \
351         src/test/fuzz_static_testcases.sh \
352         src/test/slownacl_curve25519.py \
353         src/test/zero_length_keys.sh \
354         src/test/test_keygen.sh \
355         src/test/test_key_expiration.sh \
356         src/test/test_zero_length_keys.sh \
357         src/test/test_ntor.sh src/test/test_hs_ntor.sh src/test/test_bt.sh \
358         src/test/test-network.sh \
359         src/test/test_rust.sh \
360         src/test/test_switch_id.sh \
361         src/test/test_workqueue_cancel.sh \
362         src/test/test_workqueue_efd.sh \
363         src/test/test_workqueue_efd2.sh \
364         src/test/test_workqueue_pipe.sh \
365         src/test/test_workqueue_pipe2.sh \
366         src/test/test_workqueue_socketpair.sh
368 test-rust:
369         $(TESTS_ENVIRONMENT) "$(abs_top_srcdir)/src/test/test_rust.sh"