summaryrefslogtreecommitdiff
path: root/src/testing/gnunet-testing.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/gnunet-testing.c')
-rw-r--r--src/testing/gnunet-testing.c212
1 files changed, 127 insertions, 85 deletions
diff --git a/src/testing/gnunet-testing.c b/src/testing/gnunet-testing.c
index ec611ba4c..bc402227c 100644
--- a/src/testing/gnunet-testing.c
+++ b/src/testing/gnunet-testing.c
@@ -28,8 +28,7 @@
#include "gnunet_testing_lib.h"
-#define LOG(kind,...) \
- GNUNET_log_from (kind, "gnunet-testing", __VA_ARGS__)
+#define LOG(kind, ...) GNUNET_log_from (kind, "gnunet-testing", __VA_ARGS__)
/**
@@ -84,9 +83,8 @@ static struct GNUNET_SCHEDULER_Task *tid;
static struct GNUNET_TESTING_Peer *my_peer;
-
static int
-create_unique_cfgs (const char * template, const unsigned int no)
+create_unique_cfgs (const char *template, const unsigned int no)
{
struct GNUNET_TESTING_System *system;
int fail;
@@ -95,54 +93,67 @@ create_unique_cfgs (const char * template, const unsigned int no)
struct GNUNET_CONFIGURATION_Handle *cfg_new;
struct GNUNET_CONFIGURATION_Handle *cfg_tmpl;
- if (GNUNET_NO == GNUNET_DISK_file_test(template))
+ if (GNUNET_NO == GNUNET_DISK_file_test (template))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Configuration template `%s': file not found\n", create_cfg_template);
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Configuration template `%s': file not found\n",
+ create_cfg_template);
return 1;
}
- cfg_tmpl = GNUNET_CONFIGURATION_create();
+ cfg_tmpl = GNUNET_CONFIGURATION_create ();
/* load template */
- if ((create_cfg_template != NULL) && (GNUNET_OK != GNUNET_CONFIGURATION_load(cfg_tmpl, create_cfg_template)))
+ if ((create_cfg_template != NULL) &&
+ (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg_tmpl, create_cfg_template)))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not load template `%s'\n", create_cfg_template);
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Could not load template `%s'\n",
+ create_cfg_template);
GNUNET_CONFIGURATION_destroy (cfg_tmpl);
return 1;
}
/* load defaults */
- if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg_tmpl, NULL))
+ if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg_tmpl, NULL))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not load template `%s'\n", create_cfg_template);
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Could not load template `%s'\n",
+ create_cfg_template);
GNUNET_CONFIGURATION_destroy (cfg_tmpl);
return 1;
}
fail = GNUNET_NO;
- system = GNUNET_TESTING_system_create ("testing", NULL /* controller */,
- NULL, NULL);
+ system =
+ GNUNET_TESTING_system_create ("testing", NULL /* controller */, NULL, NULL);
for (cur = 0; cur < no; cur++)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Creating configuration no. %u \n", cur);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Creating configuration no. %u \n",
+ cur);
if (create_cfg_template != NULL)
- GNUNET_asprintf (&cur_file,"%04u-%s",cur, create_cfg_template);
+ GNUNET_asprintf (&cur_file, "%04u-%s", cur, create_cfg_template);
else
- GNUNET_asprintf (&cur_file,"%04u%s",cur, ".conf");
+ GNUNET_asprintf (&cur_file, "%04u%s", cur, ".conf");
cfg_new = GNUNET_CONFIGURATION_dup (cfg_tmpl);
- if (GNUNET_OK !=
- GNUNET_TESTING_configuration_create (system, cfg_new))
+ if (GNUNET_OK != GNUNET_TESTING_configuration_create (system, cfg_new))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Could not create another configuration\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Could not create another configuration\n");
GNUNET_CONFIGURATION_destroy (cfg_new);
fail = GNUNET_YES;
break;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Writing configuration no. %u to file `%s' \n", cur, cur_file);
- if (GNUNET_OK != GNUNET_CONFIGURATION_write(cfg_new, cur_file))
+ "Writing configuration no. %u to file `%s' \n",
+ cur,
+ cur_file);
+ if (GNUNET_OK != GNUNET_CONFIGURATION_write (cfg_new, cur_file))
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to write configuration no. %u \n", cur);
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Failed to write configuration no. %u \n",
+ cur);
fail = GNUNET_YES;
}
GNUNET_CONFIGURATION_destroy (cfg_new);
@@ -150,7 +161,7 @@ create_unique_cfgs (const char * template, const unsigned int no)
if (GNUNET_YES == fail)
break;
}
- GNUNET_CONFIGURATION_destroy(cfg_tmpl);
+ GNUNET_CONFIGURATION_destroy (cfg_tmpl);
GNUNET_TESTING_system_destroy (system, GNUNET_NO);
if (GNUNET_YES == fail)
return 1;
@@ -170,22 +181,27 @@ create_hostkeys (const unsigned int no)
pk = GNUNET_TESTING_hostkey_get (system, create_no, &id);
if (NULL == pk)
{
- fprintf (stderr, _("Could not extract hostkey %u (offset too large?)\n"), create_no);
+ fprintf (stderr,
+ _ ("Could not extract hostkey %u (offset too large?)\n"),
+ create_no);
GNUNET_TESTING_system_destroy (system, GNUNET_YES);
return 1;
}
(void) GNUNET_DISK_directory_create_for_file (create_hostkey);
- fd = GNUNET_DISK_file_open (create_hostkey,
- GNUNET_DISK_OPEN_READWRITE |
- GNUNET_DISK_OPEN_CREATE,
- GNUNET_DISK_PERM_USER_READ |
- GNUNET_DISK_PERM_USER_WRITE);
+ fd =
+ GNUNET_DISK_file_open (create_hostkey,
+ GNUNET_DISK_OPEN_READWRITE | GNUNET_DISK_OPEN_CREATE,
+ GNUNET_DISK_PERM_USER_READ |
+ GNUNET_DISK_PERM_USER_WRITE);
GNUNET_assert (fd != NULL);
- ret = GNUNET_DISK_file_write (fd, pk,
- sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey));
+ ret = GNUNET_DISK_file_write (fd,
+ pk,
+ sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey));
GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
- GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-testing",
- "Wrote hostkey to file: `%s'\n", create_hostkey);
+ GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG,
+ "transport-testing",
+ "Wrote hostkey to file: `%s'\n",
+ create_hostkey);
GNUNET_free (pk);
GNUNET_TESTING_system_destroy (system, GNUNET_YES);
return 0;
@@ -203,8 +219,10 @@ cleanup (void *cls)
{
if (NULL != tmpfilename)
{
- if (0 != UNLINK (tmpfilename))
- GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "unlink", tmpfilename);
+ if (0 != unlink (tmpfilename))
+ GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
+ "unlink",
+ tmpfilename);
}
if (NULL != tid)
{
@@ -250,12 +268,14 @@ stdin_cb (void *cls)
/* ignore whitespace */
break;
default:
- fprintf (stderr, _("Unknown command, use 'q' to quit or 'r' to restart peer\n"));
+ fprintf (stderr,
+ _ ("Unknown command, use 'q' to quit or 'r' to restart peer\n"));
break;
}
tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
- fh,
- &stdin_cb, NULL);
+ fh,
+ &stdin_cb,
+ NULL);
}
@@ -268,7 +288,8 @@ stdin_cb (void *cls)
* @param peer handle to the peer
*/
static void
-testing_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
+testing_main (void *cls,
+ const struct GNUNET_CONFIGURATION_Handle *cfg,
struct GNUNET_TESTING_Peer *peer)
{
my_peer = peer;
@@ -285,17 +306,17 @@ testing_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
GNUNET_break (0);
return;
}
- printf("ok\n%s\n", tmpfilename);
- fflush(stdout);
+ printf ("ok\n%s\n", tmpfilename);
+ fflush (stdout);
GNUNET_SCHEDULER_add_shutdown (&cleanup, NULL);
fh = GNUNET_DISK_get_handle_from_native (stdin);
tid = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
- fh,
- &stdin_cb, NULL);
+ fh,
+ &stdin_cb,
+ NULL);
}
-
/**
* Main function that will be running without scheduler.
*
@@ -305,13 +326,18 @@ testing_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
* @param cfg configuration
*/
static void
-run_no_scheduler (void *cls, char *const *args, const char *cfgfile,
- const struct GNUNET_CONFIGURATION_Handle *cfg)
+run_no_scheduler (void *cls,
+ char *const *args,
+ const char *cfgfile,
+ const struct GNUNET_CONFIGURATION_Handle *cfg)
{
if (NULL != run_service_name)
{
- ret = GNUNET_TESTING_service_run ("gnunet_service_test", run_service_name,
- cfgfile, &testing_main, NULL);
+ ret = GNUNET_TESTING_service_run ("gnunet_service_test",
+ run_service_name,
+ cfgfile,
+ &testing_main,
+ NULL);
return;
}
@@ -320,7 +346,9 @@ run_no_scheduler (void *cls, char *const *args, const char *cfgfile,
if (create_no > 0)
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Creating %u configuration files based on template `%s'\n", create_no, create_cfg_template);
+ "Creating %u configuration files based on template `%s'\n",
+ create_no,
+ create_cfg_template);
ret = create_unique_cfgs (create_cfg_template, create_no);
}
else
@@ -348,37 +376,42 @@ run_no_scheduler (void *cls, char *const *args, const char *cfgfile,
int
main (int argc, char *const *argv)
{
- struct GNUNET_GETOPT_CommandLineOption options[] = {
- GNUNET_GETOPT_option_flag ('C',
- "cfg",
- gettext_noop ("create unique configuration files"),
- &create_cfg),
- GNUNET_GETOPT_option_string ('k',
- "key",
- "FILENAME",
- gettext_noop ("extract hostkey file from pre-computed hostkey list"),
- &create_hostkey),
-
- GNUNET_GETOPT_option_uint ('n',
- "number",
- "NUMBER",
- gettext_noop ("number of unique configuration files to create, or number of the hostkey to extract"),
- &create_no),
-
-
- GNUNET_GETOPT_option_string ('t',
- "template",
- "FILENAME",
- gettext_noop ("configuration template"),
- &create_cfg_template),
-
- GNUNET_GETOPT_option_string ('r',
- "run",
- "SERVICE",
- gettext_noop ("run the given service, wait on stdin for 'r' (restart) or 'q' (quit)"),
- &run_service_name),
- GNUNET_GETOPT_OPTION_END
- };
+ struct GNUNET_GETOPT_CommandLineOption options[] =
+ {GNUNET_GETOPT_option_flag ('C',
+ "cfg",
+ gettext_noop (
+ "create unique configuration files"),
+ &create_cfg),
+ GNUNET_GETOPT_option_string (
+ 'k',
+ "key",
+ "FILENAME",
+ gettext_noop ("extract hostkey file from pre-computed hostkey list"),
+ &create_hostkey),
+
+ GNUNET_GETOPT_option_uint (
+ 'n',
+ "number",
+ "NUMBER",
+ gettext_noop (
+ "number of unique configuration files to create, or number of the hostkey to extract"),
+ &create_no),
+
+
+ GNUNET_GETOPT_option_string ('t',
+ "template",
+ "FILENAME",
+ gettext_noop ("configuration template"),
+ &create_cfg_template),
+
+ GNUNET_GETOPT_option_string (
+ 'r',
+ "run",
+ "SERVICE",
+ gettext_noop (
+ "run the given service, wait on stdin for 'r' (restart) or 'q' (quit)"),
+ &run_service_name),
+ GNUNET_GETOPT_OPTION_END};
if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
return 2;
@@ -386,11 +419,20 @@ main (int argc, char *const *argv)
* GNUNET_TESTING_service_run, which starts the scheduler on its own.
* Furthermore, the other functionality currently does not require the scheduler, too,
* but beware when extending gnunet-testing. */
- ret = (GNUNET_OK ==
- GNUNET_PROGRAM_run2 (argc, argv, "gnunet-testing",
- gettext_noop ("Command line tool to access the testing library"), options, &run_no_scheduler,
- NULL, GNUNET_YES)) ? ret : 1;
- GNUNET_free ((void*) argv);
+ ret =
+ (GNUNET_OK ==
+ GNUNET_PROGRAM_run2 (argc,
+ argv,
+ "gnunet-testing",
+ gettext_noop (
+ "Command line tool to access the testing library"),
+ options,
+ &run_no_scheduler,
+ NULL,
+ GNUNET_YES))
+ ? ret
+ : 1;
+ GNUNET_free ((void *) argv);
return ret;
}