towards having sending in transport-testing API (not yet flexible enough)
[oweals/gnunet.git] / src / transport / Makefile.am
index 9bc58bf040ce7d9bfdcf72ff5204d7d52f17dd0c..d6c4e3ccf5de8de65cd88f7bf250bd5fcde04d59 100644 (file)
@@ -1,3 +1,4 @@
+# This Makefile.am is in the public domain
 AM_CPPFLAGS = -I$(top_srcdir)/src/include -I$(top_builddir)/src/include
 
 plugindir = $(libdir)/gnunet
@@ -18,28 +19,61 @@ if HAVE_MHD
  HTTPS_SERVER_PLUGIN_TEST = test_plugin_https_server
 endif
 
+if HAVE_LIBGNURL
+ HTTP_CLIENT_PLUGIN_TEST = test_plugin_http_client
+ HTTPS_CLIENT_PLUGIN_TEST = test_plugin_https_client
+ HTTP_CLIENT_PLUGIN_LA = libgnunet_plugin_transport_http_client.la
+ HTTPS_CLIENT_PLUGIN_LA = libgnunet_plugin_transport_https_client.la
+LIB_GNURL=@LIBGNURL@
+CPP_GNURL=@LIBGNURL_CPPFLAGS@
+else
 if HAVE_LIBCURL
  HTTP_CLIENT_PLUGIN_TEST = test_plugin_http_client
  HTTPS_CLIENT_PLUGIN_TEST = test_plugin_https_client
  HTTP_CLIENT_PLUGIN_LA = libgnunet_plugin_transport_http_client.la
  HTTPS_CLIENT_PLUGIN_LA = libgnunet_plugin_transport_https_client.la
+LIB_GNURL=@LIBCURL@
+CPP_GNURL=@LIBCURL_CPPFLAGS@
+endif
 endif
 
-if HAVE_MHD 
+if HAVE_MHD
+if HAVE_LIBGNURL
+ HTTP_API_TEST = test_transport_api_http
+ HTTP_REVERSE_API_TEST = test_transport_api_http_reverse
+ HTTP_API_TIMEOUT_TEST = test_transport_api_timeout_http
+ HTTP_REL_TEST = test_transport_api_reliability_http \
+                test_transport_api_reliability_http_xhr
+ HTTP_QUOTA_TEST = test_quota_compliance_http \
+                  test_quota_compliance_http_asymmetric
+ HTTP_SWITCH = test_transport_address_switch_http
+ HTTPS_API_TEST = test_transport_api_https
+ HTTPS_API_TIMEOUT_TEST = test_transport_api_timeout_https
+ HTTPS_REL_TEST = test_transport_api_reliability_https \
+                 test_transport_api_reliability_https_xhr
+ HTTPS_QUOTA_TEST = test_quota_compliance_https \
+               test_quota_compliance_https_asymmetric
+ HTTPS_SWITCH = test_transport_address_switch_https
+else
 if HAVE_LIBCURL
  HTTP_API_TEST = test_transport_api_http
  HTTP_REVERSE_API_TEST = test_transport_api_http_reverse
  HTTP_API_TIMEOUT_TEST = test_transport_api_timeout_http
- HTTP_REL_TEST = test_transport_api_reliability_http
+ HTTP_REL_TEST = test_transport_api_reliability_http \
+                test_transport_api_reliability_http_xhr
  HTTP_QUOTA_TEST = test_quota_compliance_http \
                   test_quota_compliance_http_asymmetric
+ HTTP_SWITCH = test_transport_address_switch_http
  HTTPS_API_TEST = test_transport_api_https
  HTTPS_API_TIMEOUT_TEST = test_transport_api_timeout_https
- HTTPS_REL_TEST = test_transport_api_reliability_https
+ HTTPS_REL_TEST = test_transport_api_reliability_https \
+                 test_transport_api_reliability_https_xhr
  HTTPS_QUOTA_TEST = test_quota_compliance_https \
-               test_quota_compliance_https_asymmetric 
+               test_quota_compliance_https_asymmetric
+ HTTPS_SWITCH = test_transport_address_switch_https
+endif
+endif
 endif
-endif 
 
 if USE_COVERAGE
   AM_CFLAGS = --coverage -O0
@@ -53,53 +87,57 @@ if LINUX
  WLAN_PLUGIN_LA = libgnunet_plugin_transport_wlan.la
  WLAN_PLUGIN_TEST = test_plugin_wlan
  WLAN_API_TEST = test_transport_api_wlan
+ WLAN_TIMEOUT_TEST = test_transport_api_timeout_wlan
  WLAN_REL_TEST = test_transport_api_reliability_wlan
- WLAN_UREL_TEST = test_transport_api_unreliability_wlan
  WLAN_QUOTA_TEST = test_quota_compliance_wlan \
                test_quota_compliance_wlan_asymmetric
 endif
 
 if LINUX
 install-exec-hook:
-       $(top_srcdir)/src/transport/install-wlan-helper.sh $(libexecdir) $(SUDO_BINARY) || true
+       $(top_srcdir)/src/transport/install-wlan-helper.sh $(DESTDIR)$(libexecdir) $(SUDO_BINARY) || true
+if HAVE_LIBBLUETOOTH
+       $(top_srcdir)/src/transport/install-bluetooth-helper.sh $(DESTDIR)$(libexecdir) $(SUDO_BINARY) || true
+endif
 else
 install-exec-hook:
 endif
 
 if LINUX
 if HAVE_LIBBLUETOOTH
