summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/transport/Makefile.am8
-rw-r--r--src/transport/test_communicator_basic.c (renamed from src/transport/test_communicator.c)58
-rw-r--r--src/transport/transport-testing2.c35
3 files changed, 67 insertions, 34 deletions
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
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;