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.
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 EXTRA_CARGO_OPTIONS="$(EXTRA_CARGO_OPTIONS)"; \
13 export CARGO_ONLINE="$(CARGO_ONLINE)"; \
14 export CCLD="$(CCLD)"; \
15 export RUSTFLAGS="-C linker=`echo '$(CC)' | cut -d' ' -f 1` $(RUST_LINKER_OPTIONS)";
18 src/test/fuzz_static_testcases.sh \
19 src/test/test_zero_length_keys.sh \
20 src/test/test_workqueue_cancel.sh \
21 src/test/test_workqueue_efd.sh \
22 src/test/test_workqueue_efd2.sh \
23 src/test/test_workqueue_pipe.sh \
24 src/test/test_workqueue_pipe2.sh \
25 src/test/test_workqueue_socketpair.sh \
26 src/test/test_switch_id.sh \
27 src/test/test_cmdline.sh \
28 src/test/test_parseconf.sh \
29 src/test/test_switch_id.sh \
30 src/test/unittest_part1.sh \
31 src/test/unittest_part2.sh \
32 src/test/unittest_part3.sh \
33 src/test/unittest_part4.sh \
34 src/test/unittest_part5.sh \
35 src/test/unittest_part6.sh \
36 src/test/unittest_part7.sh \
37 src/test/unittest_part8.sh
46 src/test/test_ntor.sh \
47 src/test/test_hs_ntor.sh \
49 scripts/maint/practracker/test_practracker.sh
54 # Only do this when coverage is not on, since it invokes lots of code
55 # in a kind of unpredictable way.
56 TESTSCRIPTS += src/test/test_rebind.sh
62 scripts/maint/checkSpaceTest.sh
65 TESTS += src/test/test-slow src/test/test-memwipe \
66 src/test/test_workqueue \
67 src/test/test_keygen.sh \
68 src/test/test_key_expiration.sh \
69 src/test/test-timers \
72 # These flavors are run using automake's test-driver and test-network.sh
73 TEST_CHUTNEY_FLAVORS = basic-min bridges-min hs-v2-min hs-v3-min \
75 # only run if we can ping6 ::1 (localhost)
76 TEST_CHUTNEY_FLAVORS_IPV6 = bridges+ipv6-min ipv6-exit-min hs-v23-ipv6-md \
77 single-onion-v23-ipv6-md
78 # only run if we can find a stable (or simply another) version of tor
79 TEST_CHUTNEY_FLAVORS_MIXED = mixed+hs-v2
81 ### This is a lovely feature, but it requires automake >= 1.12, and Tor
82 ### doesn't require that yet.
84 # TEST_EXTENSIONS = .sh
85 # SH_LOG_COMPILER = $(SHELL)
87 noinst_PROGRAMS+= src/test/bench
92 src/test/test-memwipe \
93 src/test/test-process \
94 src/test/test_workqueue \
95 src/test/test-switch-id \
96 src/test/test-timers \
100 src_test_AM_CPPFLAGS = -DSHARE_DATADIR="\"$(datadir)\"" \
101 -DLOCALSTATEDIR="\"$(localstatedir)\"" \
102 -DBINDIR="\"$(bindir)\"" \
106 # -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
107 # This seems to matter nowhere but on Windows, but I assure you that it
108 # matters a lot there, and is quite hard to debug if you forget to do it.
110 src_test_test_SOURCES =
114 # ADD_C_FILE: INSERT SOURCES HERE.
115 src_test_test_SOURCES += \
116 src/test/fakecircs.c \
117 src/test/log_test_helpers.c \
118 src/test/hs_test_helpers.c \
119 src/test/opts_test_helpers.c \
120 src/test/rend_test_helpers.c \
121 src/test/resolve_test_helpers.c \
122 src/test/rng_test_helpers.c \
124 src/test/test_accounting.c \
125 src/test/test_addr.c \
126 src/test/test_address.c \
127 src/test/test_address_set.c \
128 src/test/test_bridges.c \
129 src/test/test_btrack.c \
130 src/test/test_buffers.c \
131 src/test/test_bwmgt.c \
132 src/test/test_cell_formats.c \
133 src/test/test_cell_queue.c \
134 src/test/test_channel.c \
135 src/test/test_channelpadding.c \
136 src/test/test_circuitpadding.c \
137 src/test/test_channeltls.c \
138 src/test/test_checkdir.c \
139 src/test/test_circuitlist.c \
140 src/test/test_circuitmux.c \
141 src/test/test_circuitmux_ewma.c \
142 src/test/test_circuitbuild.c \
143 src/test/test_circuituse.c \
144 src/test/test_circuitstats.c \
145 src/test/test_compat_libevent.c \
146 src/test/test_config.c \
147 src/test/test_confmgr.c \
148 src/test/test_confparse.c \
149 src/test/test_connection.c \
150 src/test/test_conscache.c \
151 src/test/test_consdiff.c \
152 src/test/test_consdiffmgr.c \
153 src/test/test_containers.c \
154 src/test/test_controller.c \
155 src/test/test_controller_events.c \
156 src/test/test_crypto.c \
157 src/test/test_crypto_ope.c \
158 src/test/test_crypto_rng.c \
159 src/test/test_data.c \
160 src/test/test_dir.c \
161 src/test/test_dir_common.c \
162 src/test/test_dir_handle_get.c \
163 src/test/test_dispatch.c \
164 src/test/test_dos.c \
165 src/test/test_entryconn.c \
166 src/test/test_entrynodes.c \
167 src/test/test_geoip.c \
168 src/test/test_guardfraction.c \
169 src/test/test_extorport.c \
171 src/test/test_hs_common.c \
172 src/test/test_hs_config.c \
173 src/test/test_hs_cell.c \
174 src/test/test_hs_ntor.c \
175 src/test/test_hs_service.c \
176 src/test/test_hs_client.c \
177 src/test/test_hs_intropoint.c \
178 src/test/test_hs_control.c \
179 src/test/test_handles.c \
180 src/test/test_hs_cache.c \
181 src/test/test_hs_descriptor.c \
182 src/test/test_hs_dos.c \
183 src/test/test_introduce.c \
184 src/test/test_keypin.c \
185 src/test/test_link_handshake.c \
186 src/test/test_logging.c \
187 src/test/test_mainloop.c \
188 src/test/test_microdesc.c \
189 src/test/test_namemap.c \
190 src/test/test_netinfo.c \
191 src/test/test_nodelist.c \
192 src/test/test_oom.c \
193 src/test/test_oos.c \
194 src/test/test_options.c \
195 src/test/test_options_act.c \
196 src/test/test_pem.c \
197 src/test/test_periodic_event.c \
198 src/test/test_policy.c \
199 src/test/test_process.c \
200 src/test/test_process_descs.c \
201 src/test/test_prob_distr.c \
202 src/test/test_procmon.c \
203 src/test/test_proto_haproxy.c \
204 src/test/test_proto_http.c \
205 src/test/test_proto_misc.c \
206 src/test/test_protover.c \
208 src/test/test_pubsub_build.c \
209 src/test/test_pubsub_msg.c \
210 src/test/test_relay.c \
211 src/test/test_relaycell.c \
212 src/test/test_relaycrypt.c \
213 src/test/test_rendcache.c \
214 src/test/test_replay.c \
215 src/test/test_router.c \
216 src/test/test_routerkeys.c \
217 src/test/test_routerlist.c \
218 src/test/test_routerset.c \
219 src/test/test_scheduler.c \
220 src/test/test_sendme.c \
221 src/test/test_shared_random.c \
222 src/test/test_socks.c \
223 src/test/test_stats.c \
224 src/test/test_status.c \
225 src/test/test_storagedir.c \
226 src/test/test_threads.c \
227 src/test/test_token_bucket.c \
228 src/test/test_tortls.c \
229 src/test/test_util.c \
230 src/test/test_util_format.c \
231 src/test/test_util_process.c \
232 src/test/test_voting_flags.c \
233 src/test/test_voting_schedule.c \
234 src/test/test_x509.c \
235 src/test/test_helpers.c \
236 src/test/test_dns.c \
237 src/test/test_parsecommon.c \
238 src/test/testing_common.c \
239 src/test/testing_rsakeys.c \
245 src_test_test_SOURCES += \
246 src/test/test_crypto_openssl.c \
247 src/test/test_tortls_openssl.c
252 src_test_test_slow_SOURCES =
254 src_test_test_slow_SOURCES += \
255 src/test/rng_test_helpers.c \
256 src/test/test_slow.c \
257 src/test/test_crypto_slow.c \
258 src/test/test_process_slow.c \
259 src/test/test_prob_distr.c \
260 src/test/ptr_helpers.c \
261 src/test/test_ptr_slow.c \
262 src/test/testing_common.c \
263 src/test/testing_rsakeys.c \
267 src_test_test_memwipe_SOURCES = \
268 src/test/test-memwipe.c
270 src_test_test_timers_SOURCES = \
271 src/test/test-timers.c
273 src_test_test_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
275 src_test_test_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
277 src_test_bench_SOURCES = \
280 src_test_test_workqueue_SOURCES = \
281 src/test/test_workqueue.c
282 src_test_test_workqueue_CPPFLAGS= $(src_test_AM_CPPFLAGS)
283 src_test_test_workqueue_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
285 src_test_test_switch_id_SOURCES = \
286 src/test/test_switch_id.c
287 src_test_test_switch_id_CPPFLAGS= $(src_test_AM_CPPFLAGS)
288 src_test_test_switch_id_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
289 src_test_test_switch_id_LDFLAGS = @TOR_LDFLAGS_zlib@
290 src_test_test_switch_id_LDADD = \
291 $(TOR_UTIL_TESTING_LIBS) \
293 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
294 @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_USERENV@ \
295 @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
297 src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \
298 @TOR_LDFLAGS_libevent@
299 src_test_test_LDADD = \
300 $(TOR_INTERNAL_TESTING_LIBS) \
302 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
303 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
305 @TOR_SYSTEMD_LIBS@ @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
307 src_test_test_slow_CPPFLAGS = $(src_test_test_CPPFLAGS)
308 src_test_test_slow_CFLAGS = $(src_test_test_CFLAGS)
309 src_test_test_slow_LDADD = $(src_test_test_LDADD)
310 src_test_test_slow_LDFLAGS = $(src_test_test_LDFLAGS)
312 src_test_test_rng_CPPFLAGS = $(src_test_test_CPPFLAGS)
313 src_test_test_rng_CFLAGS = $(src_test_test_CFLAGS)
314 src_test_test_rng_SOURCES = src/test/test_rng.c
315 src_test_test_rng_LDFLAGS = $(src_test_test_LDFLAGS)
316 src_test_test_rng_LDADD = $(src_test_test_LDADD)
318 src_test_test_memwipe_CPPFLAGS = $(src_test_test_CPPFLAGS)
319 # Don't use bugtrap cflags here: memwipe tests require memory violations.
320 src_test_test_memwipe_CFLAGS = $(TEST_CFLAGS)
321 src_test_test_memwipe_LDADD = $(src_test_test_LDADD)
322 # The LDFLAGS need to include the bugtrap cflags, or else we won't link
323 # successfully with the libraries built with them.
324 src_test_test_memwipe_LDFLAGS = $(src_test_test_LDFLAGS) @CFLAGS_BUGTRAP@
326 src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \
327 @TOR_LDFLAGS_libevent@
328 src_test_bench_LDADD = \
329 $(TOR_INTERNAL_LIBS) \
331 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
332 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
334 @TOR_SYSTEMD_LIBS@ @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
336 src_test_test_workqueue_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \
337 @TOR_LDFLAGS_libevent@
338 src_test_test_workqueue_LDADD = \
339 $(TOR_INTERNAL_TESTING_LIBS) \
341 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
342 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
344 @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@
346 src_test_test_timers_CPPFLAGS = $(src_test_test_CPPFLAGS)
347 src_test_test_timers_CFLAGS = $(src_test_test_CFLAGS)
348 src_test_test_timers_LDADD = \
349 src/lib/libtor-evloop-testing.a \
350 $(TOR_CRYPTO_TESTING_LIBS) \
351 $(TOR_UTIL_TESTING_LIBS) \
353 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
354 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
357 src_test_test_timers_LDFLAGS = $(src_test_test_LDFLAGS)
359 # ADD_C_FILE: INSERT HEADERS HERE.
361 src/test/fakechans.h \
362 src/test/fakecircs.h \
363 src/test/hs_test_helpers.h \
364 src/test/log_test_helpers.h \
365 src/test/opts_test_helpers.h \
366 src/test/rend_test_helpers.h \
367 src/test/resolve_test_helpers.h \
368 src/test/rng_test_helpers.h \
370 src/test/ptr_helpers.h \
371 src/test/test_helpers.h \
372 src/test/test_dir_common.h \
373 src/test/test_connection.h \
374 src/test/test_tortls.h \
375 src/test/test_descriptors.inc \
376 src/test/example_extrainfo.inc \
377 src/test/failing_routerdescs.inc \
378 src/test/ed25519_vectors.inc \
379 src/test/test_descriptors.inc \
380 src/test/test_hs_descriptor.inc \
381 src/test/vote_descriptors.inc
383 noinst_PROGRAMS+= src/test/test-ntor-cl
384 noinst_PROGRAMS+= src/test/test-hs-ntor-cl
385 src_test_test_ntor_cl_SOURCES = src/test/test_ntor_cl.c
386 src_test_test_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB)
387 src_test_test_ntor_cl_LDADD = \
388 $(TOR_INTERNAL_LIBS) \
390 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
391 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \
392 @CURVE25519_LIBS@ @TOR_LZMA_LIBS@
393 src_test_test_ntor_cl_AM_CPPFLAGS = \
396 src_test_test_hs_ntor_cl_SOURCES = src/test/test_hs_ntor_cl.c
397 src_test_test_hs_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB)
398 src_test_test_hs_ntor_cl_LDADD = \
399 $(TOR_INTERNAL_LIBS) \
400 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
401 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
402 src_test_test_hs_ntor_cl_AM_CPPFLAGS = \
407 noinst_PROGRAMS += src/test/test-bt-cl
408 src_test_test_bt_cl_SOURCES = src/test/test_bt_cl.c
409 src_test_test_bt_cl_LDADD = \
410 $(TOR_UTIL_TESTING_LIBS) \
413 @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@
414 src_test_test_bt_cl_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
415 src_test_test_bt_cl_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
419 src/test/bt_test.py \
420 src/test/ntor_ref.py \
421 src/test/hs_ntor_ref.py \
422 src/test/hs_build_address.py \
423 src/test/hs_indexes.py \
424 src/test/fuzz_static_testcases.sh \
425 src/test/slownacl_curve25519.py \
426 src/test/test_rebind.sh \
427 src/test/test_rebind.py \
428 src/test/zero_length_keys.sh \
429 src/test/rust_supp.txt \
430 src/test/test_keygen.sh \
431 src/test/test_key_expiration.sh \
432 src/test/test_zero_length_keys.sh \
433 src/test/test_ntor.sh src/test/test_hs_ntor.sh src/test/test_bt.sh \
434 src/test/test-network.sh \
435 src/test/test_rust.sh \
436 src/test/test_switch_id.sh \
437 src/test/test_workqueue_cancel.sh \
438 src/test/test_workqueue_efd.sh \
439 src/test/test_workqueue_efd2.sh \
440 src/test/test_workqueue_pipe.sh \
441 src/test/test_workqueue_pipe2.sh \
442 src/test/test_workqueue_socketpair.sh \
443 src/test/test_cmdline.sh \
444 src/test/test_parseconf.sh \
445 src/test/unittest_part1.sh \
446 src/test/unittest_part2.sh \
447 src/test/unittest_part3.sh \
448 src/test/unittest_part4.sh \
449 src/test/unittest_part5.sh \
450 src/test/unittest_part6.sh \
451 src/test/unittest_part7.sh \
452 src/test/unittest_part8.sh
455 $(TESTS_ENVIRONMENT) "$(abs_top_srcdir)/src/test/test_rust.sh"