- AM_LDFLAGS = -lbluetooth
  BT_BIN = gnunet-helper-transport-bluetooth
  BT_PLUGIN_LA = libgnunet_plugin_transport_bluetooth.la
  BT_PLUGIN_TEST = test_plugin_bluetooth
  BT_API_TEST = test_transport_api_bluetooth
+ BT_TIMEOUT_TEST = test_transport_api_timeout_bluetooth
  BT_REL_TEST = test_transport_api_reliability_bluetooth
- BT_UREL_TEST = test_transport_api_unreliability_bluetooth
  BT_QUOTA_TEST = test_quota_compliance_bluetooth \
     test_quota_compliance_bluetooth_asymmetric
 endif
-endif
-
-if LINUX
-if HAVE_LIBBLUETOOTH
-install-exec-hook2:
-       $(top_srcdir)/src/transport/install-bluetooth-helper.sh $(libexecdir) $(SUDO_BINARY) || true
-endif
 else
-install-exec-hook2:
+if MINGW
+ BT_BIN = gnunet-helper-transport-bluetooth
+ BT_PLUGIN_LA = libgnunet_plugin_transport_bluetooth.la
 endif
+endif
+
+
 
 if !MINGW
 UNIX_PLUGIN_LA = libgnunet_plugin_transport_unix.la
-UNIX_PLUGIN_TEST = test_transport_api_unix 
+UNIX_PLUGIN_TEST = test_transport_api_unix
 UNIX_TEST = test_plugin_unix
 UNIX_PLUGIN_TIMEOUT_TEST = test_transport_api_timeout_unix
-UNIX_REL_TEST = test_transport_api_unreliability_unix
+UNIX_REL_TEST = test_transport_api_reliability_unix
 UNIX_QUOTA_TEST = test_quota_compliance_unix \
      test_quota_compliance_unix_asymmetric
+if LINUX
+ UNIX_API_ABSTRACT_TEST = test_transport_api_unix_abstract
+endif
 endif
 
 noinst_PROGRAMS = \
+ gnunet-transport-profiler \
  $(WLAN_BIN_SENDER) \
  $(WLAN_BIN_RECEIVER)
 
@@ -112,36 +150,45 @@ lib_LTLIBRARIES = \
   $(TESTING_LIBS)
 
 libgnunettransporttesting_la_SOURCES = \
-  transport-testing.c transport-testing.h
+  transport-testing.c transport-testing.h \
+  transport-testing-filenames.c \
+  transport-testing-loggers.c \
+  transport-testing-main.c \
+  transport-testing-send.c
 libgnunettransporttesting_la_LIBADD = \
-  $(top_builddir)/src/transport/libgnunettransport.la \
+  libgnunettransport.la \
   $(top_builddir)/src/hello/libgnunethello.la \
+  $(top_builddir)/src/ats/libgnunetats.la \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(top_builddir)/src/testing/libgnunettesting.la \
-  $(GN_LIBINTL) 
-libgnunettransporttesting_la_DEPENDENCIES = \
-  libgnunettransport.la
+  $(GN_LIBINTL)
 libgnunettransporttesting_la_LDFLAGS = \
  $(GN_LIB_LDFLAGS)
 
 libgnunettransport_la_SOURCES = \
   transport_api.c transport.h \
-  transport_api_blacklist.c \
   transport_api_address_to_string.c \
-  transport_api_address_lookup.c
+  transport_api_blacklist.c \
+  transport_api_core.c \
+  transport_api_get_hello.c \
+  transport_api_monitor_peers.c \
+  transport_api_monitor_plugins.c \
+  transport_api_offer_hello.c
+
 libgnunettransport_la_LIBADD = \
   $(top_builddir)/src/hello/libgnunethello.la \
+  $(top_builddir)/src/ats/libgnunetats.la \
   $(top_builddir)/src/util/libgnunetutil.la \
-  $(GN_LIBINTL) 
+  $(GN_LIBINTL)
 libgnunettransport_la_LDFLAGS = \
   $(GN_LIB_LDFLAGS) $(WINFLAGS) \
-  -version-info 3:0:1
+  -version-info 4:0:2
 
 libexec_PROGRAMS = \
  $(WLAN_BIN) \
  $(WLAN_BIN_DUMMY) \
  $(BT_BIN) \
- gnunet-service-transport 
+ gnunet-service-transport
 
 bin_PROGRAMS = \
  gnunet-transport \
@@ -161,45 +208,68 @@ gnunet_helper_transport_wlan_SOURCES = \
 gnunet_helper_transport_wlan_dummy_SOURCES = \
  gnunet-helper-transport-wlan-dummy.c
 gnunet_helper_transport_wlan_dummy_LDADD = \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 
 gnunet_transport_wlan_sender_SOURCES = \
  gnunet-transport-wlan-sender.c
 gnunet_transport_wlan_sender_LDADD = \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 
 gnunet_transport_wlan_receiver_SOURCES = \
  gnunet-transport-wlan-receiver.c
 gnunet_transport_wlan_receiver_LDADD = \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 
 gnunet_helper_transport_bluetooth_SOURCES = \
  gnunet-helper-transport-bluetooth.c
