+/**
+ * shortcut to exit during failure
+ */
+#define FAIL_TEST(cond) do { \
+ if (!(cond)) { \
+ GNUNET_break(0); \
+ if (NULL != abort_task) \
+ GNUNET_SCHEDULER_cancel (abort_task); \
+ abort_task = NULL; \
+ if (NULL == shutdown_task) \
+ shutdown_task = GNUNET_SCHEDULER_add_now (do_shutdown, NULL); \
+ return; \
+ } \
+ } while (0)
+
+
+/**
+ * abort task to run on test timed out
+ *
+ * @param cls NULL
+ * @param tc the task context
+ */
+static void
+do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
+ abort_task = NULL;
+ if (NULL != shutdown_task)
+ GNUNET_SCHEDULER_cancel (shutdown_task);
+ do_shutdown (cls, tc);
+}
+