From 5402016fcb271bbfa9c9470bd281d73b72e75bca Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sun, 22 Dec 2019 22:52:08 +0900 Subject: [PATCH] basic tests --- src/transport/Makefile.am | 8 +-- ...mmunicator.c => test_communicator_basic.c} | 58 ++++++++++++------- src/transport/transport-testing2.c | 35 +++++++---- 3 files changed, 67 insertions(+), 34 deletions(-) rename src/transport/{test_communicator.c => test_communicator_basic.c} (88%) diff --git a/src/transport/Makefile.am b/src/transport/Makefile.am index ff9d7aec7..5d0ba2218 100644 --- a/src/transport/Makefile.am +++ b/src/transport/Makefile.am @@ -588,7 +588,7 @@ check_PROGRAMS += \ test_transport_api_slow_ats endif check_PROGRAMS += \ -test_communicator_unix +test_communicator_basic_unix if HAVE_EXPERIMENTAL check_PROGRAMS += \ test_transport_address_switch_udp \ @@ -782,9 +782,9 @@ test_plugin_udp_LDADD = \ libgnunettransporttesting.la endif -test_communicator_unix_SOURCES = \ - test_communicator.c -test_communicator_unix_LDADD = \ +test_communicator_basic_unix_SOURCES = \ + test_communicator_basic.c +test_communicator_basic_unix_LDADD = \ libgnunettransporttesting2.la \ $(top_builddir)/src/testing/libgnunettesting.la \ $(top_builddir)/src/util/libgnunetutil.la diff --git a/src/transport/test_communicator.c b/src/transport/test_communicator_basic.c similarity index 88% rename from src/transport/test_communicator.c rename to src/transport/test_communicator_basic.c index d77128b09..ef18d6a81 100644 --- a/src/transport/test_communicator.c +++ b/src/transport/test_communicator_basic.c @@ -19,7 +19,7 @@ */ /** -* @file transport/test_communicator.c +* @file transport/test_communicator_basic.c * @brief test the communicators * @author Julius Bünger * @author Martin Schanzenbach @@ -80,6 +80,10 @@ static struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorQueue *my_tc; #define SIZE_CHECK 2 +#define MAX_BUF_LEN 10 + +static int buf_len = 0; + static char short_payload[SHORT_MESSAGE_SIZE]; static char long_payload[LONG_MESSAGE_SIZE]; @@ -163,19 +167,18 @@ static void size_test (void *cls) { char payload[ack]; + phase = SIZE_CHECK; memset (payload, 0, ack); - if (ack < UINT16_MAX) + if (ack < 64000) //Leave some room for our protocol. { GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, &payload, sizeof(payload)); return; } - GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, - "LONG Goodput (bytes/s): %lu\n", - (LONG_MESSAGE_SIZE * long_received) / LONG_BURST_SECONDS); - ret = 0; + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Finished\n"); GNUNET_SCHEDULER_shutdown (); // Finished! } @@ -188,15 +191,22 @@ long_test (void *cls) start_long); if (LONG_BURST_WINDOW.rel_value_us > duration.rel_value_us) { - GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, - &long_payload, - sizeof(long_payload)); + if (buf_len < MAX_BUF_LEN) + { + GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, + &long_payload, + sizeof(long_payload)); + buf_len++; + } GNUNET_SCHEDULER_add_now (&long_test, NULL); return; } - phase = SIZE_CHECK; + GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, + "LONG Goodput (bytes/s): %lu - received packets: %lu\n", + (LONG_MESSAGE_SIZE * long_received) / LONG_BURST_SECONDS, + long_received); ack = 5; - GNUNET_SCHEDULER_add_now (&size_test, NULL); + GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &size_test, NULL); } @@ -207,10 +217,13 @@ short_test (void *cls) start_short); if (SHORT_BURST_WINDOW.rel_value_us > duration.rel_value_us) { - GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, - &short_payload, - sizeof(short_payload)); - + if (buf_len < MAX_BUF_LEN) + { + GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, + &short_payload, + sizeof(short_payload)); + buf_len++; + } GNUNET_SCHEDULER_add_now (&short_test, NULL); return; } @@ -222,6 +235,7 @@ short_test (void *cls) short_received); start_long = GNUNET_TIME_absolute_get (); phase = BURST_LONG; + buf_len = 0; GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &long_test, NULL); } @@ -249,6 +263,7 @@ add_queue_cb (void *cls, "Queue established, starting test...\n"); start_short = GNUNET_TIME_absolute_get (); my_tc = tc_queue; + buf_len = 0; phase = BURST_SHORT; GNUNET_SCHEDULER_add_now (&short_test, tc_queue); } @@ -270,23 +285,25 @@ incoming_message_cb (void *cls, const char*payload, size_t payload_len) { - //GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - // "Receiving payload with size %lu...\n", payload_len); if (0 != strcmp ((char*) cls, cfg_peers_name[NUM_PEERS - 1])) return; // TODO? if (phase == BURST_SHORT) { GNUNET_assert (SHORT_MESSAGE_SIZE == payload_len); short_received++; + buf_len--; } else if (phase == BURST_LONG) { if (LONG_MESSAGE_SIZE != payload_len) - return; //Ignore + return; // Ignore long_received++; + buf_len--; } else // if (phase == SIZE_CHECK) { { + // GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + // "Receiving payload with size %lu...\n", payload_len); if (ack != payload_len) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -309,6 +326,7 @@ incoming_message_cb (void *cls, static void run (void *cls) { + ret = 0; memset (long_payload, 0, LONG_MESSAGE_SIZE); memset (short_payload, 0, SHORT_MESSAGE_SIZE); for (int i = 0; i < NUM_PEERS; i++) @@ -340,9 +358,9 @@ main (int argc, GNUNET_asprintf (&communicator_binary, "gnunet-communicator-%s", communicator_name); cfg_peers_name = GNUNET_malloc (sizeof(char*) * NUM_PEERS); - if (GNUNET_OK != GNUNET_log_setup ("test_communicator", + if (GNUNET_OK != GNUNET_log_setup ("test_communicator_basic", "DEBUG", - "test_communicator.log")) + "test_communicator_basic.log")) { fprintf (stderr, "Unable to setup log\n"); GNUNET_break (0); diff --git a/src/transport/transport-testing2.c b/src/transport/transport-testing2.c index 230c35b4f..547f8611b 100644 --- a/src/transport/transport-testing2.c +++ b/src/transport/transport-testing2.c @@ -280,8 +280,6 @@ static int check_add_address (void *cls, const struct GNUNET_TRANSPORT_AddAddressMessage *msg) { - struct TransportClient *tc = cls; - // if (CT_COMMUNICATOR != tc->type) // { // GNUNET_break (0); @@ -568,6 +566,22 @@ disconnect_cb (void *cls, tc_h->client = NULL; } +/** + * Message was transmitted. Process the request. + * + * @param cls the client + * @param sma the send message that was sent + */ +static void +handle_send_message_ack (void *cls, + const struct GNUNET_TRANSPORT_SendMessageToAck *sma) +{ + struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls; + GNUNET_SERVICE_client_continue (tc_h->client); + //NOP +} + + /** * @brief Start the communicator part of the transport service @@ -584,7 +598,7 @@ transport_communicator_start ( GNUNET_MQ_hd_var_size (communicator_available, GNUNET_MESSAGE_TYPE_TRANSPORT_NEW_COMMUNICATOR, struct GNUNET_TRANSPORT_CommunicatorAvailableMessage, - &tc_h), + tc_h), // GNUNET_MQ_hd_var_size (communicator_backchannel, // GNUNET_MESSAGE_TYPE_TRANSPORT_COMMUNICATOR_BACKCHANNEL, // struct GNUNET_TRANSPORT_CommunicatorBackchannel, @@ -592,7 +606,7 @@ transport_communicator_start ( GNUNET_MQ_hd_var_size (add_address, GNUNET_MESSAGE_TYPE_TRANSPORT_ADD_ADDRESS, struct GNUNET_TRANSPORT_AddAddressMessage, - &tc_h), + tc_h), // GNUNET_MQ_hd_fixed_size (del_address, // GNUNET_MESSAGE_TYPE_TRANSPORT_DEL_ADDRESS, // struct GNUNET_TRANSPORT_DelAddressMessage, @@ -600,7 +614,7 @@ transport_communicator_start ( GNUNET_MQ_hd_var_size (incoming_msg, GNUNET_MESSAGE_TYPE_TRANSPORT_INCOMING_MSG, struct GNUNET_TRANSPORT_IncomingMessage, - NULL), + tc_h), GNUNET_MQ_hd_fixed_size (queue_create_ok, GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_CREATE_OK, struct GNUNET_TRANSPORT_CreateQueueResponse, @@ -612,15 +626,16 @@ transport_communicator_start ( GNUNET_MQ_hd_var_size (add_queue_message, GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_SETUP, struct GNUNET_TRANSPORT_AddQueueMessage, - NULL), + tc_h), // GNUNET_MQ_hd_fixed_size (del_queue_message, // GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_TEARDOWN, // struct GNUNET_TRANSPORT_DelQueueMessage, // NULL), - // GNUNET_MQ_hd_fixed_size (send_message_ack, - // GNUNET_MESSAGE_TYPE_TRANSPORT_SEND_MSG_ACK, - // struct GNUNET_TRANSPORT_SendMessageToAck, - // NULL), + GNUNET_MQ_hd_fixed_size (send_message_ack, + GNUNET_MESSAGE_TYPE_TRANSPORT_SEND_MSG_ACK, + struct GNUNET_TRANSPORT_SendMessageToAck, + tc_h), + GNUNET_MQ_handler_end () }; struct GNUNET_SERVICE_Handle *h; -- 2.25.1