+if MINGW
+ gnunet_helper_transport_bluetooth_LDADD = \
+  $(top_builddir)/src/util/libgnunetutil.la
+ gnunet_helper_transport_bluetooth_LDFLAGS = -lws2_32
+else
+ gnunet_helper_transport_bluetooth_LDFLAGS = -lbluetooth
+endif
+
+gnunet_transport_profiler_SOURCES = \
+ gnunet-transport-profiler.c
+gnunet_transport_profiler_LDADD = \
+  libgnunettransport.la \
+  $(top_builddir)/src/nat/libgnunetnat.la \
+  $(top_builddir)/src/hello/libgnunethello.la \
+  $(top_builddir)/src/ats/libgnunetats.la \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(GN_LIBINTL)
 
 gnunet_transport_SOURCES = \
- gnunet-transport.c         
+ gnunet-transport.c
 gnunet_transport_LDADD = \
-  $(top_builddir)/src/transport/libgnunettransport.la \
+  libgnunettransport.la \
   $(top_builddir)/src/nat/libgnunetnat.la \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(GN_LIBINTL)
-gnunet_transport_DEPENDENCIES = \
-  libgnunettransport.la                                
 
 gnunet_service_transport_SOURCES = \
  gnunet-service-transport.c gnunet-service-transport.h \
+ gnunet-service-transport_ats.h gnunet-service-transport_ats.c \
  gnunet-service-transport_blacklist.h gnunet-service-transport_blacklist.c \
  gnunet-service-transport_clients.h gnunet-service-transport_clients.c \
  gnunet-service-transport_hello.h gnunet-service-transport_hello.c \
  gnunet-service-transport_neighbours.h gnunet-service-transport_neighbours.c \
  gnunet-service-transport_plugins.h gnunet-service-transport_plugins.c \
  gnunet-service-transport_validation.h gnunet-service-transport_validation.c \
- gnunet-service-transport_manipulation.h gnunet-service-transport_manipulation.c 
+ gnunet-service-transport_manipulation.h gnunet-service-transport_manipulation.c
+# Note that while gnunet-service-transport does not use libgnunetnat
+# directly, we must link against it as GNUNET_NAT_mini_map_stop will
+# leave a 'dangling' task to process_unmap_output which will cause
+# a crash on unloading of a plugin unless the service links against
+# that library as well.
 gnunet_service_transport_LDADD = \
+  libgnunettransport.la \
   $(top_builddir)/src/ats/libgnunetats.la \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
+  $(top_builddir)/src/nat/libgnunetnat.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(GN_GLPK) \
@@ -217,7 +287,11 @@ plugin_LTLIBRARIES = \
   $(HTTP_SERVER_PLUGIN_LA) \
   $(HTTPS_SERVER_PLUGIN_LA) \
   $(WLAN_PLUGIN_LA) \
-  $(BT_PLUGIN_LA) \
+  $(BT_PLUGIN_LA)
+
+# Note: real plugins of course need to be added
+# to the plugin_LTLIBRARIES above
+noinst_LTLIBRARIES = \
   libgnunet_plugin_transport_template.la
 
 libgnunet_plugin_transport_tcp_la_SOURCES = \
@@ -247,12 +321,14 @@ libgnunet_plugin_transport_wlan_la_LIBADD = \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
   $(top_builddir)/src/fragmentation/libgnunetfragmentation.la \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 libgnunet_plugin_transport_wlan_la_LDFLAGS = \
   $(GN_PLUGIN_LDFLAGS)
+libgnunet_plugin_transport_wlan_la_CFLAGS = \
+ $(CFLAGS) -DBUILD_WLAN
 
 libgnunet_plugin_transport_bluetooth_la_SOURCES = \
-  plugin_transport_bluetooth.c plugin_transport_wlan.h
+  plugin_transport_wlan.c plugin_transport_wlan.h
 libgnunet_plugin_transport_bluetooth_la_LIBADD = \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
@@ -261,6 +337,8 @@ libgnunet_plugin_transport_bluetooth_la_LIBADD = \
   $(top_builddir)/src/util/libgnunetutil.la
 libgnunet_plugin_transport_bluetooth_la_LDFLAGS = \
   $(GN_PLUGIN_LDFLAGS)
+libgnunet_plugin_transport_bluetooth_la_CFLAGS = \
+ $(CFLAGS) -DBUILD_BLUETOOTH
 
 libgnunet_plugin_transport_udp_la_SOURCES = \
   plugin_transport_udp.c plugin_transport_udp.h \
@@ -294,30 +372,30 @@ libgnunet_plugin_transport_http_client_la_LIBADD = \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
-  @LIBCURL@ \
+  $(LIB_GNURL) \
   $(top_builddir)/src/nat/libgnunetnat.la \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 libgnunet_plugin_transport_http_client_la_LDFLAGS = \
  $(GN_PLUGIN_LDFLAGS)
 libgnunet_plugin_transport_http_client_la_CFLAGS = \
- $(CFLAGS) 
+ $(CFLAGS)
 libgnunet_plugin_transport_http_client_la_CPPFLAGS = \
@LIBCURL_CPPFLAGS@ $(AM_CPPFLAGS)
$(CPP_GNURL) $(AM_CPPFLAGS)
 
 
 libgnunet_plugin_transport_http_server_la_SOURCES = \
-  plugin_transport_http_server.c plugin_transport_http_common.c 
+  plugin_transport_http_server.c plugin_transport_http_common.c
 libgnunet_plugin_transport_http_server_la_LIBADD = \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
   $(top_builddir)/src/nat/libgnunetnat.la \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 libgnunet_plugin_transport_http_server_la_LDFLAGS = \
  $(GN_LIBMHD) \
  $(GN_PLUGIN_LDFLAGS)
 libgnunet_plugin_transport_http_server_la_CFLAGS = \
