include.am 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  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 builddir="$(builddir)"; \
  9. export TESTING_TOR_BINARY="$(TESTING_TOR_BINARY)";
  10. TESTSCRIPTS = src/test/test_zero_length_keys.sh \
  11. src/test/test_workqueue_cancel.sh \
  12. src/test/test_workqueue_efd.sh \
  13. src/test/test_workqueue_efd2.sh \
  14. src/test/test_workqueue_pipe.sh \
  15. src/test/test_workqueue_pipe2.sh \
  16. src/test/test_workqueue_socketpair.sh \
  17. src/test/test_switch_id.sh
  18. if USEPYTHON
  19. TESTSCRIPTS += src/test/test_ntor.sh src/test/test_bt.sh
  20. endif
  21. TESTS += src/test/test src/test/test-slow src/test/test-memwipe \
  22. src/test/test_workqueue \
  23. src/test/test_keygen.sh \
  24. src/test/test-timers \
  25. $(TESTSCRIPTS)
  26. # These flavors are run using automake's test-driver and test-network.sh
  27. TEST_CHUTNEY_FLAVORS = basic-min bridges-min hs-min single-onion
  28. # only run if we can ping6 ::1 (localhost)
  29. TEST_CHUTNEY_FLAVORS_IPV6 = bridges+ipv6-min ipv6-exit-min hs-ipv6 \
  30. single-onion-ipv6
  31. # only run if we can find a stable (or simply another) version of tor
  32. TEST_CHUTNEY_FLAVORS_MIXED = mixed
  33. ### This is a lovely feature, but it requires automake >= 1.12, and Tor
  34. ### doesn't require that yet.
  35. ###
  36. # TEST_EXTENSIONS = .sh
  37. # SH_LOG_COMPILER = $(SHELL)
  38. noinst_PROGRAMS+= src/test/bench
  39. if UNITTESTS_ENABLED
  40. noinst_PROGRAMS+= \
  41. src/test/test \
  42. src/test/test-slow \
  43. src/test/test-memwipe \
  44. src/test/test-child \
  45. src/test/test_workqueue \
  46. src/test/test-switch-id \
  47. src/test/test-timers
  48. endif
  49. src_test_AM_CPPFLAGS = -DSHARE_DATADIR="\"$(datadir)\"" \
  50. -DLOCALSTATEDIR="\"$(localstatedir)\"" \
  51. -DBINDIR="\"$(bindir)\"" \
  52. -I"$(top_srcdir)/src/or" -I"$(top_srcdir)/src/ext" \
  53. -I"$(top_srcdir)/src/trunnel" \
  54. -I"$(top_srcdir)/src/ext/trunnel" \
  55. -DTOR_UNIT_TESTS
  56. # -L flags need to go in LDFLAGS. -l flags need to go in LDADD.
  57. # This seems to matter nowhere but on Windows, but I assure you that it
  58. # matters a lot there, and is quite hard to debug if you forget to do it.
  59. src_test_test_SOURCES = \
  60. src/test/log_test_helpers.c \
  61. src/test/rend_test_helpers.c \
  62. src/test/test.c \
  63. src/test/test_accounting.c \
  64. src/test/test_addr.c \
  65. src/test/test_address.c \
  66. src/test/test_address_set.c \
  67. src/test/test_buffers.c \
  68. src/test/test_cell_formats.c \
  69. src/test/test_cell_queue.c \
  70. src/test/test_channel.c \
  71. src/test/test_channeltls.c \
  72. src/test/test_checkdir.c \
  73. src/test/test_circuitlist.c \
  74. src/test/test_circuitmux.c \
  75. src/test/test_compat_libevent.c \
  76. src/test/test_config.c \
  77. src/test/test_connection.c \
  78. src/test/test_containers.c \
  79. src/test/test_controller.c \
  80. src/test/test_controller_events.c \
  81. src/test/test_crypto.c \
  82. src/test/test_dos.c \
  83. src/test/test_data.c \
  84. src/test/test_dir.c \
  85. src/test/test_dir_common.c \
  86. src/test/test_dir_handle_get.c \
  87. src/test/test_entryconn.c \
  88. src/test/test_entrynodes.c \
  89. src/test/test_guardfraction.c \
  90. src/test/test_extorport.c \
  91. src/test/test_hs.c \
  92. src/test/test_handles.c \
  93. src/test/test_introduce.c \
  94. src/test/test_keypin.c \
  95. src/test/test_link_handshake.c \
  96. src/test/test_logging.c \
  97. src/test/test_microdesc.c \
  98. src/test/test_nodelist.c \
  99. src/test/test_oom.c \
  100. src/test/test_oos.c \
  101. src/test/test_options.c \
  102. src/test/test_policy.c \
  103. src/test/test_procmon.c \
  104. src/test/test_protover.c \
  105. src/test/test_pt.c \
  106. src/test/test_pubsub.c \
  107. src/test/test_relay.c \
  108. src/test/test_relaycell.c \
  109. src/test/test_rendcache.c \
  110. src/test/test_replay.c \
  111. src/test/test_routerkeys.c \
  112. src/test/test_routerlist.c \
  113. src/test/test_routerset.c \
  114. src/test/test_scheduler.c \
  115. src/test/test_shared_random.c \
  116. src/test/test_socks.c \
  117. src/test/test_status.c \
  118. src/test/test_threads.c \
  119. src/test/test_tortls.c \
  120. src/test/test_util.c \
  121. src/test/test_util_format.c \
  122. src/test/test_util_process.c \
  123. src/test/test_helpers.c \
  124. src/test/test_dns.c \
  125. src/test/testing_common.c \
  126. src/ext/tinytest.c
  127. src_test_test_slow_SOURCES = \
  128. src/test/test_slow.c \
  129. src/test/test_crypto_slow.c \
  130. src/test/test_util_slow.c \
  131. src/test/testing_common.c \
  132. src/ext/tinytest.c
  133. src_test_test_memwipe_SOURCES = \
  134. src/test/test-memwipe.c
  135. src_test_test_timers_SOURCES = \
  136. src/test/test-timers.c
  137. src_test_test_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
  138. src_test_test_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
  139. src_test_bench_SOURCES = \
  140. src/test/bench.c
  141. src_test_test_workqueue_SOURCES = \
  142. src/test/test_workqueue.c
  143. src_test_test_workqueue_CPPFLAGS= $(src_test_AM_CPPFLAGS)
  144. src_test_test_workqueue_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
  145. src_test_test_switch_id_SOURCES = \
  146. src/test/test_switch_id.c
  147. src_test_test_switch_id_CPPFLAGS= $(src_test_AM_CPPFLAGS)
  148. src_test_test_switch_id_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
  149. src_test_test_switch_id_LDFLAGS = @TOR_LDFLAGS_zlib@
  150. src_test_test_switch_id_LDADD = \
  151. src/common/libor-testing.a \
  152. src/common/libor-ctime-testing.a \
  153. @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@
  154. src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
  155. @TOR_LDFLAGS_libevent@
  156. src_test_test_LDADD = src/or/libtor-testing.a \
  157. src/common/libor-crypto-testing.a \
  158. $(LIBKECCAK_TINY) \
  159. $(LIBDONNA) \
  160. src/common/libor-testing.a \
  161. src/common/libor-ctime-testing.a \
  162. src/common/libor-event-testing.a \
  163. src/trunnel/libor-trunnel-testing.a \
  164. @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
  165. @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ \
  166. @TOR_SYSTEMD_LIBS@
  167. src_test_test_slow_CPPFLAGS = $(src_test_test_CPPFLAGS)
  168. src_test_test_slow_CFLAGS = $(src_test_test_CFLAGS)
  169. src_test_test_slow_LDADD = $(src_test_test_LDADD)
  170. src_test_test_slow_LDFLAGS = $(src_test_test_LDFLAGS)
  171. src_test_test_memwipe_CPPFLAGS = $(src_test_test_CPPFLAGS)
  172. # Don't use bugtrap cflags here: memwipe tests require memory violations.
  173. src_test_test_memwipe_CFLAGS = $(TEST_CFLAGS)
  174. src_test_test_memwipe_LDADD = $(src_test_test_LDADD)
  175. # The LDFLAGS need to include the bugtrap cflags, or else we won't link
  176. # successfully with the libraries built with them.
  177. src_test_test_memwipe_LDFLAGS = $(src_test_test_LDFLAGS) @CFLAGS_BUGTRAP@
  178. src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
  179. @TOR_LDFLAGS_libevent@
  180. src_test_bench_LDADD = src/or/libtor.a src/common/libor.a \
  181. src/common/libor-ctime.a \
  182. src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
  183. src/common/libor-event.a src/trunnel/libor-trunnel.a \
  184. @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
  185. @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ \
  186. @TOR_SYSTEMD_LIBS@
  187. src_test_test_workqueue_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
  188. @TOR_LDFLAGS_libevent@
  189. src_test_test_workqueue_LDADD = src/or/libtor-testing.a \
  190. src/common/libor-testing.a \
  191. src/common/libor-ctime-testing.a \
  192. src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
  193. src/common/libor-event-testing.a \
  194. @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
  195. @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
  196. src_test_test_timers_CPPFLAGS = $(src_test_test_CPPFLAGS)
  197. src_test_test_timers_CFLAGS = $(src_test_test_CFLAGS)
  198. src_test_test_timers_LDADD = \
  199. src/common/libor-testing.a \
  200. src/common/libor-ctime-testing.a \
  201. src/common/libor-event-testing.a \
  202. src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
  203. @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
  204. @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
  205. src_test_test_timers_LDFLAGS = $(src_test_test_LDFLAGS)
  206. noinst_HEADERS+= \
  207. src/test/fakechans.h \
  208. src/test/log_test_helpers.h \
  209. src/test/rend_test_helpers.h \
  210. src/test/test.h \
  211. src/test/test_helpers.h \
  212. src/test/test_dir_common.h \
  213. src/test/test_descriptors.inc \
  214. src/test/example_extrainfo.inc \
  215. src/test/failing_routerdescs.inc \
  216. src/test/ed25519_vectors.inc \
  217. src/test/test_descriptors.inc \
  218. src/test/vote_descriptors.inc
  219. noinst_PROGRAMS+= src/test/test-ntor-cl
  220. src_test_test_ntor_cl_SOURCES = src/test/test_ntor_cl.c
  221. src_test_test_ntor_cl_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@
  222. src_test_test_ntor_cl_LDADD = src/or/libtor.a src/common/libor.a \
  223. src/common/libor-ctime.a \
  224. src/common/libor-crypto.a $(LIBKECCAK_TINY) $(LIBDONNA) \
  225. @TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ \
  226. @TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
  227. src_test_test_ntor_cl_AM_CPPFLAGS = \
  228. -I"$(top_srcdir)/src/or"
  229. noinst_PROGRAMS += src/test/test-bt-cl
  230. src_test_test_bt_cl_SOURCES = src/test/test_bt_cl.c
  231. src_test_test_bt_cl_LDADD = src/common/libor-testing.a \
  232. src/common/libor-ctime-testing.a \
  233. @TOR_LIB_MATH@ \
  234. @TOR_LIB_WS32@ @TOR_LIB_GDI@
  235. src_test_test_bt_cl_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
  236. src_test_test_bt_cl_CPPFLAGS= $(src_test_AM_CPPFLAGS) $(TEST_CPPFLAGS)
  237. EXTRA_DIST += \
  238. src/test/bt_test.py \
  239. src/test/ntor_ref.py \
  240. src/test/slownacl_curve25519.py \
  241. src/test/zero_length_keys.sh \
  242. src/test/test_keygen.sh \
  243. src/test/test_zero_length_keys.sh \
  244. src/test/test_ntor.sh src/test/test_bt.sh \
  245. src/test/test-network.sh \
  246. src/test/test_switch_id.sh \
  247. src/test/test_workqueue_cancel.sh \
  248. src/test/test_workqueue_efd.sh \
  249. src/test/test_workqueue_efd2.sh \
  250. src/test/test_workqueue_pipe.sh \
  251. src/test/test_workqueue_pipe2.sh \
  252. src/test/test_workqueue_socketpair.sh