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