- $(CFLAGS) 
+ $(CFLAGS)
 
 libgnunet_plugin_transport_https_client_la_SOURCES = \
   plugin_transport_http_client.c plugin_transport_http_common.c
@@ -325,15 +403,15 @@ libgnunet_plugin_transport_https_client_la_LIBADD = \
   $(top_builddir)/src/hello/libgnunethello.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
-  @LIBCURL@ \
+  $(LIB_GNURL) \
   $(top_builddir)/src/nat/libgnunetnat.la \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 libgnunet_plugin_transport_https_client_la_LDFLAGS = \
  $(GN_PLUGIN_LDFLAGS)
 libgnunet_plugin_transport_https_client_la_CFLAGS = \
- $(CFLAGS) -DBUILD_HTTPS 
+ $(CFLAGS) -DBUILD_HTTPS
 libgnunet_plugin_transport_https_client_la_CPPFLAGS = \
@LIBCURL_CPPFLAGS@ $(AM_CPPFLAGS)
$(CPP_GNURL) $(AM_CPPFLAGS)
 
 
 libgnunet_plugin_transport_https_server_la_SOURCES = \
@@ -343,20 +421,21 @@ libgnunet_plugin_transport_https_server_la_LIBADD = \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
   $(top_builddir)/src/peerinfo/libgnunetpeerinfo.la \
   $(top_builddir)/src/nat/libgnunetnat.la \
-  $(top_builddir)/src/util/libgnunetutil.la 
+  $(top_builddir)/src/util/libgnunetutil.la
 libgnunet_plugin_transport_https_server_la_LDFLAGS = \
  $(GN_LIBMHD) \
  $(GN_PLUGIN_LDFLAGS)
 libgnunet_plugin_transport_https_server_la_CFLAGS = \
- $(CFLAGS) -DBUILD_HTTPS 
+ $(CFLAGS) -DBUILD_HTTPS
 
 
 if HAVE_TESTING
 check_PROGRAMS = \
+ test_transport_api_restart_2peers \
+ test_transport_address_switch_tcp \
+ test_transport_address_switch_udp \
  test_transport_testing_startstop \
  test_transport_testing_restart \
- test_transport_testing \
- test_transport_startonly \
  test_plugin_tcp \
  test_plugin_udp \
  $(UNIX_TEST) \
@@ -367,12 +446,10 @@ check_PROGRAMS = \
  $(HTTPS_CLIENT_PLUGIN_TEST) \
  $(HTTP_SERVER_PLUGIN_TEST) \
  $(HTTPS_SERVER_PLUGIN_TEST) \
- test_transport_api_blacklisting \
+ test_transport_api_blacklisting_tcp \
  test_transport_api_disconnect_tcp \
- test_transport_api_bidirectional_connect \
  test_transport_api_tcp \
  test_transport_api_restart_1peer \
- test_transport_api_restart_2peers \
  test_transport_api_timeout_tcp \
  test_transport_api_limited_sockets_tcp \
  test_transport_api_tcp_nat \
@@ -380,15 +457,21 @@ check_PROGRAMS = \
  test_transport_api_timeout_udp \
  $(UNIX_PLUGIN_TEST) \
  $(UNIX_PLUGIN_TIMEOUT_TEST) \
+ $(UNIX_API_ABSTRACT_TEST) \
  test_transport_api_udp_nat \
  $(HTTP_API_TEST) \
  $(HTTP_REVERSE_API_TEST) \
  $(HTTP_API_TIMEOUT_TEST) \
+ $(HTTP_SWITCH) \
  $(HTTPS_API_TEST) \
  $(HTTPS_API_TIMEOUT_TEST) \
+ $(HTTPS_SWITCH) \
  $(WLAN_API_TEST) \
+ $(WLAN_TIMEOUT_TEST) \
  $(BT_API_TEST) \
+ $(BT_TIMEOUT_TEST) \
  test_transport_api_multi \
+ test_transport_api_monitor_peers \
  test_transport_blacklisting_no_bl \
  test_transport_blacklisting_outbound_bl_full \
  test_transport_blacklisting_outbound_bl_plugin \
@@ -400,8 +483,7 @@ check_PROGRAMS = \
  test_transport_api_manipulation_cfg \
  test_transport_api_reliability_tcp \
  test_transport_api_reliability_tcp_nat \
- test_transport_api_unreliability_udp \
- test_transport_api_unreliability_constant_udp \
+ test_transport_api_reliability_udp \
  $(UNIX_REL_TEST) \
  $(HTTP_REL_TEST) \
  $(HTTPS_REL_TEST) \
@@ -417,40 +499,39 @@ check_PROGRAMS = \
  $(HTTPS_QUOTA_TEST) \
  $(WLAN_QUOTA_TEST) \
  $(BT_QUOTA_TEST)
+if HAVE_GETOPT_BINARY
+check_PROGRAMS += \
+test_transport_api_slow_ats
+endif
 endif
 
 if ENABLE_TEST_RUN
+AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;
 TESTS = \
  test_transport_testing_startstop \
  test_transport_testing_restart \
- test_transport_testing \
- test_transport_startonly \
  test_plugin_tcp \
  test_plugin_udp \
  $(UNIX_TEST) \
  $(WLAN_PLUGIN_TEST) \
  $(BT_PLUGIN_TEST) \
