/**
* @file testing/test_testing_new_peerstartup.c
* @brief test case for testing peer startup and shutdown using new testing
- * library
+ * library
* @author Sree Harsha Totakura
*/
#include "platform.h"
-#include "gnunet_configuration_lib.h"
-#include "gnunet_os_lib.h"
-#include "gnunet_testing_lib-new.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_testing_lib.h"
#define LOG(kind,...) \
GNUNET_log (kind, __VA_ARGS__)
-#define TIME_REL_SEC(sec) \
- GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, sec)
+/**
+ * The status of the test
+ */
+int status;
/**
* The testing context
* The testing system
*/
struct GNUNET_TESTING_System *system;
-
+
/**
* The peer which has been started by the testing system
*/
do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct TestingContext *test_ctx = cls;
-
- GNUNET_assert (GNUNET_OK == GNUNET_TESTING_peer_stop (test_ctx->peer));
- GNUNET_TESTING_peer_destroy (test_ctx->peer);
- GNUNET_CONFIGURATION_destroy (test_ctx->cfg);
- GNUNET_TESTING_hostkeys_unload (test_ctx->system);
- GNUNET_TESTING_system_destroy (test_ctx->system, GNUNET_YES);
+
+ GNUNET_assert (NULL != test_ctx);
+ if (NULL != test_ctx->peer)
+ {
+ (void) GNUNET_TESTING_peer_stop (test_ctx->peer);
+ GNUNET_TESTING_peer_destroy (test_ctx->peer);
+ }
+ if (NULL != test_ctx->cfg)
+ GNUNET_CONFIGURATION_destroy (test_ctx->cfg);
+ if (NULL != test_ctx->system)
+ GNUNET_TESTING_system_destroy (test_ctx->system, GNUNET_YES);
GNUNET_free (test_ctx);
}
run (void *cls, char *const *args, const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *cfg)
{
- struct GNUNET_TESTING_System *system;
- struct GNUNET_TESTING_Peer *peer;
- struct GNUNET_CONFIGURATION_Handle *new_cfg;
struct TestingContext *test_ctx;
- char *data_dir;
- char *hostkeys_file;
char *emsg;
- char *_tmpdir;
- char *tmpdir;
-#ifdef MINGW
- char *tmpdir_w;
-#endif
-
struct GNUNET_PeerIdentity id;
-
- _tmpdir = getenv ("TMP");
- if (NULL == _tmpdir)
- _tmpdir = getenv ("TEMP");
- if (NULL == _tmpdir)
- _tmpdir = getenv ("TMPDIR");
- if (NULL == _tmpdir)
- _tmpdir = "/tmp";
- GNUNET_asprintf (&tmpdir, "%s/%s", _tmpdir, "test-gnunet-testing_new-XXXXXX");
-#ifdef MINGW
- tmpdir_w = GNUNET_malloc (MAX_PATH + 1);
- GNUNET_assert (ERROR_SUCCESS == plibc_conv_to_win_path (tmpdir, tmpdir_w));
- GNUNET_free (tmpdir);
- tmpdir = tmpdir_w;
- //GNUNET_assert (0 == _mktemp_s (tmpdir, strlen (tmpdir) + 1));
-#else
- GNUNET_assert (mkdtemp (tmpdir) == tmpdir);
-#endif
- /* LOG (GNUNET_ERROR_TYPE_ERROR, */
- /* "Temporary directory: %s\n", tmpdir); */
- system = GNUNET_TESTING_system_create (tmpdir,
- "127.0.0.1");
- GNUNET_assert (NULL != system);
- GNUNET_free (tmpdir);
- data_dir = GNUNET_OS_installation_get_path (GNUNET_OS_IPK_DATADIR);
- GNUNET_asprintf (&hostkeys_file, "%s/testing_hostkeys.dat", data_dir);
- GNUNET_free (data_dir);
- GNUNET_assert (GNUNET_OK ==
- GNUNET_TESTING_hostkeys_load (system, hostkeys_file));
- GNUNET_free (hostkeys_file);
- new_cfg = GNUNET_CONFIGURATION_dup (cfg);
+
+ test_ctx = GNUNET_new (struct TestingContext);
+ test_ctx->system =
+ GNUNET_TESTING_system_create ("test-gnunet-testing",
+ "127.0.0.1", NULL, NULL);
emsg = NULL;
- peer = GNUNET_TESTING_peer_configure (system, new_cfg, 0, &id, &emsg);
- GNUNET_assert (NULL != peer);
- GNUNET_assert (NULL == emsg);
- GNUNET_assert (GNUNET_OK == GNUNET_TESTING_peer_start (peer));
- test_ctx = GNUNET_malloc (sizeof (struct TestingContext));
- test_ctx->system = system;
- test_ctx->peer = peer;
- test_ctx->cfg = new_cfg;
- GNUNET_SCHEDULER_add_delayed (TIME_REL_SEC (5),
- &do_shutdown, test_ctx);
-
+ if (NULL == test_ctx->system)
+ goto end;
+ test_ctx->cfg = GNUNET_CONFIGURATION_dup (cfg);
+ test_ctx->peer =
+ GNUNET_TESTING_peer_configure (test_ctx->system,
+ test_ctx->cfg,
+ 0, &id, &emsg);
+ if (NULL == test_ctx->peer)
+ {
+ if (NULL != emsg)
+ printf ("Test failed upon error: %s", emsg);
+ goto end;
+ }
+ if (GNUNET_OK != GNUNET_TESTING_peer_start (test_ctx->peer))
+ goto end;
+ status = GNUNET_OK;
+
+ end:
+ GNUNET_SCHEDULER_add_now (&do_shutdown, test_ctx);
+ GNUNET_free_non_null (emsg);
}
GNUNET_GETOPT_OPTION_END
};
+ status = GNUNET_SYSERR;
if (GNUNET_OK !=
GNUNET_PROGRAM_run (argc, argv,
- "test_testing_new_peerstartup",
+ "test_testing_peerstartup",
"test case for peerstartup using new testing library",
options, &run, NULL))
return 1;
- return 0;
+ return (GNUNET_OK == status) ? 0 : 1;
}
+
+/* end of test_testing_peerstartup.c */