include.am (14580B)
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)"; 12 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 33 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 41 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 51 52 if USE_PERL 53 TESTSCRIPTS += \ 54 scripts/maint/checkSpaceTest.sh 55 endif 56 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) 63 64 # These flavors are run using automake's test-driver and test-network.sh 65 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 71 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 74 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 78 79 # only run if we can find a stable (or simply another) version of tor 80 TEST_CHUTNEY_FLAVORS_MIXED = mixed+hs-v3 81 82 # only run if IPv6 and mixed networks are run 83 TEST_CHUTNEY_FLAVORS_IPV6_MIXED = mixed+hs-v3-ipv6 84 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) 90 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 103 104 src_test_AM_CPPFLAGS = -DSHARE_DATADIR="\"$(datadir)\"" \ 105 -DLOCALSTATEDIR="\"$(localstatedir)\"" \ 106 -DBINDIR="\"$(bindir)\"" \ 107 -DTOR_UNIT_TESTS \ 108 $(AM_CPPFLAGS) 109 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. 113 114 src_test_test_SOURCES = 115 116 if UNITTESTS_ENABLED 117 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_conflux_cell.c \ 151 src/test/test_conflux_pool.c \ 152 src/test/test_confmgr.c \ 153 src/test/test_confparse.c \ 154 src/test/test_congestion_control.c \ 155 src/test/test_connection.c \ 156 src/test/test_conscache.c \ 157 src/test/test_consdiff.c \ 158 src/test/test_consdiffmgr.c \ 159 src/test/test_containers.c \ 160 src/test/test_controller.c \ 161 src/test/test_controller_events.c \ 162 src/test/test_crypto.c \ 163 src/test/test_crypto_ope.c \ 164 src/test/test_crypto_rng.c \ 165 src/test/test_crypto_cgo.c \ 166 src/test/test_data.c \ 167 src/test/test_dir.c \ 168 src/test/test_dirauth_ports.c \ 169 src/test/test_dirvote.c \ 170 src/test/test_dir_common.c \ 171 src/test/test_dir_handle_get.c \ 172 src/test/test_dispatch.c \ 173 src/test/test_dos.c \ 174 src/test/test_entryconn.c \ 175 src/test/test_entrynodes.c \ 176 src/test/test_geoip.c \ 177 src/test/test_guardfraction.c \ 178 src/test/test_extorport.c \ 179 src/test/test_hs_common.c \ 180 src/test/test_hs_config.c \ 181 src/test/test_hs_cell.c \ 182 src/test/test_hs_ntor.c \ 183 src/test/test_hs_service.c \ 184 src/test/test_hs_client.c \ 185 src/test/test_hs_intropoint.c \ 186 src/test/test_hs_control.c \ 187 src/test/test_hs_ob.c \ 188 src/test/test_handles.c \ 189 src/test/test_hs_cache.c \ 190 src/test/test_hs_descriptor.c \ 191 src/test/test_hs_dos.c \ 192 src/test/test_hs_metrics.c \ 193 src/test/test_hs_pow.c \ 194 src/test/test_keypin.c \ 195 src/test/test_link_handshake.c \ 196 src/test/test_logging.c \ 197 src/test/test_mainloop.c \ 198 src/test/test_metrics.c \ 199 src/test/test_microdesc.c \ 200 src/test/test_namemap.c \ 201 src/test/test_netinfo.c \ 202 src/test/test_nodelist.c \ 203 src/test/test_ntor_v3.c \ 204 src/test/test_oom.c \ 205 src/test/test_oos.c \ 206 src/test/test_options.c \ 207 src/test/test_options_act.c \ 208 src/test/test_pem.c \ 209 src/test/test_periodic_event.c \ 210 src/test/test_policy.c \ 211 src/test/test_process.c \ 212 src/test/test_process_descs.c \ 213 src/test/test_prob_distr.c \ 214 src/test/test_procmon.c \ 215 src/test/test_proto_haproxy.c \ 216 src/test/test_proto_http.c \ 217 src/test/test_proto_misc.c \ 218 src/test/test_protover.c \ 219 src/test/test_pt.c \ 220 src/test/test_pubsub_build.c \ 221 src/test/test_pubsub_msg.c \ 222 src/test/test_relay.c \ 223 src/test/test_relaycell.c \ 224 src/test/test_relaycrypt.c \ 225 src/test/test_replay.c \ 226 src/test/test_router.c \ 227 src/test/test_routerkeys.c \ 228 src/test/test_routerlist.c \ 229 src/test/test_routerset.c \ 230 src/test/test_sandbox.c \ 231 src/test/test_scheduler.c \ 232 src/test/test_sendme.c \ 233 src/test/test_shared_random.c \ 234 src/test/test_socks.c \ 235 src/test/test_statefile.c \ 236 src/test/test_stats.c \ 237 src/test/test_status.c \ 238 src/test/test_storagedir.c \ 239 src/test/test_threads.c \ 240 src/test/test_token_bucket.c \ 241 src/test/test_tortls.c \ 242 src/test/test_util.c \ 243 src/test/test_util_format.c \ 244 src/test/test_util_process.c \ 245 src/test/test_voting_flags.c \ 246 src/test/test_voting_schedule.c \ 247 src/test/test_x509.c \ 248 src/test/test_helpers.c \ 249 src/test/test_dns.c \ 250 src/test/test_parsecommon.c \ 251 src/test/testing_common.c \ 252 src/test/testing_rsakeys.c \ 253 src/ext/tinytest.c 254 255 if USE_NSS 256 # ... 257 else 258 src_test_test_SOURCES += \ 259 src/test/test_crypto_openssl.c \ 260 src/test/test_tortls_openssl.c 261 endif 262 263 endif 264 265 src_test_test_slow_SOURCES = 266 if UNITTESTS_ENABLED 267 src_test_test_slow_SOURCES += \ 268 src/test/rng_test_helpers.c \ 269 src/test/test_slow.c \ 270 src/test/test_crypto_slow.c \ 271 src/test/test_process_slow.c \ 272 src/test/test_hs_pow_slow.c \ 273 src/test/test_prob_distr.c \ 274 src/test/ptr_helpers.c \ 275 src/test/test_ptr_slow.c \ 276 src/test/testing_common.c \ 277 src/test/testing_rsakeys.c \ 278 src/ext/tinytest.c 279 endif 280 281 src_test_test_memwipe_SOURCES = \ 282 src/test/test-memwipe.c 283 284 src_test_test_timers_SOURCES = \ 285 src/test/test-timers.c 286 287 src_test_test_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) 288 289 src_test_test_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS) 290 291 src_test_bench_SOURCES = \ 292 src/test/bench.c 293 294 src_test_test_workqueue_SOURCES = \ 295 src/test/test_workqueue.c 296 src_test_test_workqueue_CPPFLAGS= $(src_test_AM_CPPFLAGS) 297 src_test_test_workqueue_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) 298 299 src_test_test_switch_id_SOURCES = \ 300 src/test/test_switch_id.c 301 src_test_test_switch_id_CPPFLAGS= $(src_test_AM_CPPFLAGS) 302 src_test_test_switch_id_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) 303 src_test_test_switch_id_LDFLAGS = @TOR_LDFLAGS_zlib@ 304 src_test_test_switch_id_LDADD = \ 305 $(TOR_UTIL_TESTING_LIBS) \ 306 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \ 307 @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_USERENV@ \ 308 @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@ @TOR_TRACE_LIBS@ 309 src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \ 310 @TOR_LDFLAGS_libevent@ 311 src_test_test_LDADD = \ 312 src/test/libtor-testing.a \ 313 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \ 314 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ 315 @CURVE25519_LIBS@ \ 316 @TOR_SYSTEMD_LIBS@ @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@ @TOR_TRACE_LIBS@ 317 318 src_test_test_slow_CPPFLAGS = $(src_test_test_CPPFLAGS) 319 src_test_test_slow_CFLAGS = $(src_test_test_CFLAGS) 320 src_test_test_slow_LDADD = $(src_test_test_LDADD) 321 src_test_test_slow_LDFLAGS = $(src_test_test_LDFLAGS) 322 323 src_test_test_rng_CPPFLAGS = $(src_test_test_CPPFLAGS) 324 src_test_test_rng_CFLAGS = $(src_test_test_CFLAGS) 325 src_test_test_rng_SOURCES = src/test/test_rng.c 326 src_test_test_rng_LDFLAGS = $(src_test_test_LDFLAGS) 327 src_test_test_rng_LDADD = $(src_test_test_LDADD) 328 329 src_test_test_memwipe_CPPFLAGS = $(src_test_test_CPPFLAGS) 330 # Don't use bugtrap cflags here: memwipe tests require memory violations. 331 src_test_test_memwipe_CFLAGS = $(TEST_CFLAGS) 332 src_test_test_memwipe_LDADD = $(src_test_test_LDADD) 333 # The LDFLAGS need to include the bugtrap cflags, or else we won't link 334 # successfully with the libraries built with them. 335 src_test_test_memwipe_LDFLAGS = $(src_test_test_LDFLAGS) @CFLAGS_BUGTRAP@ 336 337 src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \ 338 @TOR_LDFLAGS_libevent@ 339 src_test_bench_LDADD = \ 340 libtor.a \ 341 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \ 342 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ 343 @CURVE25519_LIBS@ \ 344 @TOR_SYSTEMD_LIBS@ @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@ @TOR_TRACE_LIBS@ 345 346 src_test_test_workqueue_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) \ 347 @TOR_LDFLAGS_libevent@ 348 src_test_test_workqueue_LDADD = \ 349 src/test/libtor-testing.a \ 350 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \ 351 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ 352 @CURVE25519_LIBS@ \ 353 @TOR_LZMA_LIBS@ @TOR_ZSTD_LIBS@ @TOR_TRACE_LIBS@ 354 355 src_test_test_timers_CPPFLAGS = $(src_test_test_CPPFLAGS) 356 src_test_test_timers_CFLAGS = $(src_test_test_CFLAGS) 357 src_test_test_timers_LDADD = \ 358 src/lib/libtor-evloop-testing.a \ 359 $(TOR_CRYPTO_TESTING_LIBS) \ 360 $(TOR_UTIL_TESTING_LIBS) \ 361 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \ 362 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ 363 @CURVE25519_LIBS@ \ 364 @TOR_LZMA_LIBS@ @TOR_TRACE_LIBS@ 365 src_test_test_timers_LDFLAGS = $(src_test_test_LDFLAGS) 366 367 # ADD_C_FILE: INSERT HEADERS HERE. 368 noinst_HEADERS+= \ 369 src/test/compression_bomb.h \ 370 src/test/fakechans.h \ 371 src/test/fakecircs.h \ 372 src/test/hs_test_helpers.h \ 373 src/test/log_test_helpers.h \ 374 src/test/opts_test_helpers.h \ 375 src/test/resolve_test_helpers.h \ 376 src/test/rng_test_helpers.h \ 377 src/test/test.h \ 378 src/test/ptr_helpers.h \ 379 src/test/test_helpers.h \ 380 src/test/test_dir_common.h \ 381 src/test/test_connection.h \ 382 src/test/test_tortls.h \ 383 src/test/test_descriptors.inc \ 384 src/test/example_extrainfo.inc \ 385 src/test/failing_routerdescs.inc \ 386 src/test/ed25519_vectors.inc \ 387 src/test/cgo_vectors.inc \ 388 src/test/test_descriptors.inc \ 389 src/test/test_hs_descriptor.inc \ 390 src/test/vote_descriptors.inc 391 392 noinst_PROGRAMS+= src/test/test-ntor-cl 393 noinst_PROGRAMS+= src/test/test-hs-ntor-cl 394 src_test_test_ntor_cl_SOURCES = src/test/test_ntor_cl.c 395 src_test_test_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) 396 src_test_test_ntor_cl_LDADD = \ 397 libtor.a \ 398 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \ 399 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ 400 @CURVE25519_LIBS@ @TOR_LZMA_LIBS@ @TOR_TRACE_LIBS@ 401 src_test_test_ntor_cl_AM_CPPFLAGS = \ 402 $(AM_CPPFLAGS) 403 404 src_test_test_hs_ntor_cl_SOURCES = src/test/test_hs_ntor_cl.c 405 src_test_test_hs_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ $(TOR_LDFLAGS_CRYPTLIB) 406 src_test_test_hs_ntor_cl_LDADD = \ 407 libtor.a \ 408 @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \ 409 $(TOR_LIBS_CRYPTLIB) @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ \ 410 @CURVE25519_LIBS@ @TOR_TRACE_LIBS@ 411 src_test_test_hs_ntor_cl_AM_CPPFLAGS = \ 412 $(AM_CPPFLAGS) 413 414 if UNITTESTS_ENABLED 415 noinst_PROGRAMS += src/test/test-bt-cl 416 src_test_test_bt_cl_SOURCES = src/test/test_bt_cl.c 417 src_test_test_bt_cl_LDADD = \ 418 $(TOR_UTIL_TESTING_LIBS) \ 419 @TOR_LIB_MATH@ \ 420 @TOR_LIB_WS32@ @TOR_LIB_IPHLPAPI@ @TOR_LIB_SHLWAPI@ @TOR_LIB_GDI@ @TOR_LIB_USERENV@ \ 421 @TOR_TRACE_LIBS@ 422 src_test_test_bt_cl_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS) 423 src_test_test_bt_cl_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS) 424 endif 425 426 EXTRA_DIST += \ 427 src/test/bt_test.py \ 428 src/test/ntor_ref.py \ 429 src/test/hs_ntor_ref.py \ 430 src/test/hs_build_address.py \ 431 src/test/hs_indexes.py \ 432 src/test/fuzz_static_testcases.sh \ 433 src/test/slownacl_curve25519.py \ 434 src/test/test_rebind.sh \ 435 src/test/test_rebind.py \ 436 src/test/test_include.sh \ 437 src/test/test_include.py \ 438 src/test/zero_length_keys.sh \ 439 scripts/maint/run_check_subsystem_order.sh \ 440 src/test/test_keygen.sh \ 441 src/test/test_key_expiration.sh \ 442 src/test/test_zero_length_keys.sh \ 443 src/test/test_ntor.sh src/test/test_hs_ntor.sh \ 444 src/test/test_bt.sh \ 445 src/test/test-network.sh \ 446 src/test/test_switch_id.sh \ 447 src/test/test_workqueue_cancel.sh \ 448 src/test/test_workqueue_efd.sh \ 449 src/test/test_workqueue_efd2.sh \ 450 src/test/test_workqueue_pipe.sh \ 451 src/test/test_workqueue_pipe2.sh \ 452 src/test/test_workqueue_socketpair.sh \ 453 src/test/test_cmdline.sh \ 454 src/test/test_parseconf.sh \ 455 src/test/unittest_part1.sh \ 456 src/test/unittest_part2.sh \ 457 src/test/unittest_part3.sh \ 458 src/test/unittest_part4.sh \ 459 src/test/unittest_part5.sh \ 460 src/test/unittest_part6.sh \ 461 src/test/unittest_part7.sh \ 462 src/test/unittest_part8.sh