- test_transport_api_blacklisting \
+ test_transport_api_blacklisting_tcp \
  test_transport_api_disconnect_tcp \
- test_transport_api_bidirectional_connect \
  test_transport_api_tcp \
  test_transport_api_restart_1peer \
  test_transport_api_restart_2peers \
- test_transport_api_timeout_tcp \
  test_transport_api_limited_sockets_tcp \
  test_transport_api_tcp_nat \
  test_transport_api_udp \
- test_transport_api_timeout_udp \
  $(UNIX_PLUGIN_TEST) \
- $(UNIX_PLUGIN_TIMEOUT_TEST) \
+ $(UNIX_API_ABSTRACT_TEST) \
  test_transport_api_udp_nat \
  $(HTTP_API_TEST) \
- $(HTTP_API_TIMEOUT_TEST) \
  $(HTTPS_API_TEST) \
- $(HTTPS_API_TIMEOUT_TEST) \
  $(WLAN_API_TEST) \
  $(BT_API_TEST) \
  test_transport_api_multi \
+ test_transport_api_monitor_peers \
  test_transport_blacklisting_no_bl \
  test_transport_blacklisting_outbound_bl_full \
  test_transport_blacklisting_outbound_bl_plugin \
@@ -462,8 +543,7 @@ TESTS = \
  test_transport_api_manipulation_cfg \
  test_transport_api_reliability_tcp \
  test_transport_api_reliability_tcp_nat \
- test_transport_api_unreliability_udp \
- test_transport_api_unreliability_constant_udp \
+ test_transport_api_reliability_udp \
  $(UNIX_REL_TEST) \
  $(HTTP_REL_TEST) \
  $(HTTPS_REL_TEST) \
@@ -476,500 +556,510 @@ TESTS = \
  test_quota_compliance_udp \
  $(UNIX_QUOTA_TEST) \
  $(HTTP_QUOTA_TEST) \
- $(HTTPS_QUOTA_TEST)
+ $(HTTPS_QUOTA_TEST) \
+ test_transport_api_timeout_tcp \
+ test_transport_api_timeout_udp \
+ $(UNIX_PLUGIN_TIMEOUT_TEST) \
+ $(HTTP_API_TIMEOUT_TEST) \
+ $(HTTPS_API_TIMEOUT_TEST) \
+ $(WLAN_TIMEOUT_TEST) \
+ $(BT_TIMEOUT_TEST) \
+ test_transport_address_switch_tcp \
+ test_transport_address_switch_udp \
+ $(HTTP_SWITCH) \
+ $(HTTPS_SWITCH)
+if HAVE_GETOPT_BINARY
+TESTS += \
+test_transport_api_slow_ats
+endif
 endif
 
 test_transport_testing_startstop_SOURCES = \
  test_transport_testing_startstop.c
 test_transport_testing_startstop_LDADD = \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_testing_restart_SOURCES = \
  test_transport_testing_restart.c
 test_transport_testing_restart_LDADD = \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransport.la \
- $(top_builddir)/src/hello/libgnunethello.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
-
-test_transport_testing_SOURCES = \
- test_transport_testing.c
-test_transport_testing_LDADD = \
- $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_blacklisting_SOURCES = \
+test_transport_api_blacklisting_tcp_SOURCES = \
  test_transport_api_blacklisting.c
-test_transport_api_blacklisting_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_blacklisting_tcp_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_blacklisting_no_bl_SOURCES = \
  test_transport_blacklisting.c
 test_transport_blacklisting_no_bl_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
+
 test_transport_blacklisting_outbound_bl_full_SOURCES = \
  test_transport_blacklisting.c
 test_transport_blacklisting_outbound_bl_full_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
+
 test_transport_blacklisting_outbound_bl_plugin_SOURCES = \
  test_transport_blacklisting.c
 test_transport_blacklisting_outbound_bl_plugin_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la   
+ libgnunettransporttesting.la
 
 test_transport_blacklisting_inbound_bl_full_SOURCES = \
  test_transport_blacklisting.c
 test_transport_blacklisting_inbound_bl_full_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la   
+ libgnunettransporttesting.la
+
 test_transport_blacklisting_inbound_bl_plugin_SOURCES = \
  test_transport_blacklisting.c
 test_transport_blacklisting_inbound_bl_plugin_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 
 test_transport_blacklisting_multiple_plugins_SOURCES = \
  test_transport_blacklisting.c
 test_transport_blacklisting_multiple_plugins_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 
 
 test_transport_api_disconnect_tcp_SOURCES = \
  test_transport_api_disconnect.c
 test_transport_api_disconnect_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
-
-test_transport_startonly_SOURCES = \
- test_transport_startonly.c
-test_transport_startonly_LDADD = \
- $(top_builddir)/src/transport/libgnunettransport.la \
- $(top_builddir)/src/hello/libgnunethello.la \
- $(top_builddir)/src/statistics/libgnunetstatistics.la \
- $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_plugin_tcp_SOURCES = \
  test_plugin_transport.c
 test_plugin_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_plugin_udp_SOURCES = \
  test_plugin_transport.c
 test_plugin_udp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_plugin_unix_SOURCES = \
  test_plugin_transport.c
 test_plugin_unix_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_plugin_wlan_SOURCES = \
  test_plugin_transport.c
 test_plugin_wlan_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_plugin_bluetooth_SOURCES = \
  test_plugin_transport.c
 test_plugin_bluetooth_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_http_common_SOURCES = \
  test_http_common.c plugin_transport_http_common.c
 test_http_common_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_plugin_http_server_SOURCES = \
  test_plugin_transport.c
 test_plugin_http_server_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_plugin_https_server_SOURCES = \
  test_plugin_transport.c
 test_plugin_https_server_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_plugin_http_client_SOURCES = \
  test_plugin_transport.c
 test_plugin_http_client_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_plugin_https_client_SOURCES = \
  test_plugin_transport.c
 test_plugin_https_client_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 
 test_transport_api_tcp_SOURCES = \
  test_transport_api.c
 test_transport_api_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la
