/*
This file is part of GNUnet.
- (C) 2005, 2006, 2008, 2009 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2005-2013 GNUnet e.V.
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.
*/
/**
*/
#include "platform.h"
#include "gnunet_util_lib.h"
-#include "gnunet_arm_service.h"
+#include "gnunet_testing_lib.h"
#include "gnunet_fs_service.h"
-#define VERBOSE GNUNET_NO
-
-#define START_ARM GNUNET_YES
-
-static struct PeerContext p1;
static struct GNUNET_FS_Handle *fs;
static int err;
-static struct GNUNET_FS_Namespace *ns;
+static struct GNUNET_CRYPTO_EcdsaPrivateKey *ns;
static struct GNUNET_CONTAINER_MetaData *meta;
static struct GNUNET_FS_BlockOptions bo;
-struct PeerContext
-{
- struct GNUNET_CONFIGURATION_Handle *cfg;
-#if START_ARM
- struct GNUNET_OS_Process *arm_proc;
-#endif
-};
-
-
static void *
progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *event)
{
static void
-setup_peer (struct PeerContext *p, const char *cfgname)
+do_shutdown ()
{
- p->cfg = GNUNET_CONFIGURATION_create ();
-#if START_ARM
- p->arm_proc =
- GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm",
- "gnunet-service-arm",
-#if VERBOSE
- "-L", "DEBUG",
-#endif
- "-c", cfgname, NULL);
-#endif
- GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (p->cfg, cfgname));
-}
-
-
-static void
-stop_arm (struct PeerContext *p)
-{
-#if START_ARM
- if (NULL != p->arm_proc)
- {
- if (0 != GNUNET_OS_process_kill (p->arm_proc, SIGTERM))
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill");
- if (GNUNET_OS_process_wait (p->arm_proc) != GNUNET_OK)
- GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid");
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ARM process %u stopped\n",
- GNUNET_OS_process_get_pid (p->arm_proc));
- GNUNET_OS_process_close (p->arm_proc);
- p->arm_proc = NULL;
- }
-#endif
if (uri_this != NULL)
GNUNET_FS_uri_destroy (uri_this);
if (uri_next != NULL)
GNUNET_FS_uri_destroy (uri_next);
if (ns != NULL)
- GNUNET_FS_namespace_delete (ns, GNUNET_NO);
+ GNUNET_free (ns);
if (meta != NULL)
GNUNET_CONTAINER_meta_data_destroy (meta);
- GNUNET_CONFIGURATION_destroy (p->cfg);
}
-
static void
check_next (void *cls, const char *last_id,
const struct GNUNET_FS_Uri *last_uri,
GNUNET_break (0 == strcmp (next_id, "next"));
err -= 2;
err += 4;
- GNUNET_FS_namespace_list_updateable (ns, next_id, &check_next, NULL);
+ GNUNET_FS_namespace_list_updateable (fs, ns, next_id, &check_next, NULL);
}
{
GNUNET_assert (NULL == emsg);
err += 2;
- GNUNET_FS_namespace_list_updateable (ns, NULL, &check_this_next, NULL);
-
+ GNUNET_FS_namespace_list_updateable (fs, ns, NULL, &check_this_next, NULL);
}
static void
sks_cont_this (void *cls, const struct GNUNET_FS_Uri *uri, const char *emsg)
{
-
GNUNET_assert (NULL == emsg);
err = 1;
- GNUNET_FS_namespace_list_updateable (ns, NULL, &check_this, NULL);
+ GNUNET_FS_namespace_list_updateable (fs, ns, NULL, &check_this, NULL);
GNUNET_FS_publish_sks (fs, ns, "next", "future", meta, uri_next, &bo,
GNUNET_FS_PUBLISH_OPTION_NONE, &sks_cont_next, NULL);
}
-
static void
testNamespace ()
{
-
- ns = GNUNET_FS_namespace_create (fs, "testNamespace");
+ ns = GNUNET_CRYPTO_ecdsa_key_create ();
GNUNET_assert (NULL != ns);
bo.content_priority = 1;
bo.anonymity_level = 1;
static void
-run (void *cls, char *const *args, const char *cfgfile,
- const struct GNUNET_CONFIGURATION_Handle *cfg)
+run (void *cls,
+ const struct GNUNET_CONFIGURATION_Handle *cfg,
+ struct GNUNET_TESTING_Peer *peer)
{
- setup_peer (&p1, "test_fs_namespace_data.conf");
fs = GNUNET_FS_start (cfg, "test-fs-namespace", &progress_cb, NULL,
GNUNET_FS_FLAGS_NONE, GNUNET_FS_OPTIONS_END);
testNamespace ();
int
main (int argc, char *argv[])
{
- char *const argvx[] = {
- "test-fs-namespace",
- "-c",
- "test_fs_namespace_data.conf",
-#if VERBOSE
- "-L", "DEBUG",
-#endif
- NULL
- };
- struct GNUNET_GETOPT_CommandLineOption options[] = {
- GNUNET_GETOPT_OPTION_END
- };
-
- GNUNET_log_setup ("test_fs_namespace_list_updateable",
-#if VERBOSE
- "DEBUG",
-#else
- "WARNING",
-#endif
- NULL);
- GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, argvx,
- "test-fs-namespace", "nohelp", options, &run, NULL);
- stop_arm (&p1);
- GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-namespace/");
+ if (0 != GNUNET_TESTING_peer_run ("test-fs-namespace-list-updateable",
+ "test_fs_namespace_data.conf",
+ &run, NULL))
+ return 1;
+ do_shutdown ();
return err;
}