[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r22159 - in gnunet/src: include testing
From: |
gnunet |
Subject: |
[GNUnet-SVN] r22159 - in gnunet/src: include testing |
Date: |
Wed, 20 Jun 2012 16:43:29 +0200 |
Author: harsha
Date: 2012-06-20 16:43:29 +0200 (Wed, 20 Jun 2012)
New Revision: 22159
Modified:
gnunet/src/include/gnunet_testing_lib-new.h
gnunet/src/testing/gnunet-testing-run-service.c
gnunet/src/testing/test_testing_servicestartup.c
gnunet/src/testing/testing.c
Log:
-fixing #2442
Modified: gnunet/src/include/gnunet_testing_lib-new.h
===================================================================
--- gnunet/src/include/gnunet_testing_lib-new.h 2012-06-20 14:24:45 UTC (rev
22158)
+++ gnunet/src/include/gnunet_testing_lib-new.h 2012-06-20 14:43:29 UTC (rev
22159)
@@ -183,7 +183,7 @@
* @param id identifier for the daemon, will be set
*/
void
-GNUNET_TESTING_peer_get_identity (struct GNUNET_TESTING_Peer *peer,
+GNUNET_TESTING_peer_get_identity (const struct GNUNET_TESTING_Peer *peer,
struct GNUNET_PeerIdentity *id);
@@ -224,25 +224,14 @@
*
* @param cls closure
* @param cfg configuration of the peer that was started
+ * @param peer identity of the peer that was created
*/
typedef void (*GNUNET_TESTING_TestMain)(void *cls,
- const struct
GNUNET_CONFIGURATION_Handle *cfg);
+ const struct
GNUNET_CONFIGURATION_Handle *cfg,
+ struct GNUNET_TESTING_Peer *peer);
/**
- * Signature of the 'main' function for a (single-peer) testcase that
- * is run using 'GNUNET_TESTING_system_run_restartable'.
- *
- * @param cls closure
- * @param cfg configuration of the peer that was started
- * @param peer identity of the peer that was created
- */
-typedef void (*GNUNET_TESTING_RestartableTestMain)(void *cls,
- const struct
GNUNET_CONFIGURATION_Handle *cfg,
- const struct
GNUNET_TESTING_Peer *peer);
-
-
-/**
* Start a single peer and run a test using the testing library.
* Starts a peer using the given configuration and then invokes the
* given callback. This function ALSO initializes the scheduler loop
@@ -295,25 +284,6 @@
/**
- * See GNUNET_TESTING_service_run.
- * The only difference is that we handle the GNUNET_TESTING_Peer to
- * the RestartableTestMain, so that the peer can be destroyed and re-created
- * to simulate failure in tests.
- *
- * FIXME: change 'GNUNET_TESTING_TestMain' to have the 'restartable' signature
- * and remove this extra function (in some sense, make this the primary one,
- * but keep the old name).
- */
-int
-GNUNET_TESTING_service_run_restartable (const char *testdir,
- const char *service_name,
- const char *cfgfilename,
- GNUNET_TESTING_RestartableTestMain tm,
- void *tm_cls);
-
-
-
-/**
* Sometimes we use the binary name to determine which specific
* test to run. In those cases, the string after the last "_"
* in 'argv[0]' specifies a string that determines the configuration
Modified: gnunet/src/testing/gnunet-testing-run-service.c
===================================================================
--- gnunet/src/testing/gnunet-testing-run-service.c 2012-06-20 14:24:45 UTC
(rev 22158)
+++ gnunet/src/testing/gnunet-testing-run-service.c 2012-06-20 14:43:29 UTC
(rev 22159)
@@ -143,9 +143,9 @@
*/
static void
testing_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
- const struct GNUNET_TESTING_Peer *peer)
+ struct GNUNET_TESTING_Peer *peer)
{
- my_peer = (struct GNUNET_TESTING_Peer *) peer;
+ my_peer = peer;
if (NULL == (tmpfilename = GNUNET_DISK_mktemp ("gnunet-testing")))
{
GNUNET_break (0);
@@ -193,8 +193,8 @@
if (GNUNET_SYSERR ==
GNUNET_GETOPT_run("gnunet-testing-run-service", options, argc, argv))
return 1;
- ret = GNUNET_TESTING_service_run_restartable ("gnunet_service_test",
srv_name,
- cfg_name, &testing_main, NULL);
+ ret = GNUNET_TESTING_service_run ("gnunet_service_test", srv_name,
+ cfg_name, &testing_main, NULL);
if (0 != ret)
{
printf ("error\n");
Modified: gnunet/src/testing/test_testing_servicestartup.c
===================================================================
--- gnunet/src/testing/test_testing_servicestartup.c 2012-06-20 14:24:45 UTC
(rev 22158)
+++ gnunet/src/testing/test_testing_servicestartup.c 2012-06-20 14:43:29 UTC
(rev 22159)
@@ -45,7 +45,8 @@
* @param cfg the configuration with which the current testing service is run
*/
static void
-test_run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg)
+test_run (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
+ struct GNUNET_TESTING_Peer *peer)
{
GNUNET_assert (NULL == cls);
GNUNET_assert (NULL != cfg);
Modified: gnunet/src/testing/testing.c
===================================================================
--- gnunet/src/testing/testing.c 2012-06-20 14:24:45 UTC (rev 22158)
+++ gnunet/src/testing/testing.c 2012-06-20 14:43:29 UTC (rev 22159)
@@ -132,6 +132,10 @@
*/
struct GNUNET_TESTING_Peer
{
+ /**
+ * The TESTING system associated with this peer
+ */
+ struct GNUNET_TESTING_System *system;
/**
* Path to the configuration file for this peer.
@@ -151,6 +155,11 @@
* peer/service is currently not running.
*/
struct GNUNET_OS_Process *main_process;
+
+ /**
+ * The keynumber of this peer's hostkey
+ */
+ uint32_t key_number;
};
@@ -795,6 +804,8 @@
peer = GNUNET_malloc (sizeof (struct GNUNET_TESTING_Peer));
peer->cfgfile = config_filename; /* Free in peer_destroy */
peer->main_binary = GNUNET_strdup ("gnunet-service-arm");
+ peer->system = system;
+ peer->key_number = key_number;
return peer;
}
@@ -806,11 +817,12 @@
* @param id identifier for the daemon, will be set
*/
void
-GNUNET_TESTING_peer_get_identity (struct GNUNET_TESTING_Peer *peer,
+GNUNET_TESTING_peer_get_identity (const struct GNUNET_TESTING_Peer *peer,
struct GNUNET_PeerIdentity *id)
{
- GNUNET_assert (0); // FIXME-SREE.
- // *id = peer->id;
+ GNUNET_CRYPTO_rsa_key_free (GNUNET_TESTING_hostkey_get (peer->system,
+ peer->key_number,
+ id));
}
@@ -931,33 +943,11 @@
* Callback to signal service startup
*/
GNUNET_TESTING_TestMain tm;
-
+
/**
- * Closure for the above callback
- */
- void *tm_cls;
-};
-
-
-/**
- * Structure for holding service data
- */
-struct RestartableServiceContext
-{
- /**
- * The configuration of the peer in which the service is run
- */
- const struct GNUNET_CONFIGURATION_Handle *cfg;
-
- /**
- * Callback to signal service startup
- */
- GNUNET_TESTING_RestartableTestMain tm;
-
- /**
* The peer in which the service is run.
*/
- const struct GNUNET_TESTING_Peer *peer;
+ struct GNUNET_TESTING_Peer *peer;
/**
* Closure for the above callback
@@ -978,22 +968,6 @@
{
struct ServiceContext *sc = cls;
- sc->tm (sc->tm_cls, sc->cfg);
-}
-
-
-/**
- * Callback to be called when SCHEDULER has been started
- *
- * @param cls the ServiceContext
- * @param tc the TaskContext
- */
-static void
-service_run_restartable_main (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- struct RestartableServiceContext *sc = cls;
-
sc->tm (sc->tm_cls, sc->cfg, sc->peer);
}
@@ -1066,6 +1040,7 @@
sc.cfg = cfg;
sc.tm = tm;
sc.tm_cls = tm_cls;
+ sc.peer = peer;
GNUNET_SCHEDULER_run (&service_run_main, &sc); /* Scheduler loop */
if (GNUNET_OK != GNUNET_TESTING_peer_stop (peer))
{
@@ -1081,77 +1056,7 @@
}
-
/**
- * See GNUNET_TESTING_service_run.
- * The only difference is that we handle the GNUNET_TESTING_Peer to
- * the RestartableTestMain, so that the peer can be destroyed and re-created
- * to simulate failure in tests.
- */
-int
-GNUNET_TESTING_service_run_restartable (const char *testdir,
- const char *service_name,
- const char *cfgfilename,
- GNUNET_TESTING_RestartableTestMain tm,
- void *tm_cls)
-{
- struct RestartableServiceContext sc;
- struct GNUNET_TESTING_System *system;
- struct GNUNET_TESTING_Peer *peer;
- struct GNUNET_CONFIGURATION_Handle *cfg;
-
- GNUNET_log_setup (testdir,
- "WARNING",
- NULL);
- system = GNUNET_TESTING_system_create (testdir, "127.0.0.1");
- if (NULL == system)
- return 1;
- cfg = GNUNET_CONFIGURATION_create ();
- if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg, cfgfilename))
- {
- LOG (GNUNET_ERROR_TYPE_ERROR,
- _("Failed to load configuration from %s\n"), cfgfilename);
- GNUNET_CONFIGURATION_destroy (cfg);
- GNUNET_TESTING_system_destroy (system, GNUNET_YES);
- return 1;
- }
- peer = GNUNET_TESTING_peer_configure (system, cfg, 0, NULL, NULL);
- if (NULL == peer)
- {
- GNUNET_CONFIGURATION_destroy (cfg);
- hostkeys_unload (system);
- GNUNET_TESTING_system_destroy (system, GNUNET_YES);
- return 1;
- }
- GNUNET_free (peer->main_binary);
- GNUNET_asprintf (&peer->main_binary, "gnunet-service-%s", service_name);
- if (GNUNET_OK != GNUNET_TESTING_peer_start (peer))
- {
- GNUNET_TESTING_peer_destroy (peer);
- GNUNET_CONFIGURATION_destroy (cfg);
- GNUNET_TESTING_system_destroy (system, GNUNET_YES);
- return 1;
- }
- sc.cfg = cfg;
- sc.tm = tm;
- sc.tm_cls = tm_cls;
- sc.peer = peer;
- GNUNET_SCHEDULER_run (&service_run_restartable_main, &sc); /* Scheduler loop
*/
- if (GNUNET_OK != GNUNET_TESTING_peer_stop (peer))
- {
- GNUNET_TESTING_peer_destroy (peer);
- GNUNET_CONFIGURATION_destroy (cfg);
- GNUNET_TESTING_system_destroy (system, GNUNET_YES);
- return 1;
- }
- GNUNET_TESTING_peer_destroy (peer);
- GNUNET_CONFIGURATION_destroy (cfg);
- GNUNET_TESTING_system_destroy (system, GNUNET_YES);
- return 0;
-}
-
-
-/**
* Sometimes we use the binary name to determine which specific
* test to run. In those cases, the string after the last "_"
* in 'argv[0]' specifies a string that determines the configuration
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22159 - in gnunet/src: include testing,
gnunet <=