-
-test_transport_api_bidirectional_connect_SOURCES = \
- test_transport_api_bidirectional_connect.c
-test_transport_api_bidirectional_connect_LDADD = \
- $(top_builddir)/src/transport/libgnunettransport.la \
- $(top_builddir)/src/hello/libgnunethello.la \
- $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_transport_api_restart_1peer_SOURCES = \
  test_transport_api_restart_1peer.c
 test_transport_api_restart_1peer_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_restart_2peers_SOURCES = \
  test_transport_api_restart_2peers.c
 test_transport_api_restart_2peers_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
- $(top_builddir)/src/statistics/libgnunetstatistics.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
+$(top_builddir)/src/statistics/libgnunetstatistics.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_limited_sockets_tcp_SOURCES = \
  test_transport_api_limited_sockets.c
 test_transport_api_limited_sockets_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_transport_api_tcp_nat_SOURCES = \
  test_transport_api.c
 test_transport_api_tcp_nat_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_manipulation_send_tcp_SOURCES = \
  test_transport_api_manipulation_send_tcp.c
 test_transport_api_manipulation_send_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_manipulation_recv_tcp_SOURCES = \
  test_transport_api_manipulation_recv_tcp.c
 test_transport_api_manipulation_recv_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_manipulation_cfg_SOURCES = \
  test_transport_api_manipulation_cfg.c
 test_transport_api_manipulation_cfg_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
-
-
+ libgnunettransporttesting.la
 
 test_transport_api_reliability_tcp_SOURCES = \
  test_transport_api_reliability.c
 test_transport_api_reliability_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_timeout_tcp_SOURCES = \
  test_transport_api_timeout.c
 test_transport_api_timeout_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_timeout_unix_SOURCES = \
  test_transport_api_timeout.c
 test_transport_api_timeout_unix_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_reliability_tcp_nat_SOURCES = \
- test_transport_api_reliability.c
-test_transport_api_reliability_tcp_nat_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_timeout_wlan_SOURCES = \
+ test_transport_api_timeout.c
+test_transport_api_timeout_wlan_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_reliability_wlan_SOURCES = \
- test_transport_api_reliability.c
-test_transport_api_reliability_wlan_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_timeout_bluetooth_SOURCES = \
+ test_transport_api_timeout.c
+test_transport_api_timeout_bluetooth_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
-test_transport_api_reliability_bluetooth_SOURCES = \
+test_transport_api_reliability_tcp_nat_SOURCES = \
  test_transport_api_reliability.c
-test_transport_api_reliability_bluetooth_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_reliability_tcp_nat_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_unreliability_wlan_SOURCES = \
- test_transport_api_unreliability.c
-test_transport_api_unreliability_wlan_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_reliability_bluetooth_SOURCES = \
+ test_transport_api_reliability.c
+test_transport_api_reliability_bluetooth_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_unreliability_bluetooth_SOURCES = \
- test_transport_api_unreliability.c
-test_transport_api_unreliability_bluetooth_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_reliability_wlan_SOURCES = \
+ test_transport_api_reliability.c
+test_transport_api_reliability_wlan_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_udp_SOURCES = \
  test_transport_api.c
 test_transport_api_udp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_transport_api_timeout_udp_SOURCES = \
  test_transport_api_timeout.c
 test_transport_api_timeout_udp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 
 test_transport_api_udp_nat_SOURCES = \
  test_transport_api.c
 test_transport_api_udp_nat_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 
 test_transport_api_unix_SOURCES = \
  test_transport_api.c
 test_transport_api_unix_LDADD = \
