X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Ftest_client.c;h=ae3bfdb953c119ae69f404dd8b00e43d7540901a;hb=65f518e8036699fa3c574266d39e3cd1263af9e8;hp=cda8025acb3aa7a6efe492be961c29dd05a92323;hpb=f0aa7bc0a136b1e436018ef72e1c814f04c33379;p=oweals%2Fgnunet.git diff --git a/src/util/test_client.c b/src/util/test_client.c index cda8025ac..ae3bfdb95 100644 --- a/src/util/test_client.c +++ b/src/util/test_client.c @@ -1,10 +1,10 @@ /* This file is part of GNUnet. - (C) 2009 Christian Grothoff (and other contributing authors) + Copyright (C) 2009 Christian Grothoff (and other contributing authors) GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 2, or (at your + by the Free Software Foundation; either version 3, or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but @@ -22,14 +22,8 @@ * @brief tests for client.c */ #include "platform.h" -#include "gnunet_common.h" -#include "gnunet_client_lib.h" -#include "gnunet_configuration_lib.h" -#include "gnunet_scheduler_lib.h" -#include "gnunet_server_lib.h" -#include "gnunet_time_lib.h" +#include "gnunet_util_lib.h" -#define VERBOSE GNUNET_NO #define PORT 14325 @@ -61,8 +55,7 @@ copy_msg (void *cls, size_t size, void *buf) GNUNET_SERVER_receive_done (ctx->client, GNUNET_OK); GNUNET_free (cpy); GNUNET_free (ctx); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Message bounced back to client\n"); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Message bounced back to client\n"); return sizeof (struct GNUNET_MessageHeader); } @@ -71,18 +64,16 @@ copy_msg (void *cls, size_t size, void *buf) * Callback that just bounces the message back to the sender. */ static void -echo_cb (void *cls, - struct GNUNET_SERVER_Client *client, +echo_cb (void *cls, struct GNUNET_SERVER_Client *client, const struct GNUNET_MessageHeader *message) { struct CopyContext *cc; struct GNUNET_MessageHeader *cpy; GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Receiving message from client, bouncing back\n"); - GNUNET_assert (sizeof (struct GNUNET_MessageHeader) == - ntohs (message->size)); - cc = GNUNET_malloc (sizeof (struct CopyContext)); + "Receiving message from client, bouncing back\n"); + GNUNET_assert (sizeof (struct GNUNET_MessageHeader) == ntohs (message->size)); + cc = GNUNET_new (struct CopyContext); cc->client = client; cpy = GNUNET_malloc (ntohs (message->size)); memcpy (cpy, message, ntohs (message->size)); @@ -108,8 +99,7 @@ recv_bounce (void *cls, const struct GNUNET_MessageHeader *got) struct GNUNET_MessageHeader msg; GNUNET_assert (got != NULL); /* timeout */ - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Receiving bounce, checking content\n"); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Receiving bounce, checking content\n"); msg.type = htons (MY_TYPE); msg.size = htons (sizeof (struct GNUNET_MessageHeader)); GNUNET_assert (0 == memcmp (got, &msg, sizeof (struct GNUNET_MessageHeader))); @@ -125,11 +115,11 @@ static size_t make_msg (void *cls, size_t size, void *buf) { struct GNUNET_MessageHeader *msg = buf; + GNUNET_assert (size >= sizeof (struct GNUNET_MessageHeader)); msg->type = htons (MY_TYPE); msg->size = htons (sizeof (struct GNUNET_MessageHeader)); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Creating message for transmission\n"); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Creating message for transmission\n"); return sizeof (struct GNUNET_MessageHeader); } @@ -138,76 +128,63 @@ static void task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { struct sockaddr_in sa; + struct sockaddr *sap[2]; + socklen_t slens[2]; + + /* test that ill-configured client fails instantly */ + GNUNET_assert (NULL == GNUNET_CLIENT_connect ("invalid-service", cfg)); + /* test IPC between client and server */ + sap[0] = (struct sockaddr *) &sa; + slens[0] = sizeof (sa); + sap[1] = NULL; + slens[1] = 0; memset (&sa, 0, sizeof (sa)); #if HAVE_SOCKADDR_IN_SIN_LEN sa.sin_len = sizeof (sa); #endif sa.sin_family = AF_INET; sa.sin_port = htons (PORT); - server = GNUNET_SERVER_create (tc->sched, - NULL, - NULL, - (const struct sockaddr *) &sa, - sizeof (sa), - 1024, - GNUNET_TIME_relative_multiply - (GNUNET_TIME_UNIT_MILLISECONDS, 250), - GNUNET_NO); + server = + GNUNET_SERVER_create (NULL, NULL, sap, slens, + GNUNET_TIME_relative_multiply + (GNUNET_TIME_UNIT_MILLISECONDS, 10000), GNUNET_NO); GNUNET_assert (server != NULL); handlers[0].callback_cls = cls; handlers[1].callback_cls = cls; GNUNET_SERVER_add_handlers (server, handlers); - client = GNUNET_CLIENT_connect (tc->sched, MYNAME, cfg); + client = GNUNET_CLIENT_connect (MYNAME, cfg); GNUNET_assert (client != NULL); GNUNET_assert (NULL != GNUNET_CLIENT_notify_transmit_ready (client, sizeof (struct GNUNET_MessageHeader), GNUNET_TIME_UNIT_SECONDS, - &make_msg, NULL)); + GNUNET_NO, &make_msg, + NULL)); GNUNET_CLIENT_receive (client, &recv_bounce, cls, GNUNET_TIME_relative_multiply - (GNUNET_TIME_UNIT_MILLISECONDS, 250)); + (GNUNET_TIME_UNIT_MILLISECONDS, 10000)); } -/** - * Main method, starts scheduler with task1, - * checks that "ok" is correct at the end. - */ -static int -check () +int +main (int argc, char *argv[]) { int ok; + GNUNET_log_setup ("test_client", + "WARNING", + NULL); cfg = GNUNET_CONFIGURATION_create (); GNUNET_CONFIGURATION_set_value_number (cfg, MYNAME, "PORT", PORT); - GNUNET_CONFIGURATION_set_value_string (cfg, - MYNAME, "HOSTNAME", "localhost"); - GNUNET_CONFIGURATION_set_value_string (cfg, - "resolver", "HOSTNAME", "localhost"); + GNUNET_CONFIGURATION_set_value_string (cfg, MYNAME, "HOSTNAME", "localhost"); + GNUNET_CONFIGURATION_set_value_string (cfg, "resolver", "HOSTNAME", + "localhost"); ok = 1; GNUNET_SCHEDULER_run (&task, &ok); GNUNET_CONFIGURATION_destroy (cfg); return ok; } -int -main (int argc, char *argv[]) -{ - int ret = 0; - - GNUNET_log_setup ("test_client", -#if VERBOSE - "DEBUG", -#else - "WARNING", -#endif - NULL); - ret += check (); - - return ret; -} - /* end of test_client.c */