/*
This file is part of GNUnet.
- (C) 2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2013 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
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @author Christian Grothoff
*/
#include "platform.h"
-#include "gnunet_common.h"
#include "gnunet_util_lib.h"
#include "gnunet_identity_service.h"
#include "gnunet_testing_lib.h"
/**
* Handle for task for timeout termination.
- */
-static GNUNET_SCHEDULER_TaskIdentifier endbadly_task;
+ */
+static struct GNUNET_SCHEDULER_Task * endbadly_task;
/**
/**
* Finish the testcase (successfully).
*/
-static void
+static void
end ()
{
- if (endbadly_task != GNUNET_SCHEDULER_NO_TASK)
+ if (endbadly_task != NULL)
{
GNUNET_SCHEDULER_cancel (endbadly_task);
- endbadly_task = GNUNET_SCHEDULER_NO_TASK;
+ endbadly_task = NULL;
}
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MILLISECONDS,
&end_normally, NULL);
}
-/**
- * Called with events about egos.
- *
- * @param cls NULL
- * @param ego ego handle
- * @param ego_ctx context for application to store data for this ego
- * (during the lifetime of this process, initially NULL)
- * @param identifier identifier assigned by the user for this ego,
- * NULL if the user just deleted the ego and it
- * must thus no longer be used
- */
-static void
-notification_cb (void *cls,
- struct GNUNET_IDENTITY_Ego *ego,
- void **ctx,
- const char *identifier)
-{
-#if 0
- static struct GNUNET_IDENTITY_Ego *my_ego;
- static int round;
-
- switch (round)
- {
- case 0: /* end of initial iteration */
- GNUNET_assert (NULL == ego);
- GNUNET_assert (NULL == identifier);
- break;
- case 1: /* create */
- GNUNET_assert (NULL != ego);
- GNUNET_assert (0 == strcmp (identifier, "test-id"));
- my_ego = ego;
- *ctx = &round;
- break;
- case 2: /* rename */
- GNUNET_assert (my_ego == ego);
- GNUNET_assert (0 == strcmp (identifier, "test"));
- GNUNET_assert (*ctx == &round);
- break;
- case 3: /* delete */
- GNUNET_assert (my_ego == ego);
- GNUNET_assert (NULL == identifier);
- GNUNET_assert (*ctx == &round);
- *ctx = NULL;
- break;
- default:
- GNUNET_break (0);
- }
- round++;
-#endif
-}
-
-
/**
* Continuation called from successful delete operation.
*
void **ctx,
const char *identifier)
{
- GNUNET_assert (NULL != emsg);
- GNUNET_assert (my_ego == ego);
+ GNUNET_assert (NULL != ego);
+ GNUNET_assert (NULL != identifier);
GNUNET_assert (0 == strcmp (identifier, "test-id"));
- op = GNUNET_IDENTITY_delete (h,
+ op = GNUNET_IDENTITY_delete (h,
"test-id",
- &delete_cont,
+ &delete_cont,
NULL);
}
* @param peer handle to access more of the peer (not used)
*/
static void
-run_get (void *cls,
+run_get (void *cls,
const struct GNUNET_CONFIGURATION_Handle *cfg,
struct GNUNET_TESTING_Peer *peer)
{
- endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
- &endbadly, NULL);
- h = GNUNET_IDENTITY_connect (cfg, ¬ification_cb, NULL);
+ endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
+ &endbadly, NULL);
+ h = GNUNET_IDENTITY_connect (cfg, NULL, NULL);
GNUNET_assert (NULL != h);
op = GNUNET_IDENTITY_get (h,
"test-service",
/**
- * Called with events about created ego.
+ * Called with events about egos.
*
* @param cls NULL
* @param ego ego handle
* must thus no longer be used
*/
static void
-create_cb (void *cls,
- struct GNUNET_IDENTITY_Ego *ego,
- void **ctx,
- const char *identifier)
-{
- op = GNUNET_IDENTITY_set (h,
+notification_cb (void *cls,
+ struct GNUNET_IDENTITY_Ego *ego,
+ void **ctx,
+ const char *identifier)
+{
+ if (NULL == ego)
+ return; /* skip first call */
+ if (NULL == identifier)
+ return; /* deletion / shutdown */
+ op = GNUNET_IDENTITY_set (h,
"test-service",
ego,
- &success_set_cont,
+ &success_set_cont,
NULL);
}
+/**
+ * Called with events about created ego.
+ *
+ * @param cls NULL
+ * @param emsg error message
+ */
+static void
+create_cb (void *cls,
+ const char *emsg)
+{
+ GNUNET_assert (NULL == emsg);
+ op = NULL;
+}
+
+
/**
* Main function of the test, run from scheduler.
*
* @param peer handle to access more of the peer (not used)
*/
static void
-run_set (void *cls,
+run_set (void *cls,
const struct GNUNET_CONFIGURATION_Handle *cfg,
struct GNUNET_TESTING_Peer *peer)
{
- endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
- &endbadly, NULL);
+ endbadly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
+ &endbadly, NULL);
h = GNUNET_IDENTITY_connect (cfg, ¬ification_cb, NULL);
GNUNET_assert (NULL != h);
op = GNUNET_IDENTITY_create (h,
"test-id",
&create_cb,
NULL);
-
+
}
int
main (int argc, char *argv[])
{
+ GNUNET_DISK_directory_remove ("/tmp/test-identity-service");
res = 1;
- if (0 !=
- GNUNET_TESTING_service_run ("test-identity",
+ if (0 !=
+ GNUNET_TESTING_service_run ("test-identity-defaults",
"identity",
"test_identity.conf",
&run_set,
NULL))
return 1;
- if (0 !=
- GNUNET_TESTING_service_run ("test-identity",
+ if (0 !=
+ GNUNET_TESTING_service_run ("test-identity-defaults",
"identity",
"test_identity.conf",
&run_get,
NULL))
return 1;
+ GNUNET_DISK_directory_remove ("/tmp/test-identity-service");
return res;
}