- $(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/util/libgnunetutil.la \
+ libgnunettransporttesting.la
+
+test_transport_api_unix_abstract_SOURCES = \
+ test_transport_api.c
+test_transport_api_unix_abstract_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 # HTTP tests
 test_transport_api_http_SOURCES = \
  test_transport_api.c
 test_transport_api_http_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_transport_api_http_reverse_SOURCES = \
  test_transport_api.c
 test_transport_api_http_reverse_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_transport_api_timeout_http_SOURCES = \
  test_transport_api_timeout.c
 test_transport_api_timeout_http_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 
 test_transport_api_reliability_http_SOURCES = \
  test_transport_api_reliability.c
 test_transport_api_reliability_http_LDADD = \
- $(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/util/libgnunetutil.la \
+ libgnunettransporttesting.la
+
+test_transport_api_reliability_http_xhr_SOURCES = \
+ test_transport_api_reliability.c
+test_transport_api_reliability_http_xhr_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_quota_compliance_http_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_http_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_quota_compliance_http_asymmetric_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_http_asymmetric_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_https_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_https_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_https_asymmetric_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_https_asymmetric_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 # HTTPS tests
 test_transport_api_https_SOURCES = \
  test_transport_api.c
 test_transport_api_https_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la  \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_transport_api_timeout_https_SOURCES = \
  test_transport_api_timeout.c
 test_transport_api_timeout_https_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 
 
 test_transport_api_reliability_https_SOURCES = \
  test_transport_api_reliability.c
 test_transport_api_reliability_https_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_unreliability_unix_SOURCES = \
- test_transport_api_unreliability.c
-test_transport_api_unreliability_unix_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_reliability_https_xhr_SOURCES = \
+ test_transport_api_reliability.c
+test_transport_api_reliability_https_xhr_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_unreliability_udp_SOURCES = \
- test_transport_api_unreliability.c
-test_transport_api_unreliability_udp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_reliability_unix_SOURCES = \
+ test_transport_api_reliability.c
+test_transport_api_reliability_unix_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
-test_transport_api_unreliability_constant_udp_SOURCES = \
- test_transport_api_unreliability_constant.c
-test_transport_api_unreliability_constant_udp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+test_transport_api_reliability_udp_SOURCES = \
+ test_transport_api_reliability.c
+test_transport_api_reliability_udp_LDADD = \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 if LINUX
 test_transport_api_wlan_SOURCES = \
  test_transport_api.c
 test_transport_api_wlan_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 endif
 
 if LINUX
@@ -977,97 +1067,161 @@ if HAVE_LIBBLUETOOTH
 test_transport_api_bluetooth_SOURCES = \
  test_transport_api.c
 test_transport_api_bluetooth_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la  
+ libgnunettransporttesting.la
 endif
 endif
 
+test_transport_address_switch_tcp_SOURCES = \
+ test_transport_address_switch.c
+test_transport_address_switch_tcp_LDADD = \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/statistics/libgnunetstatistics.la \
+ $(top_builddir)/src/util/libgnunetutil.la \
+ libgnunettransporttesting.la
+
+ test_transport_address_switch_udp_SOURCES = \
+ test_transport_address_switch.c
+test_transport_address_switch_udp_LDADD = \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/statistics/libgnunetstatistics.la \
+ $(top_builddir)/src/util/libgnunetutil.la \
+ libgnunettransporttesting.la
+
+
+ test_transport_address_switch_http_SOURCES = \
+ test_transport_address_switch.c
+test_transport_address_switch_http_LDADD = \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/statistics/libgnunetstatistics.la \
+ $(top_builddir)/src/util/libgnunetutil.la \
+ libgnunettransporttesting.la
+
+ test_transport_address_switch_https_SOURCES = \
+ test_transport_address_switch.c
+test_transport_address_switch_https_LDADD = \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/statistics/libgnunetstatistics.la \
+ $(top_builddir)/src/util/libgnunetutil.la \
+ libgnunettransporttesting.la
+
 test_quota_compliance_tcp_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_tcp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_quota_compliance_tcp_asymmetric_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_tcp_asymmetric_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
 
 test_quota_compliance_udp_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_udp_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_unix_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_unix_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_unix_asymmetric_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_unix_asymmetric_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_wlan_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_wlan_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_wlan_asymmetric_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_wlan_asymmetric_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_bluetooth_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_bluetooth_LDADD = \
- $(top_builddir)/src/transport/libgnunettransport.la \
+ $(top_builddir)/src/nat/libgnunetnat.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_quota_compliance_bluetooth_asymmetric_SOURCES = \
  test_quota_compliance.c
 test_quota_compliance_bluetooth_asymmetric_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/ats/libgnunetats.la \
  $(top_builddir)/src/util/libgnunetutil.la \
$(top_builddir)/src/transport/libgnunettransporttesting.la
+ libgnunettransporttesting.la
 
 test_transport_api_multi_SOURCES = \
  test_transport_api.c
 test_transport_api_multi_LDADD = \
$(top_builddir)/src/transport/libgnunettransport.la \
+ libgnunettransport.la \
  $(top_builddir)/src/hello/libgnunethello.la \
  $(top_builddir)/src/util/libgnunetutil.la \
- $(top_builddir)/src/transport/libgnunettransporttesting.la 
+ libgnunettransporttesting.la
+
+test_transport_api_monitor_peers_SOURCES = \
+ test_transport_api_monitor_peers.c
+test_transport_api_monitor_peers_LDADD = \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/util/libgnunetutil.la \
+ libgnunettransporttesting.la
+
+test_transport_api_slow_ats_SOURCES = \
+ test_transport_api.c
+test_transport_api_slow_ats_LDADD = \
+ libgnunettransport.la \
+ $(top_builddir)/src/hello/libgnunethello.la \
+ $(top_builddir)/src/util/libgnunetutil.la  \
+ libgnunettransporttesting.la
 
 
 EXTRA_DIST = \
 test_plugin_hostkey \
 test_plugin_hostkey.ecc \
+test_delay \
 template_cfg_peer1.conf\
 template_cfg_peer2.conf\
 test_plugin_transport_data.conf\
@@ -1100,6 +1254,8 @@ test_quota_compliance_wlan_asymmetric_peer2.conf\
 test_quota_compliance_bluetooth_asymmetric_peer1.conf\
 test_quota_compliance_bluetooth_asymmetric_peer2.conf\
 test_transport_api_data.conf\
+test_transport_api_blacklisting_tcp_peer1.conf \
+test_transport_api_blacklisting_tcp_peer2.conf \
 test_transport_api_http_peer1.conf\
 test_transport_api_http_peer2.conf\
 test_transport_api_https_peer1.conf\
@@ -1110,6 +1266,8 @@ test_transport_api_timeout_tcp_peer1.conf\
 test_transport_api_timeout_tcp_peer2.conf\
 test_transport_api_multi_peer1.conf\
 test_transport_api_multi_peer2.conf\
+test_transport_api_restart_1peer_peer1.conf\
+test_transport_api_restart_1peer_peer2.conf\
 test_transport_api_reliability_http_peer1.conf\
 test_transport_api_reliability_http_peer2.conf\
 test_transport_api_reliability_https_peer1.conf\
@@ -1122,14 +1280,16 @@ test_transport_api_reliability_wlan_peer1.conf\
 test_transport_api_reliability_wlan_peer2.conf\
 test_transport_api_reliability_bluetooth_peer1.conf\
 test_transport_api_reliability_bluetooth_peer2.conf\
-test_transport_api_bidirectional_connect_peer1.conf\
-test_transport_api_bidirectional_connect_peer2.conf\
 test_transport_api_manipulation_send_tcp_peer1.conf\
 test_transport_api_manipulation_send_tcp_peer2.conf\
 test_transport_api_manipulation_recv_tcp_peer1.conf\
 test_transport_api_manipulation_recv_tcp_peer2.conf\
 test_transport_api_manipulation_cfg_peer1.conf\
 test_transport_api_manipulation_cfg_peer2.conf\
+test_transport_api_restart_1peer_peer1.conf\
+test_transport_api_restart_1peer_peer2.conf\
+test_transport_api_restart_2peers_peer1.conf\
+test_transport_api_restart_2peers_peer2.conf\
 test_transport_api_tcp_nat_peer1.conf\
 test_transport_api_tcp_nat_peer2.conf\
 test_transport_api_tcp_peer1.conf\
@@ -1142,20 +1302,36 @@ test_transport_api_timeout_udp_peer1.conf\
 test_transport_api_timeout_udp_peer2.conf\
 test_transport_api_unix_peer1.conf\
 test_transport_api_unix_peer2.conf\
+test_transport_api_unix_abstract_peer1.conf \
+test_transport_api_unix_abstract_peer2.conf \
 test_transport_api_timeout_unix_peer1.conf\
 test_transport_api_timeout_unix_peer2.conf\
-test_transport_api_unreliability_udp_peer1.conf\
-test_transport_api_unreliability_udp_peer2.conf\
-test_transport_api_unreliability_unix_peer1.conf\
-test_transport_api_unreliability_unix_peer2.conf\
+test_transport_api_timeout_wlan_peer1.conf \
+test_transport_api_timeout_wlan_peer2.conf \
+test_transport_api_timeout_bluetooth_peer1.conf\
+test_transport_api_timeout_bluetooth_peer2.conf\
+test_transport_api_reliability_udp_peer1.conf\
+test_transport_api_reliability_udp_peer2.conf\
+test_transport_api_reliability_http_xhr_peer1.conf\
+test_transport_api_reliability_http_xhr_peer2.conf\
+test_transport_api_reliability_https_xhr_peer1.conf\
+test_transport_api_reliability_https_xhr_peer2.conf\
+test_transport_api_reliability_unix_peer1.conf\
+test_transport_api_reliability_unix_peer2.conf\
+test_transport_api_reliability_wlan_peer1.conf\
+test_transport_api_reliability_wlan_peer2.conf\
 test_transport_api_unreliability_wlan_peer1.conf\
 test_transport_api_unreliability_wlan_peer2.conf\
-test_transport_api_unreliability_bluetooth_peer1.conf\
-test_transport_api_unreliability_bluetooth_peer2.conf\
+test_transport_api_reliability_bluetooth_peer1.conf\
+test_transport_api_reliability_bluetooth_peer2.conf\
 test_transport_api_wlan_peer1.conf\
 test_transport_api_wlan_peer2.conf\
 test_transport_api_bluetooth_peer1.conf\
 test_transport_api_bluetooth_peer2.conf\
+test_transport_api_monitor_peers_peer1.conf\
+test_transport_api_monitor_peers_peer2.conf\
+test_transport_api_monitor_validation_peer1.conf\
+test_transport_api_monitor_validation_peer2.conf\
 test_transport_defaults.conf\
 test_transport_startonly.conf\
 test_transport_api_disconnect_tcp_peer1.conf\
@@ -1164,8 +1340,6 @@ test_transport_api_timeout_http_peer1.conf\
 test_transport_api_timeout_http_peer2.conf\
 test_transport_api_timeout_https_peer1.conf\
 test_transport_api_timeout_https_peer2.conf\
-test_transport_api_unreliability_constant_udp_peer1.conf\
-test_transport_api_unreliability_constant_udp_peer2.conf\
 test_transport_blacklisting_cfg_peer1.conf \
 test_transport_blacklisting_cfg_peer2.conf \
 test_transport_blacklisting_cfg_blp_peer1_full.conf\
@@ -1175,4 +1349,8 @@ test_transport_blacklisting_cfg_blp_peer2_plugin.conf \
 test_transport_blacklisting_cfg_blp_peer1_multiple_plugins.conf \
 test_transport_blacklisting_cfg_blp_peer2_multiple_plugins.conf \
 test_transport_api_http_reverse_peer1.conf \
-test_transport_api_http_reverse_peer2.conf 
+test_transport_api_http_reverse_peer2.conf \
+perf_tcp_peer1.conf \
+perf_tcp_peer2.conf \
+test_transport_api_slow_ats_peer1.conf \
+test_transport_api_slow_ats_peer2.conf